diff --git a/ChannelDeckStore.tsx b/ChannelDeckStore.tsx index 6132dde..90497b0 100644 --- a/ChannelDeckStore.tsx +++ b/ChannelDeckStore.tsx @@ -76,6 +76,10 @@ export const ChannelDeckStore = proxyLazyWebpack(() => { this.emitChange(); } + public getDecks() { + return this._decks.values(); + } + public getDeckWindow(id: string) { return PopoutWindowStore.getWindow(this.windowKeyPrefix + id); } diff --git a/components/DeckColumn.tsx b/components/DeckColumn.tsx index 26a0eaa..85662af 100644 --- a/components/DeckColumn.tsx +++ b/components/DeckColumn.tsx @@ -1,9 +1,9 @@ -import { filters, findByPropsLazy, findComponentByCodeLazy, mapMangledModuleLazy } from "@webpack"; import "./DeckColumn.css"; -import { cl } from "./util"; +import { filters, findByPropsLazy, findComponentByCodeLazy, findStoreLazy, mapMangledModuleLazy } from "@webpack"; +import { ChannelStore, GuildStore, MessageActions, useEffect, useMemo, useStateFromStores } from "@webpack/common"; import { ChannelDeck, ChannelDeckStore, DeckColumn } from "../ChannelDeckStore"; -import { ChannelStore, GuildStore, MessageActions, MessageCache, useEffect, useMemo } from "@webpack/common"; +import { cl } from "./util"; const { HeaderBar, HeaderBarIcon } = mapMangledModuleLazy(".themedMobile]:", { HeaderBarIcon: filters.byCode('size:"custom",'), @@ -13,6 +13,7 @@ const ChannelHeader = findComponentByCodeLazy(".forumPostTitle]:", '"channel-".c const XSmallIcon = findComponentByCodeLazy("1.4L12 13.42l5.3 5.3Z"); const Chat = findComponentByCodeLazy("filterAfterTimestamp:", "chatInputType"); const ChatInputTypes = findByPropsLazy("FORM", "NORMAL"); +const AuthenticationStore = findStoreLazy("AuthenticationStore"); export default function DeckColumn({ column, deck, index }: { column: DeckColumn; deck: ChannelDeck; index: number; }) { const channel = ChannelStore.getChannel(column.channelId); @@ -20,6 +21,8 @@ export default function DeckColumn({ column, deck, index }: { column: DeckColumn const chatInputType = useMemo(() => ({ ...ChatInputTypes.SIDEBAR }), []); + // Load messages after reconnecting + const sessionId = useStateFromStores([AuthenticationStore], () => AuthenticationStore.getSessionId()); useEffect(() => { // Manually load messages :/ MessageActions.fetchMessages({ @@ -31,7 +34,8 @@ export default function DeckColumn({ column, deck, index }: { column: DeckColumn jumpType: "ANIMATED" } }); - }); + return () => { }; + }, [sessionId]); return