import ReactDOMServer from "react-dom/server"; import { escapeInject, dangerouslySkipEscape } from "vike/server"; import type { OnRenderHtmlAsync } from "vike/types"; import { getPageMetadata } from "./utils"; import Layout from "./layout"; export const onRenderHtml: OnRenderHtmlAsync = async ( pageContext ): ReturnType => { const { Page } = pageContext; if (!Page) throw new Error( "My onRenderHtml() hook expects pageContext.Page to be defined" ); const page = ReactDOMServer.renderToString( ); // See https://vike.dev/head const meta = getPageMetadata(pageContext); const documentHtml = escapeInject` ${meta.title}
${dangerouslySkipEscape(page)}
`; return { documentHtml, pageContext: {}, }; };