fixed ssr errors

This commit is contained in:
Ren Amamiya
2023-04-23 08:25:27 +07:00
parent b9bafc851e
commit 8b6bffcff2
14 changed files with 101 additions and 45 deletions

View File

@@ -2,19 +2,31 @@ import '@renderer/index.css';
import { Shell } from '@renderer/shell';
import { PageContextClient } from '@renderer/types';
import { hydrateRoot } from 'react-dom/client';
import { Root, createRoot, hydrateRoot } from 'react-dom/client';
export const clientRouting = true;
let root: Root;
export async function render(pageContext: PageContextClient) {
const { Page, pageProps } = pageContext;
if (!Page) throw new Error('Client-side render() hook expects pageContext.Page to be defined');
hydrateRoot(
document.getElementById('app')!,
const page = (
<Shell pageContext={pageContext}>
<Page {...pageProps} />
</Shell>
);
const container = document.getElementById('app');
// SPA
if (container.innerHTML === '' || !pageContext.isHydration) {
if (!root) {
root = createRoot(container);
}
root.render(page);
// SSR
} else {
root = hydrateRoot(container, page);
}
}