Files
reacord/packages/docs-new/src/entry.server.tsx
2022-01-02 22:14:27 -06:00

36 lines
1.1 KiB
TypeScript

import { renderToString } from "react-dom/server"
import { HeadProvider } from "react-head"
import { StaticRouter } from "react-router-dom/server"
import { App } from "./app"
export async function render(url: string) {
const headTags: React.ReactElement[] = []
const app = renderToString(
<StaticRouter location={url}>
<HeadProvider headTags={headTags}>
<App />
</HeadProvider>
</StaticRouter>,
)
return /* HTML */ `
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="" />
<link
href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@500&family=Rubik:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="/src/tailwind.css" />
${renderToString(<>{headTags}</>)}
</head>
<body>
${app}
</body>
`
}