MentionAvatars: Add option to hide @ symbol(#2725)

Co-authored-by: v <vendicated@riseup.net>
This commit is contained in:
Luna 2024-08-01 09:20:00 +02:00 committed by GitHub
parent 6c12a33aa6
commit d47be6c017
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -6,12 +6,21 @@
import "./styles.css"; import "./styles.css";
import { definePluginSettings } from "@api/Settings";
import ErrorBoundary from "@components/ErrorBoundary"; import ErrorBoundary from "@components/ErrorBoundary";
import { Devs } from "@utils/constants"; import { Devs } from "@utils/constants";
import definePlugin from "@utils/types"; import definePlugin, { OptionType } from "@utils/types";
import { SelectedGuildStore, useState } from "@webpack/common"; import { SelectedGuildStore, useState } from "@webpack/common";
import { User } from "discord-types/general"; import { User } from "discord-types/general";
const settings = definePluginSettings({
showAtSymbol: {
type: OptionType.BOOLEAN,
description: "Whether the the @ symbol should be displayed",
default: true
}
});
export default definePlugin({ export default definePlugin({
name: "MentionAvatars", name: "MentionAvatars",
description: "Shows user avatars inside mentions", description: "Shows user avatars inside mentions",
@ -25,11 +34,13 @@ export default definePlugin({
} }
}], }],
settings,
renderUsername: ErrorBoundary.wrap((props: { user: User, username: string; }) => { renderUsername: ErrorBoundary.wrap((props: { user: User, username: string; }) => {
const { user, username } = props; const { user, username } = props;
const [isHovering, setIsHovering] = useState(false); const [isHovering, setIsHovering] = useState(false);
if (!user) return <>@{username}</>; if (!user) return <>{getUsernameString(username)}</>;
return ( return (
<span <span
@ -37,8 +48,15 @@ export default definePlugin({
onMouseLeave={() => setIsHovering(false)} onMouseLeave={() => setIsHovering(false)}
> >
<img src={user.getAvatarURL(SelectedGuildStore.getGuildId(), 16, isHovering)} className="vc-mentionAvatars-avatar" /> <img src={user.getAvatarURL(SelectedGuildStore.getGuildId(), 16, isHovering)} className="vc-mentionAvatars-avatar" />
@{username} {getUsernameString(username)}
</span> </span>
); );
}, { noop: true }) }, { noop: true })
}); });
function getUsernameString(username: string) {
return settings.store.showAtSymbol
? `@${username}`
: username;
}