diff options
author | Vendicated <vendicated@riseup.net> | 2022-11-12 15:09:02 +0100 |
---|---|---|
committer | Vendicated <vendicated@riseup.net> | 2022-11-12 17:20:19 +0100 |
commit | 81edc1407071c6c0328f40a1ee487ea0388b9a7e (patch) | |
tree | 42c54ab94a58d9ffd5a2b201cfe9539a158386e4 /src/plugins/pronoundb | |
parent | b48c8d8a4a003ffe4bdee4c3ba3ae6f54ce1f317 (diff) | |
download | Vencord-81edc1407071c6c0328f40a1ee487ea0388b9a7e.tar.gz Vencord-81edc1407071c6c0328f40a1ee487ea0388b9a7e.tar.bz2 Vencord-81edc1407071c6c0328f40a1ee487ea0388b9a7e.zip |
fix PronounDB crash with new profile in dms, force start dependencies
Diffstat (limited to 'src/plugins/pronoundb')
-rw-r--r-- | src/plugins/pronoundb/components/PronounsChatComponent.tsx | 16 | ||||
-rw-r--r-- | src/plugins/pronoundb/components/PronounsProfileWrapper.tsx | 20 |
2 files changed, 28 insertions, 8 deletions
diff --git a/src/plugins/pronoundb/components/PronounsChatComponent.tsx b/src/plugins/pronoundb/components/PronounsChatComponent.tsx index 78cee48..57033cc 100644 --- a/src/plugins/pronoundb/components/PronounsChatComponent.tsx +++ b/src/plugins/pronoundb/components/PronounsChatComponent.tsx @@ -27,12 +27,18 @@ import { PronounMapping } from "../types"; const styles: Record<string, string> = lazyWebpack(filters.byProps("timestampInline")); -export default function PronounsChatComponent({ message }: { message: Message; }) { +export default function PronounsChatComponentWrapper({ message }: { message: Message; }) { // Don't bother fetching bot or system users - if (message.author.bot || message.author.system) return null; + if (message.author.bot || message.author.system) + return null; // Respect showSelf options - if (!Settings.plugins.PronounDB.showSelf && message.author.id === UserStore.getCurrentUser().id) return null; + if (!Settings.plugins.PronounDB.showSelf && message.author.id === UserStore.getCurrentUser().id) + return null; + return <PronounsChatComponent message={message} />; +} + +function PronounsChatComponent({ message }: { message: Message; }) { const [result, , isPending] = useAwaiter( () => fetchPronouns(message.author.id), null, @@ -47,6 +53,6 @@ export default function PronounsChatComponent({ message }: { message: Message; } >• {formatPronouns(result)}</span> ); } - // Otherwise, return null so nothing else is rendered - else return null; + + return null; } diff --git a/src/plugins/pronoundb/components/PronounsProfileWrapper.tsx b/src/plugins/pronoundb/components/PronounsProfileWrapper.tsx index 139fb8a..b39f4ed 100644 --- a/src/plugins/pronoundb/components/PronounsProfileWrapper.tsx +++ b/src/plugins/pronoundb/components/PronounsProfileWrapper.tsx @@ -30,8 +30,22 @@ export default function PronounsProfileWrapper(PronounsComponent: React.ElementT if (!Settings.plugins.PronounDB.showSelf && user.id === UserStore.getCurrentUser().id) return null; + return <ProfilePronouns + userId={profileProps.userId} + Component={PronounsComponent} + leProps={props} + />; +} + +function ProfilePronouns( + { userId, Component, leProps }: { + userId: string; + Component: React.ElementType<UserProfilePronounsProps>; + leProps: UserProfilePronounsProps; + } +) { const [result, , isPending] = useAwaiter( - () => fetchPronouns(user.id), + () => fetchPronouns(userId), null, e => console.error("Fetching pronouns failed: ", e) ); @@ -39,8 +53,8 @@ export default function PronounsProfileWrapper(PronounsComponent: React.ElementT // If the promise completed, the result was not "unspecified", and there is a mapping for the code, then render if (!isPending && result && result !== "unspecified" && PronounMapping[result]) { // First child is the header, second is a div with the actual text - props.currentPronouns ||= formatPronouns(result); - return <PronounsComponent {...props} />; + leProps.currentPronouns ||= formatPronouns(result); + return <Component {...leProps} />; } return null; |