aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/globals.d.ts1
-rw-r--r--src/utils/discord.ts10
-rw-r--r--src/utils/misc.tsx4
-rw-r--r--src/webpack/common.tsx10
4 files changed, 25 insertions, 0 deletions
diff --git a/src/globals.d.ts b/src/globals.d.ts
index 292fa96..8c5ee10 100644
--- a/src/globals.d.ts
+++ b/src/globals.d.ts
@@ -5,6 +5,7 @@ declare global {
export var appSettings: {
set(setting: string, v: any): void;
};
+ export var DiscordNative: any;
interface Window {
webpackChunkdiscord_app: {
diff --git a/src/utils/discord.ts b/src/utils/discord.ts
new file mode 100644
index 0000000..53206bb
--- /dev/null
+++ b/src/utils/discord.ts
@@ -0,0 +1,10 @@
+import { Guild } from "discord-types/general";
+import { ChannelStore, SelectedChannelStore, GuildStore } from "../webpack/common";
+
+export function getCurrentChannel() {
+ return ChannelStore.getChannel(SelectedChannelStore.getChannelId());
+}
+
+export function getCurrentGuild(): Guild | undefined {
+ return GuildStore.getGuild(getCurrentChannel()?.guild_id);
+}
diff --git a/src/utils/misc.tsx b/src/utils/misc.tsx
index f2228f8..a7d781a 100644
--- a/src/utils/misc.tsx
+++ b/src/utils/misc.tsx
@@ -125,3 +125,7 @@ export function humanFriendlyJoin(elements: any[], mapper: (e: any) => string =
export function classes(...classes: string[]) {
return classes.join(" ");
}
+
+export function sleep(ms: number): Promise<void> {
+ return new Promise(r => setTimeout(r, ms));
+}
diff --git a/src/webpack/common.tsx b/src/webpack/common.tsx
index 1a15489..b795c06 100644
--- a/src/webpack/common.tsx
+++ b/src/webpack/common.tsx
@@ -8,7 +8,12 @@ export const Margins = lazyWebpack(filters.byProps(["marginTop20"]));
export let FluxDispatcher: Other.FluxDispatcher;
export let React: typeof import("react");
+
+export let GuildStore: Stores.GuildStore;
export let UserStore: Stores.UserStore;
+export let SelectedChannelStore: Stores.SelectedChannelStore;
+export let ChannelStore: Stores.ChannelStore;
+
export const Forms = {} as {
FormTitle: Components.FormTitle;
FormSection: any;
@@ -86,7 +91,12 @@ waitFor(["dispatch", "subscribe"], m => {
};
m.subscribe("CONNECTION_OPEN", cb);
});
+
waitFor(["getCurrentUser", "initialize"], m => UserStore = m);
+waitFor("getSortedPrivateChannels", m => ChannelStore = m);
+waitFor("getCurrentlySelectedChannelId", m => SelectedChannelStore = m);
+waitFor("getGuildCount", m => GuildStore = m);
+
waitFor(["Hovers", "Looks", "Sizes"], m => Button = m);
waitFor(filters.byCode("helpdeskArticleId"), m => Switch = m);
waitFor(["Positions", "Colors"], m => Tooltip = m);