31 lines
860 B
Vue
31 lines
860 B
Vue
<script setup lang="ts">
|
|
import { t } from '@/i18n'
|
|
|
|
defineProps<{ rows: number; cards?: boolean }>()
|
|
</script>
|
|
|
|
<template>
|
|
<div
|
|
role="status"
|
|
:aria-label="t('Loading')"
|
|
aria-busy="true"
|
|
class="border border-default bg-default"
|
|
>
|
|
<div
|
|
v-for="n in rows"
|
|
:key="n"
|
|
data-testid="entry-skeleton-row"
|
|
class="flex items-center gap-5 px-4"
|
|
:class="[cards ? 'h-17' : 'h-12', n > 1 ? 'border-t border-default' : '']"
|
|
>
|
|
<USkeleton v-if="!cards" class="h-3 w-8 rounded-none bg-accented" />
|
|
<USkeleton class="h-3.5 rounded-none bg-accented" :class="n % 2 ? 'w-1/4' : 'w-3/10'" />
|
|
<template v-if="!cards">
|
|
<USkeleton class="h-3 w-22.5 rounded-none bg-accented" />
|
|
<USkeleton class="h-3 w-22.5 rounded-none bg-accented" />
|
|
<USkeleton class="h-3 w-12.5 rounded-none bg-accented" />
|
|
</template>
|
|
</div>
|
|
</div>
|
|
</template>
|