From 3d4b9d50994680407592ab1fe113f92ad8f3e740 Mon Sep 17 00:00:00 2001 From: thororen <78185467+thororen1234@users.noreply.github.com> Date: Fri, 25 Sep 2026 09:48:20 -0400 Subject: [PATCH] ChannelAffinitiesStore --- .../src/stores/ChannelAffinitiesStore.d.ts | 21 +++++++++++++++++++ packages/discord-types/src/stores/index.d.ts | 1 + src/webpack/common/stores.ts | 2 ++ 3 files changed, 24 insertions(+) create mode 100644 packages/discord-types/src/stores/ChannelAffinitiesStore.d.ts diff --git a/packages/discord-types/src/stores/ChannelAffinitiesStore.d.ts b/packages/discord-types/src/stores/ChannelAffinitiesStore.d.ts new file mode 100644 index 000000000..26991df79 --- /dev/null +++ b/packages/discord-types/src/stores/ChannelAffinitiesStore.d.ts @@ -0,0 +1,21 @@ +import { FluxStore } from ".."; + +export interface ChannelAffinity { + channelId: string; + score: number; +} + +export interface ChannelAffinitiesState { + channelAffinities: ChannelAffinity[]; + lastFetched: number; +} + +export class ChannelAffinitiesStore extends FluxStore { + compare(firstChannelId: string, secondChannelId: string): number; + getChannelAffinities(): ChannelAffinity[]; + getChannelAffinitiesMap(): Map; + getChannelAffinity(channelId: string): ChannelAffinity | undefined; + getState(): ChannelAffinitiesState; + isFetching(): boolean; + shouldFetch(): boolean | undefined; +} diff --git a/packages/discord-types/src/stores/index.d.ts b/packages/discord-types/src/stores/index.d.ts index a6993d7a8..65171dfea 100644 --- a/packages/discord-types/src/stores/index.d.ts +++ b/packages/discord-types/src/stores/index.d.ts @@ -11,6 +11,7 @@ export * from "./AuthorizedAppsStore"; export * from "./AuthSessionsStore"; export * from "./BasicGuildStore"; export * from "./CallStore"; +export * from "./ChannelAffinitiesStore"; export * from "./ChannelMemberStore"; export * from "./ChannelRTCStore"; export * from "./ChannelSectionStore"; diff --git a/src/webpack/common/stores.ts b/src/webpack/common/stores.ts index 058490dea..cad9a0aec 100644 --- a/src/webpack/common/stores.ts +++ b/src/webpack/common/stores.ts @@ -109,6 +109,7 @@ export let GuildAvailabilityStore: t.GuildAvailabilityStore; export let UserGuildJoinRequestStore: t.UserGuildJoinRequestStore; export let BasicGuildStore: t.BasicGuildStore; export let GuildProfileStore: t.GuildProfileStore; +export let ChannelAffinitiesStore: t.ChannelAffinitiesStore; /** * @see jsdoc of {@link t.useStateFromStores} @@ -189,6 +190,7 @@ waitForStore("GuildAvailabilityStore", m => GuildAvailabilityStore = m); waitForStore("UserGuildJoinRequestStore", m => UserGuildJoinRequestStore = m); waitForStore("BasicGuildStore", m => BasicGuildStore = m); waitForStore("GuildProfileStore", m => GuildProfileStore = m); +waitForStore("ChannelAffinitiesV2Store", m => ChannelAffinitiesStore = m); waitForStore("ThemeStore", m => { ThemeStore = m; // Importing this directly causes all webpack commons to be imported, which can easily cause circular dependencies.