/* @refresh reload */ import { Portal, render } from "solid-js/web"; import { RouteDefinition, Router } from "@solidjs/router"; import "./index.css"; import { QueryClient, QueryClientProvider } from "@tanstack/solid-query"; import { MachineDetails } from "./routes/machines/[name]/view"; import { Layout } from "./layout/layout"; import { MachineListView } from "./routes/machines/view"; import { ClanList, CreateClan, ClanDetails } from "./routes/clans"; import { Flash } from "./routes/flash/view"; import { CreateMachine } from "./routes/machines/create"; import { HostList } from "./routes/hosts/view"; import { Welcome } from "./routes/welcome"; import { Toaster } from "solid-toast"; const client = new QueryClient(); const root = document.getElementById("app"); window.clan = window.clan || {}; 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 (import.meta.env.DEV) { console.log("Development mode"); // Load the debugger in development mode await import("solid-devtools"); } export type AppRoute = Omit & { label: string; icon?: string; children?: AppRoute[]; hidden?: boolean; }; export const routes: AppRoute[] = [ { path: "/machines", label: "Machines", icon: "devices_other", children: [ { path: "/", label: "Overview", component: () => , }, { path: "/create", label: "Create", component: () => , }, { path: "/:id", label: "Details", hidden: true, component: () => , }, ], }, { path: "/clans", label: "Clans", icon: "groups", children: [ { path: "/", label: "Overview", component: () => , }, { path: "/create", label: "Create", component: () => , }, { path: "/:id", label: "Details", hidden: true, component: () => , }, ], }, { path: "/tools", label: "Tools", icon: "bolt", children: [ { path: "/flash", label: "Clan Installer", component: () => , }, { path: "/hosts", label: "Local Hosts", component: () => , }, ], }, { path: "/welcome", label: "", hidden: true, component: () => , }, ]; render( () => ( <> {routes} ), // eslint-disable-next-line @typescript-eslint/no-non-null-assertion root!, );