SkeletonMoviesLoader.vue
852 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<script lang="ts" setup>
//#region --Props--.
defineProps({
isInitialLoading: {
type: Boolean,
required: true,
nullable: false,
},
skeletonNumber: {
type: Number,
required: false,
nullable: false,
default: 12,
},
});
//#endregion
</script>
<template>
<!-- Skeleton loader pendant le chargement initial -->
<section
v-if="isInitialLoading"
class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6"
>
<div
v-for="i in skeletonNumber"
:key="i"
class="bg-gray-800 rounded-lg overflow-hidden shadow-lg animate-pulse"
>
<div class="h-80 bg-gray-700" />
<div class="p-4">
<div class="h-6 bg-gray-700 rounded mb-3" />
<div class="h-4 bg-gray-700 rounded w-2/3" />
</div>
</div>
</section>
</template>
<style scoped></style>