36 lines
1008 B
Vue
36 lines
1008 B
Vue
<script setup lang="ts">
|
|
import { t } from '@/i18n'
|
|
|
|
import MediaBadge from '@/components/MediaBadge.vue'
|
|
import MediaUsageTooltip from '@/components/MediaUsageTooltip.vue'
|
|
|
|
defineProps<{
|
|
item: { id?: number; duplicate: boolean; used_in: number; variant_count?: number }
|
|
variants?: boolean
|
|
tooltip?: boolean
|
|
focused?: boolean
|
|
}>()
|
|
</script>
|
|
|
|
<template>
|
|
<MediaBadge v-if="item.duplicate" kind="duplicate" :label="t('Duplicate')" />
|
|
<MediaUsageTooltip
|
|
v-if="item.used_in > 0 && tooltip && item.id !== undefined"
|
|
:id="item.id"
|
|
:focused="focused"
|
|
>
|
|
<MediaBadge kind="used" :label="t('Used in {0}', [item.used_in])" />
|
|
</MediaUsageTooltip>
|
|
<MediaBadge
|
|
v-else-if="item.used_in > 0"
|
|
kind="used"
|
|
:label="t('Used in {0}', [item.used_in])"
|
|
/>
|
|
<MediaBadge v-else kind="unused" :label="t('Unused')" />
|
|
<MediaBadge
|
|
v-if="variants && (item.variant_count ?? 0) > 0"
|
|
kind="variants"
|
|
:label="item.variant_count === 1 ? t('1 variant') : t('{0} variants', [item.variant_count])"
|
|
/>
|
|
</template>
|