CommonTableSkeleton.vue 867 B

12345678910111213141516171819202122232425262728293031323334353637
  1. <!-- Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/ -->
  2. <script setup lang="ts">
  3. import CommonSkeleton from '#desktop/components/CommonSkeleton/CommonSkeleton.vue'
  4. import CommonTableRowsSkeleton from '#desktop/components/CommonTable/Skeleton/CommonTableRowsSkeleton.vue'
  5. interface Props {
  6. rows?: number
  7. }
  8. defineProps<Props>()
  9. const headerClasses = {
  10. 1: 'w-5 flex-shrink-0',
  11. 2: 'w-36',
  12. 3: 'w-5',
  13. 4: 'w-24',
  14. 5: 'w-16',
  15. 6: 'w-20',
  16. 7: 'w-32',
  17. }
  18. </script>
  19. <template>
  20. <div>
  21. <div class="flex justify-between gap-3 px-2.5 py-3">
  22. <CommonSkeleton
  23. v-for="n in 7"
  24. :key="n"
  25. :style="{ 'animation-delay': `${n * 0.1}s` }"
  26. class="h-3"
  27. :class="headerClasses[n as keyof typeof headerClasses]"
  28. />
  29. </div>
  30. <CommonTableRowsSkeleton :rows="rows || 10" />
  31. </div>
  32. </template>