49 lines
996 B
JavaScript
49 lines
996 B
JavaScript
import { createSSRApp, h } from 'vue';
|
|
import VueVirtualScroller from 'vue-virtual-scroller';
|
|
import FloatingVue from 'floating-vue';
|
|
|
|
import { setPageContext } from './usePageContext.js';
|
|
import initClient from './init-client.js';
|
|
|
|
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);
|
|
|
|
setPageContext(app, pageContext);
|
|
|
|
app.provide('pageContext', pageContext);
|
|
|
|
app.use(FloatingVue, { container: '#container' });
|
|
app.use(VueVirtualScroller);
|
|
|
|
app.component('Link', Link);
|
|
app.component('Icon', Icon);
|
|
|
|
if (typeof window === 'object') {
|
|
initClient(pageContext);
|
|
}
|
|
|
|
return app;
|
|
}
|
|
|
|
export { createApp };
|