Files
webstudio/fixtures/ssg/renderer/+onRenderClient.tsx
T
Bogdan Chadkin 37791ee4c1 experimental: support ssg with vike (#3773)
Ref https://github.com/webstudio-is/webstudio/issues/3763

Here added new "ssg" template to cli.
Generated non-remix app. `vike build` generates
static site at `dist/client`.

```
cd fixtures/ssg
pnpm build
npx sirv-cli client/dist
```
2024-07-23 10:51:36 +02:00

31 lines
995 B
TypeScript

import { type Root, createRoot } from "react-dom/client";
import type { OnRenderClientSync } from "vike/types";
// @todo think about how to make __generated__ typeable
/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */
// @ts-ignore
import { CustomCode } from "../app/__generated__/_index";
let root: Root;
export const onRenderClient: OnRenderClientSync = (pageContext) => {
const lang = pageContext.data.pageMeta.language || "en";
const Head = pageContext.config.Head ?? (() => <></>);
const Page = pageContext.Page ?? (() => <></>);
const htmlContent = (
<>
<head>
<meta charSet="UTF-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<Head data={pageContext.data} />
<CustomCode />
</head>
<Page data={pageContext.data} />
</>
);
if (root === undefined) {
root = createRoot(document.documentElement);
}
document.documentElement.lang = lang;
root.render(htmlContent);
};