docs(ComponentExample): add

This commit is contained in:
Benjamin Canac
2024-07-11 17:36:50 +02:00
parent 57e62f36c4
commit 96e18ef233
10 changed files with 68 additions and 44 deletions

View File

@@ -0,0 +1,28 @@
const useComponentExampleState = () => useState('component-example-state', () => ({}))
export async function fetchComponentExample(name: string) {
const state = useComponentExampleState()
if (state.value[name]?.then) {
await state.value[name]
return state.value[name]
}
if (state.value[name]) {
return state.value[name]
}
// add to nitro prerender
if (import.meta.server) {
const event = useRequestEvent()
event.node.res.setHeader(
'x-nitro-prerender',
[event.node.res.getHeader('x-nitro-prerender'), `/api/component-example/${name}.json`].filter(Boolean).join(',')
)
}
state.value[name] = $fetch(`/api/component-example/${name}.json`).then((data) => {
state.value[name] = data
})
await state.value[name]
return state.value[name]
}

View File

@@ -1,6 +1,6 @@
import type { ComponentMeta } from 'vue-component-meta'
const useComponentsMetaState = () => useState('components-meta', () => ({}))
const useComponentsMetaState = () => useState('component-meta-state', () => ({}))
export async function fetchComponentMeta(name: string): Promise<{ meta: ComponentMeta }> {
const state = useComponentsMetaState()

View File

@@ -1,29 +0,0 @@
const useContentExamplesCodeState = () => useState('content-examples-code', () => ({}))
export async function fetchContentExampleCode(name?: string) {
if (!name) return
const state = useContentExamplesCodeState()
if (state.value[name]?.then) {
await state.value[name]
return state.value[name]
}
if (state.value[name]) {
return state.value[name]
}
// add to nitro prerender
if (import.meta.server) {
const event = useRequestEvent()
event.node.res.setHeader(
'x-nitro-prerender',
[event.node.res.getHeader('x-nitro-prerender'), `/api/content-examples-code/${name}.json`].filter(Boolean).join(',')
)
}
state.value[name] = $fetch(`/api/content-examples-code/${name}.json`).then((data) => {
state.value[name] = data
})
await state.value[name]
return state.value[name]
}