1
0
elk/components/account/AccountInfo.vue

30 lines
833 B
Vue
Raw Normal View History

2022-11-13 14:34:43 +09:00
<script setup lang="ts">
2022-11-14 11:20:07 +09:00
import type { Account } from 'masto'
2022-11-13 14:34:43 +09:00
2022-11-23 12:48:01 +09:00
const { account, link = true, fullServer = false } = defineProps<{
2022-11-13 14:34:43 +09:00
account: Account
2022-11-21 19:16:04 +09:00
link?: boolean
2022-11-23 12:48:01 +09:00
fullServer?: boolean
2022-11-13 14:34:43 +09:00
}>()
2022-11-23 12:48:01 +09:00
const id = computed(() => fullServer && !account.acct.includes('@') ? `@${account.acct}@${account.url.match(UserLinkRE)?.[1]}` : `@${account.acct}`)
2022-11-13 14:34:43 +09:00
</script>
<template>
2022-11-23 16:46:34 +09:00
<div flex gap-3>
<div>
2022-11-21 19:16:04 +09:00
<NuxtLink :to="link ? `/@${account.acct}` : null">
2022-11-23 16:46:34 +09:00
<AccountAvatar :account="account" w-12 h-12 />
2022-11-14 11:20:07 +09:00
</NuxtLink>
2022-11-13 14:34:43 +09:00
</div>
2022-11-21 19:16:04 +09:00
<NuxtLink flex flex-col :to="link ? `/@${account.acct}` : null">
<CommonRichContent font-bold :content="getDisplayName(account)" :emojis="account.emojis" />
2022-11-21 15:55:31 +09:00
<p op35 text-sm>
2022-11-23 12:48:01 +09:00
{{ id }}
2022-11-13 14:34:43 +09:00
</p>
2022-11-23 09:00:52 +09:00
<slot name="bottom" />
2022-11-14 11:20:07 +09:00
</NuxtLink>
2022-11-14 11:56:48 +09:00
<slot />
2022-11-13 14:34:43 +09:00
</div>
</template>