diff options
author | Syncx <47534062+Syncxv@users.noreply.github.com> | 2023-08-19 09:19:10 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-19 01:19:10 +0200 |
commit | e699ea63c749a4c4af185d997a1f7588804d458f (patch) | |
tree | 5847b591b37b852f264821b3908365b04f194b8e /src/webpack | |
parent | 97e1e9eb7a229375d1073cc93cace8e001f8d847 (diff) | |
download | Vencord-e699ea63c749a4c4af185d997a1f7588804d458f.tar.gz Vencord-e699ea63c749a4c4af185d997a1f7588804d458f.tar.bz2 Vencord-e699ea63c749a4c4af185d997a1f7588804d458f.zip |
feat(plugin): PreviewMessage (#1607)
Co-authored-by: V <vendicated@riseup.net>
Diffstat (limited to 'src/webpack')
-rw-r--r-- | src/webpack/common/stores.ts | 9 | ||||
-rw-r--r-- | src/webpack/common/types/stores.d.ts | 24 |
2 files changed, 33 insertions, 0 deletions
diff --git a/src/webpack/common/stores.ts b/src/webpack/common/stores.ts index 05d5254..456255d 100644 --- a/src/webpack/common/stores.ts +++ b/src/webpack/common/stores.ts @@ -27,6 +27,13 @@ export const Flux: t.Flux = findByPropsLazy("connectStores"); export type GenericStore = t.FluxStore & Record<string, any>; +export enum DraftType { + ChannelMessage = 0, + ThreadSettings = 1, + FirstThreadMessage = 2, + ApplicationLauncherCommand = 3 +} + export let MessageStore: Omit<Stores.MessageStore, "getMessages"> & { getMessages(chanId: string): any; }; @@ -52,6 +59,7 @@ export let RelationshipStore: Stores.RelationshipStore & t.FluxStore & { export let EmojiStore: t.EmojiStore; export let WindowStore: t.WindowStore; +export let DraftStore: t.DraftStore; export const MaskedLinkStore = mapMangledModuleLazy('"MaskedLinkStore"', { openUntrustedLink: filters.byCode(".apply(this,arguments)") @@ -76,6 +84,7 @@ export const useStateFromStores: <T>( ) => T = findByCodeLazy("useStateFromStores"); +waitForStore("DraftStore", s => DraftStore = s); waitForStore("UserStore", s => UserStore = s); waitForStore("ChannelStore", m => ChannelStore = m); waitForStore("SelectedChannelStore", m => SelectedChannelStore = m); diff --git a/src/webpack/common/types/stores.d.ts b/src/webpack/common/types/stores.d.ts index 3771150..ecc87d7 100644 --- a/src/webpack/common/types/stores.d.ts +++ b/src/webpack/common/types/stores.d.ts @@ -16,6 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { DraftType } from "@webpack/common"; import { Channel } from "discord-types/general"; import { FluxDispatcher, FluxEvents } from "./utils"; @@ -148,3 +149,26 @@ export class EmojiStore extends FluxStore { get favoriteEmojisWithoutFetchingLatest(): Emoji[]; }; } + +export interface DraftObject { + channelId: string; + timestamp: number; + draft: string; +} + +interface DraftState { + [userId: string]: { + [channelId: string]: { + [key in DraftType]?: Omit<DraftObject, "channelId">; + } | undefined; + } | undefined; +} + + +export class DraftStore extends FluxStore { + getDraft(channelId: string, type: DraftType): string; + getRecentlyEditedDrafts(type: DraftType): DraftObject[]; + getState(): DraftState; + getThreadDraftWithParentMessageId?(arg: any): any; + getThreadSettings(channelId: string): any | null; +} |