diff --git a/src/client/routes/admin.tsx b/src/client/routes/admin.tsx new file mode 100644 index 0000000..827cfa3 --- /dev/null +++ b/src/client/routes/admin.tsx @@ -0,0 +1,62 @@ +import { createFileRoute, Outlet, useNavigate } from "@tanstack/react-router"; +import { useEffect } from "react"; +import { useAuth } from "../hooks/useAuth"; +import { LucideIcon } from "../lib/iconData"; + +export const Route = createFileRoute("/admin")({ + component: AdminLayout, +}); + +function AdminLayout() { + const navigate = useNavigate(); + const { data: auth, isLoading } = useAuth(); + + useEffect(() => { + if (!isLoading && !auth?.user?.isAdmin) { + navigate({ to: "/" }); + } + }, [auth, isLoading, navigate]); + + // Don't render the shell until auth is confirmed + if (isLoading || !auth?.user?.isAdmin) return null; + + return ( +
Admin Panel
++ Select a section from the sidebar +
+