aboutsummaryrefslogtreecommitdiff
path: root/src/webpack/common.tsx
diff options
context:
space:
mode:
authorVendicated <vendicated@riseup.net>2022-09-28 12:15:30 +0200
committerVendicated <vendicated@riseup.net>2022-09-28 12:15:37 +0200
commit02ed954ce4f9a78478c9f93ff22fa7863917879f (patch)
treea232e8d9ea31d8e4162d0f9e1f90b30ed76446bf /src/webpack/common.tsx
parent532fa8f7185bc9ba4ba267f093913109fac64b56 (diff)
downloadVencord-02ed954ce4f9a78478c9f93ff22fa7863917879f.tar.gz
Vencord-02ed954ce4f9a78478c9f93ff22fa7863917879f.tar.bz2
Vencord-02ed954ce4f9a78478c9f93ff22fa7863917879f.zip
Add clickableRoleDot plugin, toasts
Diffstat (limited to 'src/webpack/common.tsx')
-rw-r--r--src/webpack/common.tsx45
1 files changed, 44 insertions, 1 deletions
diff --git a/src/webpack/common.tsx b/src/webpack/common.tsx
index f3cb018..6e93e27 100644
--- a/src/webpack/common.tsx
+++ b/src/webpack/common.tsx
@@ -7,11 +7,50 @@ import type Other from "discord-types/other";
export let FluxDispatcher: Other.FluxDispatcher;
export let React: typeof import("react");
export let UserStore: Stores.UserStore;
-export let Forms: any = {};
+export const Forms: any = {};
export let Button: any;
export let Switch: any;
export let Tooltip: Components.Tooltip;
+const ToastType = {
+ MESSAGE: 0,
+ SUCCESS: 1,
+ FAILURE: 2,
+ CUSTOM: 3
+};
+const ToastPosition = {
+ TOP: 0,
+ BOTTOM: 1
+};
+
+export const Toasts = {
+ Type: ToastType,
+ Position: ToastPosition,
+ // what's less likely than getting 0 from Math.random()? Getting it twice in a row
+ genId: () => (Math.random() || Math.random()).toString(36).slice(2)
+} as {
+ Type: typeof ToastType,
+ Position: typeof ToastPosition;
+ genId(): string;
+ show(data: {
+ message: string,
+ id: string,
+ /**
+ * Toasts.Type
+ */
+ type: number,
+ options?: {
+ /**
+ * Toasts.Position
+ */
+ position?: number;
+ component?: React.ReactNode,
+ duration?: number;
+ };
+ }): void;
+ pop(): void;
+};
+
waitFor("useState", m => React = m);
waitFor(["dispatch", "subscribe"], m => {
FluxDispatcher = m;
@@ -35,3 +74,7 @@ waitFor(m => {
const s = m.toString();
return s.length < 200 && s.includes("divider");
}, m => Forms.FormDivider = m);
+
+// This is the same module but this is easier
+waitFor(filters.byCode("currentToast?"), m => Toasts.show = m);
+waitFor(filters.byCode("currentToast:null"), m => Toasts.pop = m);