UNPKG

radish

Version:

Radish is a React-based static site generator that outputs plain HTML and CSS.

24 lines (23 loc) 1.17 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { Head, HeadProvider } from "radish"; import style from "styles/style.css"; export default function Document(props) { const { children, serviceWorker, websocket, preload = [] } = props; return (_jsxs(HeadProvider, { children: [_jsxs(Head, { children: [_jsx("meta", { charSet: "utf-8" }), _jsx("link", { rel: "stylesheet", href: style }), preload.map((resource, i) => (_jsx("link", { href: resource.href, as: resource.as, rel: "preload" }, i))), serviceWorker ? _jsx("script", { children: sw }) : null, websocket ? _jsx("script", { children: ws(websocket) }) : null] }), children] })); } Document.head = HeadProvider.context; const sw = ` if ("serviceWorker" in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register("/sw.js", { type: "module" }) .catch(error => console.error("Couldn't load service worker", error)); }); }`.trim(); const ws = (port) => { return ` const ws = new WebSocket("ws://localhost:${port}"); ws.onmessage = msg => { const data = JSON.parse(msg.data); if (data.type === "refresh") location.reload(); }`.trim(); };