mirror of
https://github.com/IT4Change/boilerplate-frontend.git
synced 2025-12-13 07:35:53 +00:00
35 lines
841 B
TypeScript
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
|
|
}
|