Newer
Older
<template>
<div
class="tw-pl-14 tw-p-1 tw-flex-1 tw-text-sm tw-rounded-full tw-h-12 tw-flex tw-items-center tw-justify-between tw-relative tw-overflow-hidden"
>
<AAvatar
:text="nameData.initials"
class="tw-absolute tw-inset-y-0 tw-left-0 tw-aspect-square tw-rounded-full"
/>
<span>
<span class="tw-block tw-font-semibold">{{ nameData.name || nameData.username }}</span>
<span v-if="nameData.name" class="tw-text-opacity-75" :data-testid="testId">
{{ nameData.username }}
</span>
</span>
<slot />
</div>
</template>
<script lang="ts" setup>
import { usePersonName } from '@/util'
import { SteeringUser } from '@/stores/auth'
import AAvatar from '@/components/generic/AAvatar.vue'
defineOptions({ compatConfig: { MODE: 3 } })
const props = defineProps<{
user: SteeringUser
}>()
const nameData = usePersonName(() => props.user)
</script>