1/* @refresh reload */
2import "solid-devtools";
3import "./styles/index.css";
4
5import { Route, Router } from "@solidjs/router";
6import { render } from "solid-js/web";
7import App from "./app";
8import NotFound from "./errors/404";
9import RepoBlob, { preloadRepoBlob } from "./routes/repo/blob";
10import RepoCommit from "./routes/repo/commit/commit";
11import { RepoProvider } from "./routes/repo/context";
12import RepoTree, { preloadRepoTree } from "./routes/repo/tree";
13import User from "./routes/user";
14
15const root = document.getElementById("root");
16
17if (!(root instanceof HTMLElement)) {
18 throw new Error("Root element not found.");
19}
20
21render(
22 () => (
23 <Router root={(props) => <App>{props.children}</App>}>
24 <Route path="/:user/:repo" component={RepoProvider}>
25 <Route
26 path="/tree/:ref/*path"
27 component={RepoTree}
28 preload={preloadRepoTree}
29 />
30 <Route
31 path="/blob/:ref/*path"
32 component={RepoBlob}
33 preload={preloadRepoBlob}
34 />
35 <Route path="/commit/:ref" component={RepoCommit} />
36 <Route component={RepoTree} />
37 </Route>
38 <Route path="/:user" component={User} />
39 <Route path="*" component={NotFound} />
40 </Router>
41 ),
42 root,
43);