Files
RenewCMS/web/src/components/ArticleStatusBadge.vue
T

42 lines
820 B
Vue

<script setup lang="ts">
import { t } from '@/i18n'
withDefaults(
defineProps<{
online: boolean
size?: 'sm' | 'md' | 'lg'
pending?: 'publish' | 'unpublish'
}>(),
{
size: 'md',
},
)
</script>
<template>
<UBadge
v-if="pending"
color="neutral"
variant="outline"
icon="i-lucide-loader-circle"
:size="size"
:class="size === 'lg' ? undefined : 'px-2'"
:ui="{ leadingIcon: 'animate-spin' }"
>
{{ pending === 'publish' ? t('Publishing…') : t('Unpublishing…') }}
</UBadge>
<UBadge v-else-if="online" color="neutral" variant="solid" icon="i-lucide-globe" :size="size">
{{ t('Online') }}
</UBadge>
<UBadge
v-else
color="neutral"
variant="outline"
icon="i-lucide-pencil-line"
:size="size"
:class="size === 'lg' ? undefined : 'px-2'"
>
{{ t('Draft') }}
</UBadge>
</template>