🔧
This commit is contained in:
39
node_modules/@inertiajs/inertia-vue3/src/createInertiaApp.js
generated
vendored
Normal file
39
node_modules/@inertiajs/inertia-vue3/src/createInertiaApp.js
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
import { createSSRApp, h } from 'vue'
|
||||
import App, { plugin } from './app'
|
||||
|
||||
export default async function createInertiaApp({ id = 'app', resolve, setup, title, page, render }) {
|
||||
const isServer = typeof window === 'undefined'
|
||||
const el = isServer ? null : document.getElementById(id)
|
||||
const initialPage = page || JSON.parse(el.dataset.page)
|
||||
const resolveComponent = name => Promise.resolve(resolve(name)).then(module => module.default || module)
|
||||
|
||||
let head = []
|
||||
|
||||
const vueApp = await resolveComponent(initialPage.component).then(initialComponent => {
|
||||
return setup({
|
||||
el,
|
||||
app: App, // deprecated
|
||||
App,
|
||||
props: {
|
||||
initialPage,
|
||||
initialComponent,
|
||||
resolveComponent,
|
||||
titleCallback: title,
|
||||
onHeadUpdate: isServer ? elements => (head = elements) : null,
|
||||
},
|
||||
plugin,
|
||||
})
|
||||
})
|
||||
|
||||
if (isServer) {
|
||||
const body = await render(createSSRApp({
|
||||
render: () => h('div', {
|
||||
id,
|
||||
'data-page': JSON.stringify(initialPage),
|
||||
innerHTML: render(vueApp),
|
||||
}),
|
||||
}))
|
||||
|
||||
return { head, body }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user