hornwitser.no/src/components/BasePage.tsx

39 lines
1.1 KiB
TypeScript
Raw Normal View History

import type { Node } from "antihtml";
interface BaseProps {
title: string;
children: Node | Node[],
}
export default function BasePage(props: BaseProps) {
let reloadScript = null;
if (process.env.DEV_EVENT_PORT) {
const content = `const url = new URL("/events", location);
url.port = ${process.env.DEV_EVENT_PORT};
const source = new EventSource(url);
source.addEventListener("reload", () => location.reload());`;
reloadScript = <script type="module" defer="">{content}</script>;
}
return <html lang="en">
<head>
<meta charset="utf-8" />
<title>{props.title}</title>
<meta name="viewport" content="width=device-width" />
<link rel="stylesheet" href="/assets/styles/base.css" />
<script type="module" defer="" src="/assets/scripts/viewport.js" />
{ reloadScript }
</head>
<body>
<header class="header">
<nav>
<a href="/about.html">About</a>
2025-01-25 08:55:26 +01:00
<a href="/updates.html">Updates</a>
<a href="/words.html">Words</a>
<a href="/projects.html">Projects</a>
2025-01-25 10:46:08 +01:00
<a href="/links.html">Links</a>
</nav>
</header>
{props.children}
</body>
</html>
}