import { MetaProvider, Title } from "@solidjs/meta"; import { Router, useLocation, Navigate } from "@solidjs/router"; import { FileRoutes } from "@solidjs/start/router"; import { Show, Suspense } from "solid-js"; import { ThemeProvider } from "./lib/theme"; import { ClerkProvider } from "clerk-solidjs/start"; import { ClerkLoaded, ClerkLoading, useAuth } from "clerk-solidjs"; import { AppShell } from "./components/layout"; import { ToastProvider, ErrorBoundary, PageTransition } from "./components/ui"; import "./app.css"; const PROTECTED_PATHS = ["/dashboard", "/onboarding"]; function pathMatches(pathname: string, prefixes: string[]): boolean { return prefixes.some( (p) => pathname === p || pathname.startsWith(p + "/"), ); } function RouteGuard() { const location = useLocation(); const auth = useAuth(); const redirect = () => { const pathname = location.pathname; if ( auth.isLoaded() && !auth.isSignedIn() && pathMatches(pathname, PROTECTED_PATHS) ) { return "/login"; } return undefined; }; return ( {(to) => } ); } function ClerkApp(props: { children: any }) { return (
{props.children} ); } export default function App() { return ( ShieldAI ( Skip to main content {props.children} )} > ); }