PronounDB: Fix profile patch, add pronoun source to tooltip
This commit is contained in:
parent
b592defaaf
commit
13bde79ec8
|
@ -52,7 +52,7 @@ export function CompactPronounsChatComponentWrapper({ message }: { message: Mess
|
||||||
}
|
}
|
||||||
|
|
||||||
function PronounsChatComponent({ message }: { message: Message; }) {
|
function PronounsChatComponent({ message }: { message: Message; }) {
|
||||||
const result = useFormattedPronouns(message.author.id);
|
const [result] = useFormattedPronouns(message.author.id);
|
||||||
|
|
||||||
return result
|
return result
|
||||||
? (
|
? (
|
||||||
|
@ -64,7 +64,7 @@ function PronounsChatComponent({ message }: { message: Message; }) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function CompactPronounsChatComponent({ message }: { message: Message; }) {
|
export function CompactPronounsChatComponent({ message }: { message: Message; }) {
|
||||||
const result = useFormattedPronouns(message.author.id);
|
const [result] = useFormattedPronouns(message.author.id);
|
||||||
|
|
||||||
return result
|
return result
|
||||||
? (
|
? (
|
||||||
|
|
|
@ -26,6 +26,11 @@ import { CompactPronounsChatComponentWrapper, PronounsChatComponentWrapper } fro
|
||||||
import { useProfilePronouns } from "./pronoundbUtils";
|
import { useProfilePronouns } from "./pronoundbUtils";
|
||||||
import { settings } from "./settings";
|
import { settings } from "./settings";
|
||||||
|
|
||||||
|
const PRONOUN_TOOLTIP_PATCH = {
|
||||||
|
match: /text:(.{0,10}.Messages\.USER_PROFILE_PRONOUNS)(?=,)/,
|
||||||
|
replace: '$& + (typeof vcPronounSource !== "undefined" ? ` (${vcPronounSource})` : "")'
|
||||||
|
};
|
||||||
|
|
||||||
export default definePlugin({
|
export default definePlugin({
|
||||||
name: "PronounDB",
|
name: "PronounDB",
|
||||||
authors: [Devs.Tyman, Devs.TheKodeToad, Devs.Ven],
|
authors: [Devs.Tyman, Devs.TheKodeToad, Devs.Ven],
|
||||||
|
@ -50,18 +55,24 @@ export default definePlugin({
|
||||||
// Patch the profile popout username header to use our pronoun hook instead of Discord's pronouns
|
// Patch the profile popout username header to use our pronoun hook instead of Discord's pronouns
|
||||||
{
|
{
|
||||||
find: ".userTagNoNickname",
|
find: ".userTagNoNickname",
|
||||||
replacement: {
|
replacement: [
|
||||||
match: /=(\i)\.pronouns/,
|
{
|
||||||
replace: "=$self.useProfilePronouns($1.user.id)"
|
match: /,(\i)=(\i)\.pronouns/,
|
||||||
}
|
replace: ",[$1,vcPronounSource]=$self.useProfilePronouns($2.user.id)"
|
||||||
|
},
|
||||||
|
PRONOUN_TOOLTIP_PATCH
|
||||||
|
]
|
||||||
},
|
},
|
||||||
// Patch the profile modal username header to use our pronoun hook instead of Discord's pronouns
|
// Patch the profile modal username header to use our pronoun hook instead of Discord's pronouns
|
||||||
{
|
{
|
||||||
find: ".USER_PROFILE_ACTIVITY",
|
find: ".USER_PROFILE_ACTIVITY",
|
||||||
replacement: {
|
replacement: [
|
||||||
match: /\).showPronouns/,
|
{
|
||||||
replace: ").showPronouns||true;const vcPronounce=$self.useProfilePronouns(arguments[0].user.id);if(arguments[0].displayProfile&&vcPronounce)arguments[0].displayProfile.pronouns=vcPronounce"
|
match: /getGlobalName\(\i\);(?<=displayProfile.{0,200})/,
|
||||||
}
|
replace: "$&const [vcPronounce,vcPronounSource]=$self.useProfilePronouns(arguments[0].user.id);if(arguments[0].displayProfile&&vcPronounce)arguments[0].displayProfile.pronouns=vcPronounce;"
|
||||||
|
},
|
||||||
|
PRONOUN_TOOLTIP_PATCH
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ function getDiscordPronouns(id: string) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function useFormattedPronouns(id: string): string | null {
|
export function useFormattedPronouns(id: string): [string | null, string] {
|
||||||
// Discord is so stupid you can put tons of newlines in pronouns
|
// Discord is so stupid you can put tons of newlines in pronouns
|
||||||
const discordPronouns = getDiscordPronouns(id)?.trim().replace(NewLineRe, " ");
|
const discordPronouns = getDiscordPronouns(id)?.trim().replace(NewLineRe, " ");
|
||||||
|
|
||||||
|
@ -72,12 +72,12 @@ export function useFormattedPronouns(id: string): string | null {
|
||||||
});
|
});
|
||||||
|
|
||||||
if (settings.store.pronounSource === PronounSource.PreferDiscord && discordPronouns)
|
if (settings.store.pronounSource === PronounSource.PreferDiscord && discordPronouns)
|
||||||
return discordPronouns;
|
return [discordPronouns, "Discord"];
|
||||||
|
|
||||||
if (result && result !== "unspecified")
|
if (result && result !== "unspecified")
|
||||||
return formatPronouns(result);
|
return [formatPronouns(result), "PronounDB"];
|
||||||
|
|
||||||
return discordPronouns;
|
return [discordPronouns, "Discord"];
|
||||||
}
|
}
|
||||||
|
|
||||||
export function useProfilePronouns(id: string) {
|
export function useProfilePronouns(id: string) {
|
||||||
|
|
Loading…
Reference in a new issue