shadcn-vue/apps/www/.vitepress/theme/components/ComponentLoader.vue
zernonia a03bace32c
feat: Blocks (#428)
* chore: build registry

* feat: block preview

* refactor: change to use iframe
feat: add more blocks

* chore: fix build

* feat: add all other blocks

* feat: add copy button

* chore: cleanup
2024-03-23 18:24:48 +08:00

22 lines
531 B
Vue

<script setup lang="ts">
import { defineAsyncComponent } from 'vue'
import Spinner from './Spinner.vue'
import { useConfigStore } from '@/stores/config'
const props = defineProps<{
name: string
typeName?: 'example' | 'block'
}>()
const { style } = useConfigStore()
const Component = defineAsyncComponent({
loadingComponent: Spinner,
loader: () => import(`../../../src/lib/registry/${style.value}/${props.typeName}/${props.name}.vue`),
timeout: 5000,
})
</script>
<template>
<Component :is="Component" />
</template>