feat: implement generic <Avatar> component
This commit is contained in:
parent
f4ddcf9d8d
commit
f98e8c6110
5 changed files with 82 additions and 6 deletions
37
components/Avatar.vue
Normal file
37
components/Avatar.vue
Normal file
|
@ -0,0 +1,37 @@
|
|||
<template>
|
||||
<Icon v-if="canvasBlocked"
|
||||
name="lucide:user" />
|
||||
<NuxtImg v-else
|
||||
:src="displayAvatar"
|
||||
:alt="displayName" />
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { NuxtImg } from '#components';
|
||||
import type { GuildMemberResponse, UserResponse } from '~/types/interfaces';
|
||||
|
||||
const props = defineProps<{
|
||||
user?: UserResponse,
|
||||
member?: GuildMemberResponse,
|
||||
}>();
|
||||
|
||||
|
||||
let displayName: string
|
||||
let displayAvatar: string
|
||||
let canvasBlocked = false
|
||||
|
||||
const user = props.user || props.member?.user
|
||||
|
||||
if (user) {
|
||||
displayName = props.member?.nickname
|
||||
|| user.display_name
|
||||
|| user.username
|
||||
|
||||
if (user.avatar) {
|
||||
displayAvatar = user.avatar
|
||||
} else {
|
||||
displayAvatar = generateDefaultIcon(displayName, user.uuid)
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue