conflict-nuxt-4/app/components/auto-import/MyLoading.vue
2026-02-12 11:24:27 +03:30

31 lines
1.1 KiB
Vue
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="flex flex-col items-center justify-center h-full py-8">
<div :class="['relative', sizeClass]" role="status" aria-label="در حال بارگذاری">
<!-- ساده و مینیمال اسپینر دایرهای با tail پرایمری (آبی) -->
<div class="w-16 h-16 rounded-full border-8 border-gray-200 dark:border-gray-700 border-t-primary-500 dark:border-t-primary-500 animate-spin"></div>
</div>
<p class="mt-6 text-lg font-medium text-gray-700 dark:text-gray-300">{{ loadingText }}</p>
<p class="mt-2 text-sm text-primary-600 dark:text-primary-400 animate-pulse">لطفاً صبر کنید...</p>
</div>
</template>
<script setup>
import { computed } from 'vue'
const props = defineProps({
loadingText: { type: String, default: 'در حال بارگذاری...' },
loadingSize: { type: String, default: 'md' }, // sm, md, lg
})
const sizeClass = computed(() => {
switch (props.loadingSize) {
case 'sm':
return 'scale-75'
case 'lg':
return 'scale-150'
default:
return ''
}
})
</script>