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}
)}
>
);
}