fix(app): apply streamer mode to member nicknames and stop guild scope leaking into global surfaces (#1697)

This commit is contained in:
Hampus authored and GitHub committed 2026-08-17 14:58:56 +02:00
1 parent 3fa766c39c
commit 3ff7189566
32 files changed
+82 -61

No files matched your search

@@ -174,7 +174,9 @@ export const UserProfilePopout: React.FC<UserProfilePopoutProps> = observer(
const handleClosePopout = useCallback(() => {
requestClose();
}, [requestClose]);
const displayName = guildMember?.nick ?? NicknameUtils.getNickname(user, guildId);
const displayName = guildMember?.nick
? NicknameUtils.formatNicknameForStreamerMode(guildMember.nick)
: NicknameUtils.getNickname(user, guildId);
const handleMessage = async () => {
try {
requestClose();
@@ -206,7 +206,7 @@ export const VoiceActivityCard: React.FC<VoiceActivityCardProps> = observer(({ac
return i18n._(PARTICIPANTS_DESCRIPTOR);
}
const names = avatarStackUsers
.map((user) => NicknameUtils.getNickname(user, guildId ?? undefined, channelId ?? undefined))
.map((user) => NicknameUtils.getNickname(user, guildId ?? null, channelId ?? undefined))
.join(', ');
return i18n._(PARTICIPANTS_2_DESCRIPTOR, {names});
}, [avatarStackUsers, guildId, channelId, i18n.locale]);
@@ -421,7 +421,7 @@ const VoiceActivityContext: React.FC<VoiceActivityContextProps> = observer(({cha
const recipientId = channel.recipientIds.find((id) => id !== voiceState.user_id);
const recipientUser = recipientId ? Users.getUser(recipientId) : undefined;
if (recipientUser) {
const displayName = NicknameUtils.getNickname(recipientUser);
const displayName = NicknameUtils.getNickname(recipientUser, null);
return (
<button
type="button"
@@ -33,6 +33,12 @@ export function formatUserTagForStreamerMode(user: Pick<User, 'tag' | 'username'
return formatTagForStreamerMode(user.tag || `${user.username}#${user.discriminator}`);
}
export function formatNicknameForStreamerMode(nickname: string): string {
const resolved = formatNameForStreamerMode(nickname);
noteText(resolved);
return resolved;
}
export function getDisplayName(user: UserDisplayNameLike): string {
const name = formatNameForStreamerMode(
user.displayName || user.globalName || user.global_name || user.username || '',
@@ -60,7 +66,5 @@ export function getNickname(user: User, guildId?: string | null, channelId?: str
name = channel.nicks[user.id];
}
}
const resolved = formatNameForStreamerMode(name);
noteText(resolved);
return resolved;
return formatNicknameForStreamerMode(name);
}