32 lines
728 B
Vue
32 lines
728 B
Vue
<script setup lang="ts">
|
|
import type { mastodon } from 'masto'
|
|
|
|
defineProps<{
|
|
account: mastodon.v1.Account
|
|
limit?: number
|
|
}>()
|
|
</script>
|
|
|
|
<template>
|
|
<div
|
|
flex="~ gap1" items-center
|
|
class="border border-base rounded-md px-1"
|
|
text-secondary-light
|
|
>
|
|
<slot name="prepend" />
|
|
<div v-for="role in account.roles?.slice(0, limit)" :key="role.id" flex>
|
|
<div :style="`color: ${role.color}; border-color: ${role.color}`">
|
|
{{ role.name }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div
|
|
v-if="limit && account.roles?.length > limit"
|
|
flex="~ gap1" items-center
|
|
class="border border-base rounded-md px-1"
|
|
text-secondary-light
|
|
>
|
|
+{{ account.roles?.length - limit }}
|
|
</div>
|
|
</template>
|