Skip to content

Commit 26a01e1

Browse files
committed
fix: fallback to username when displayName not available
1 parent deed334 commit 26a01e1

File tree

5 files changed

+81
-66
lines changed

5 files changed

+81
-66
lines changed

pnpm-lock.yaml

+63-56
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/generator/renderers/content.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ export async function renderASTNode(node: SingleASTNode, context: RenderContentC
123123
const id = node.id as string;
124124
const user = await context.callbacks.resolveUser(id);
125125

126-
return <DiscordMention type="user">{user ? user.displayName : `<@${id}>`}</DiscordMention>;
126+
return <DiscordMention type="user">{user ? user.displayName ?? user.username : `<@${id}>`}</DiscordMention>;
127127
}
128128

129129
case 'here':

src/generator/renderers/reply.tsx

+3-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ export default async function renderReply(message: Message, context: RenderMessa
2020
slot="reply"
2121
edited={!isCommand && referencedMessage.editedAt !== null}
2222
attachment={referencedMessage.attachments.size > 0}
23-
author={referencedMessage.member?.nickname ?? referencedMessage.author.displayName}
23+
author={
24+
referencedMessage.member?.nickname ?? referencedMessage.author.displayName ?? referencedMessage.author.username
25+
}
2426
avatar={referencedMessage.author.avatarURL({ size: 32 }) ?? undefined}
2527
roleColor={referencedMessage.member?.displayHexColor ?? undefined}
2628
bot={!isCrosspost && referencedMessage.author.bot}

src/generator/renderers/systemMessage.tsx

+13-7
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@ export default async function renderSystemMessage(message: Message) {
1616
case MessageType.ChannelPinnedMessage:
1717
return (
1818
<DiscordSystemMessage id={`m-${message.id}`} key={message.id} type="pin">
19-
<Highlight color={message.member?.roles.color?.hexColor}>{message.author.displayName}</Highlight> pinned{' '}
20-
<i data-goto={message.reference?.messageId}>a message</i> to this channel.
19+
<Highlight color={message.member?.roles.color?.hexColor}>
20+
{message.author.displayName ?? message.author.username}
21+
</Highlight>{' '}
22+
pinned <i data-goto={message.reference?.messageId}>a message</i> to this channel.
2123
{/* reactions */}
2224
{message.reactions.cache.size > 0 && (
2325
<DiscordReactions slot="reactions">
@@ -40,16 +42,20 @@ export default async function renderSystemMessage(message: Message) {
4042
case MessageType.GuildBoostTier3:
4143
return (
4244
<DiscordSystemMessage id={`m-${message.id}`} key={message.id} type="boost">
43-
<Highlight color={message.member?.roles.color?.hexColor}>{message.author.displayName}</Highlight> boosted the
44-
server!
45+
<Highlight color={message.member?.roles.color?.hexColor}>
46+
{message.author.displayName ?? message.author.username}
47+
</Highlight>{' '}
48+
boosted the server!
4549
</DiscordSystemMessage>
4650
);
4751

4852
case MessageType.ThreadStarterMessage:
4953
return (
5054
<DiscordSystemMessage id={`ms-${message.id}`} key={message.id} type="thread">
51-
<Highlight color={message.member?.roles.color?.hexColor}>{message.author.displayName}</Highlight> started a
52-
thread: <i data-goto={message.reference?.messageId}>{message.content}</i>
55+
<Highlight color={message.member?.roles.color?.hexColor}>
56+
{message.author.displayName ?? message.author.username}
57+
</Highlight>{' '}
58+
started a thread: <i data-goto={message.reference?.messageId}>{message.content}</i>
5359
</DiscordSystemMessage>
5460
);
5561

@@ -110,7 +116,7 @@ export function JoinMessage(member: GuildMember | null, fallbackUser: User) {
110116
.flatMap((item, i) => [
111117
item,
112118
<Highlight color={member?.roles.color?.hexColor} key={i}>
113-
{member?.nickname ?? fallbackUser.displayName}
119+
{member?.nickname ?? fallbackUser.displayName ?? fallbackUser.username}
114120
</Highlight>,
115121
])
116122
.slice(0, -1);

src/utils/buildProfiles.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export async function buildProfiles(messages: Message[]) {
4646

4747
function buildProfile(member: GuildMember | null, author: User) {
4848
return {
49-
author: member?.nickname ?? author.displayName,
49+
author: member?.nickname ?? author.displayName ?? author.username,
5050
avatar: member?.displayAvatarURL({ size: 64 }) ?? author.displayAvatarURL({ size: 64 }),
5151
roleColor: member?.displayHexColor,
5252
roleIcon: member?.roles.icon?.iconURL() ?? undefined,

0 commit comments

Comments
 (0)