refactor: change Avatar component to take a single variable instead of user or profile
This commit is contained in:
parent
d2ff4ac87c
commit
e339b1df10
4 changed files with 21 additions and 17 deletions
|
@ -13,25 +13,29 @@ import { NuxtImg } from '#components';
|
||||||
import type { GuildMemberResponse, UserResponse } from '~/types/interfaces';
|
import type { GuildMemberResponse, UserResponse } from '~/types/interfaces';
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
user?: UserResponse,
|
profile: UserResponse | GuildMemberResponse,
|
||||||
member?: GuildMemberResponse,
|
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
|
const displayName = getDisplayName(props.profile)
|
||||||
let displayName: string
|
|
||||||
let displayAvatar: string | null
|
let displayAvatar: string | null
|
||||||
|
|
||||||
const user = props.user || props.member?.user
|
|
||||||
|
|
||||||
if (user) {
|
if ("username" in props.profile) {
|
||||||
displayName = getDisplayName(props.member ?? user)
|
// assume it's a UserRespone
|
||||||
|
displayAvatar = props.profile.avatar
|
||||||
if (user.avatar) {
|
if (!displayAvatar) {
|
||||||
displayAvatar = user.avatar
|
if (!isCanvasBlocked()) {
|
||||||
} else if (!isCanvasBlocked()){
|
displayAvatar = generateDefaultIcon(displayName, props.profile.uuid)
|
||||||
displayAvatar = generateDefaultIcon(displayName, user.uuid)
|
}
|
||||||
} else {
|
}
|
||||||
displayAvatar = null
|
|
||||||
|
} else {
|
||||||
|
// assume it's a GuildMemberResponse
|
||||||
|
displayAvatar = props.profile.user.avatar
|
||||||
|
if (!displayAvatar) {
|
||||||
|
if (!isCanvasBlocked()) {
|
||||||
|
displayAvatar = generateDefaultIcon(displayName, props.profile.user_uuid)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
:text="props.replyMessage?.message"
|
:text="props.replyMessage?.message"
|
||||||
:reply-id="props.replyMessage.uuid" max-width="reply" />
|
:reply-id="props.replyMessage.uuid" max-width="reply" />
|
||||||
<div class="left-column">
|
<div class="left-column">
|
||||||
<Avatar :user="props.author" class="message-author-avatar"/>
|
<Avatar :profile="props.author" class="message-author-avatar"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="message-data">
|
<div class="message-data">
|
||||||
<div class="message-metadata">
|
<div class="message-metadata">
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<NuxtLink class="user-item" :href="`/me/${user.uuid}`" tabindex="0">
|
<NuxtLink class="user-item" :href="`/me/${user.uuid}`" tabindex="0">
|
||||||
<Avatar :user="props.user" class="user-avatar"/>
|
<Avatar :profile="props.user" class="user-avatar"/>
|
||||||
|
|
||||||
<span class="user-display-name">{{ getDisplayName(props.user) }}</span>
|
<span class="user-display-name">{{ getDisplayName(props.user) }}</span>
|
||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div id="profile-popup">
|
<div id="profile-popup">
|
||||||
<Avatar :user="props.user" id="avatar"/>
|
<Avatar :profile="props.user" id="avatar"/>
|
||||||
|
|
||||||
<div id="cover-color"></div>
|
<div id="cover-color"></div>
|
||||||
<div id="main-body">
|
<div id="main-body">
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue