From e339b1df10dbebddcf6c050deefcaaab402dc28d Mon Sep 17 00:00:00 2001 From: JustTemmie <47639983+JustTemmie@users.noreply.github.com> Date: Thu, 17 Jul 2025 16:18:18 +0200 Subject: [PATCH] refactor: change Avatar component to take a single variable instead of user or profile --- components/Avatar.vue | 32 ++++++++++++++++++-------------- components/Message.vue | 2 +- components/User/UserEntry.vue | 2 +- components/User/UserPopup.vue | 2 +- 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/components/Avatar.vue b/components/Avatar.vue index 13a884e..5f16251 100644 --- a/components/Avatar.vue +++ b/components/Avatar.vue @@ -13,25 +13,29 @@ import { NuxtImg } from '#components'; import type { GuildMemberResponse, UserResponse } from '~/types/interfaces'; const props = defineProps<{ - user?: UserResponse, - member?: GuildMemberResponse, + profile: UserResponse | GuildMemberResponse, }>(); - -let displayName: string +const displayName = getDisplayName(props.profile) let displayAvatar: string | null -const user = props.user || props.member?.user -if (user) { - displayName = getDisplayName(props.member ?? user) - - if (user.avatar) { - displayAvatar = user.avatar - } else if (!isCanvasBlocked()){ - displayAvatar = generateDefaultIcon(displayName, user.uuid) - } else { - displayAvatar = null +if ("username" in props.profile) { + // assume it's a UserRespone + displayAvatar = props.profile.avatar + if (!displayAvatar) { + if (!isCanvasBlocked()) { + displayAvatar = generateDefaultIcon(displayName, props.profile.uuid) + } + } + +} else { + // assume it's a GuildMemberResponse + displayAvatar = props.profile.user.avatar + if (!displayAvatar) { + if (!isCanvasBlocked()) { + displayAvatar = generateDefaultIcon(displayName, props.profile.user_uuid) + } } } diff --git a/components/Message.vue b/components/Message.vue index ed32c50..71687e1 100644 --- a/components/Message.vue +++ b/components/Message.vue @@ -29,7 +29,7 @@ :text="props.replyMessage?.message" :reply-id="props.replyMessage.uuid" max-width="reply" />