diff --git a/components/Avatar.vue b/components/Avatar.vue index ddfe1dc..13a884e 100644 --- a/components/Avatar.vue +++ b/components/Avatar.vue @@ -24,7 +24,7 @@ let displayAvatar: string | null const user = props.user || props.member?.user if (user) { - displayName = getDisplayName(user, props.member) + displayName = getDisplayName(props.member ?? user) if (user.avatar) { displayAvatar = user.avatar diff --git a/components/Guild/MemberEntry.vue b/components/Guild/MemberEntry.vue index 12e36a0..3d102e0 100644 --- a/components/Guild/MemberEntry.vue +++ b/components/Guild/MemberEntry.vue @@ -1,7 +1,7 @@ diff --git a/utils/getDisplayName.ts b/utils/getDisplayName.ts index e712555..d1be9a8 100644 --- a/utils/getDisplayName.ts +++ b/utils/getDisplayName.ts @@ -1,7 +1,14 @@ import type { GuildMemberResponse, UserResponse } from "~/types/interfaces"; -export function getDisplayName(user: UserResponse, member?: GuildMemberResponse): string { - if (member?.nickname) return member.nickname - if (user.display_name) return user.display_name - return user.username +export default (profile: UserResponse | GuildMemberResponse): string => { + if ("username" in profile) { + // assume it's a UserRespone + if (profile.display_name) return profile.display_name + return profile.username + } else { + // assume it's a GuildMemberResponse + if (profile.nickname) return profile.nickname + if (profile.user.display_name) return profile.user.display_name + return profile.user.username + } } \ No newline at end of file