Spaces:
Running
Running
File size: 716 Bytes
ac8fc63 | 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 | <script lang="ts" setup>
import BarLoader from '@/components/BarLoader.vue'
import DotsLoader from '@/components/DotsLoader.vue'
import SpinnerLoader from '@/components/SpinnerLoader.vue'
import type { LoadingStyle } from '@/types/chat'
import { computed, type Component } from 'vue'
const props = defineProps<{
style: LoadingStyle
active: boolean
}>()
const componentMap: Record<LoadingStyle, Component | null> = {
dots: DotsLoader,
spinner: SpinnerLoader,
bar: BarLoader,
none: null,
}
const selectedComponent = computed(() => componentMap[props.style])
</script>
<template>
<div v-if="active && selectedComponent">
<component :is="selectedComponent" />
</div>
</template>
<style></style>
|