signalstats/src/index.tsx
2025-01-20 14:58:10 +01:00

46 lines
1.1 KiB
TypeScript

/* @refresh reload */
import { MetaProvider } from "@solidjs/meta";
import { Router, useNavigate } from "@solidjs/router";
import { render } from "solid-js/web";
import { createEffect, enableScheduling } from "solid-js";
import App from "./App";
import { db } from "./db/db";
enableScheduling();
const root = document.getElementById("root");
if (import.meta.env.DEV && !(root instanceof HTMLElement)) {
throw new Error(
"Root element not found. Did you forget to add it to your index.html? Or maybe the id attribute got misspelled?",
);
}
if (root) {
render(
() => (
<div class="mx-auto max-w-screen-2xl">
<MetaProvider>
<Router
root={(props) => {
const navigate = useNavigate();
const { pathname } = props.location;
createEffect(() => {
if (!db && pathname !== "/") {
navigate("/");
}
});
return props.children;
}}
>
<App />
</Router>
</MetaProvider>
</div>
),
root,
);
}