2023-11-15 12:11:26 +01:00

35 lines
841 B
TypeScript

import { createSSRApp, defineComponent, h } from 'vue'
import PageShell from './PageShell.vue'
import { setPageContext } from './usePageContext'
import type { Component, PageContext, PageProps } from './types'
import vuetify from './vuetify'
import { createPinia } from 'pinia'
export { createApp }
function createApp(Page: Component, pageProps: PageProps | undefined, pageContext: PageContext) {
const PageWithLayout = defineComponent({
render() {
return h(
PageShell,
{},
{
default() {
return h(Page, pageProps || {})
},
},
)
},
})
const pinia = createPinia()
const app = createSSRApp(PageWithLayout)
app.use(pinia)
app.use(vuetify)
// Make pageContext available from any Vue component
setPageContext(app, pageContext)
return app
}