39 lines
762 B
JavaScript
39 lines
762 B
JavaScript
|
import { createSSRApp, h } from 'vue';
|
||
|
import { setPageContext } from './usePageContext';
|
||
|
|
||
|
import '../assets/css/style.css';
|
||
|
|
||
|
import Container from './container.vue';
|
||
|
import Link from '../components/link/link.vue';
|
||
|
import Icon from '../components/icon/icon.vue';
|
||
|
|
||
|
function createApp(Page, pageProps, pageContext) {
|
||
|
const PageWithLayout = {
|
||
|
render() {
|
||
|
return h(
|
||
|
Container,
|
||
|
{},
|
||
|
{
|
||
|
default() {
|
||
|
return h(Page, pageProps || {});
|
||
|
},
|
||
|
},
|
||
|
);
|
||
|
},
|
||
|
};
|
||
|
|
||
|
const app = createSSRApp(PageWithLayout);
|
||
|
|
||
|
// We make pageContext available from any Vue component
|
||
|
setPageContext(app, pageContext);
|
||
|
|
||
|
app.provide('pageContext', pageContext);
|
||
|
|
||
|
app.component('Link', Link);
|
||
|
app.component('Icon', Icon);
|
||
|
|
||
|
return app;
|
||
|
}
|
||
|
|
||
|
export { createApp };
|