forked from didirus/AstralRinth
* refactor: migrate to common eslint+prettier configs * fix: prettier frontend * feat: config changes * fix: lint issues * fix: lint * fix: type imports * fix: cyclical import issue * fix: lockfile * fix: missing dep * fix: switch to tabs * fix: continue switch to tabs * fix: rustfmt parity * fix: moderation lint issue * fix: lint issues * fix: ui intl * fix: lint issues * Revert "fix: rustfmt parity" This reverts commit cb99d2376c321d813d4b7fc7e2a213bb30a54711. * feat: revert last rs
36 lines
639 B
Vue
36 lines
639 B
Vue
<script setup lang="ts">
|
|
import { SpinnerIcon, XCircleIcon } from '@modrinth/assets'
|
|
|
|
withDefaults(
|
|
defineProps<{
|
|
error?: boolean
|
|
}>(),
|
|
{
|
|
error: false,
|
|
},
|
|
)
|
|
</script>
|
|
<template>
|
|
<div class="flex items-center gap-2 font-semibold" :class="error ? 'text-red' : 'animate-pulse'">
|
|
<XCircleIcon v-if="error" class="w-6 h-6" />
|
|
<SpinnerIcon v-else class="w-6 h-6 animate-spin" />
|
|
<slot v-if="error" name="error" />
|
|
<slot v-else />
|
|
</div>
|
|
</template>
|
|
<style scoped>
|
|
.animate-pulse {
|
|
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
}
|
|
|
|
@keyframes pulse {
|
|
0%,
|
|
100% {
|
|
scale: 1;
|
|
}
|
|
50% {
|
|
scale: 0.95;
|
|
}
|
|
}
|
|
</style>
|