diff --git a/apps/frontend/src/routes/_assessmentLayout.tsx b/apps/frontend/src/routes/_assessmentLayout.tsx new file mode 100644 index 0000000..852d95b --- /dev/null +++ b/apps/frontend/src/routes/_assessmentLayout.tsx @@ -0,0 +1,65 @@ +import { Navigate, Outlet, createFileRoute } from "@tanstack/react-router"; +import AppHeader from "../components/AppHeader"; +import AppNavbar from "../components/AppNavbar"; +import useAuth from "@/hooks/useAuth"; +import { useQuery } from "@tanstack/react-query"; +import fetchRPC from "@/utils/fetchRPC"; +import client from "@/honoClient"; +import { useState } from "react"; + +export const Route = createFileRoute("/_assessmentLayout")({ + component: AssessmentLayout, + + // beforeLoad: ({ location }) => { + // if (true) { + // throw redirect({ + // to: "/login", + // }); + // } + // }, +}); + +function AssessmentLayout() { + const { isAuthenticated, saveAuthData } = useAuth(); + + useQuery({ + queryKey: ["my-profile"], + queryFn: async () => { + const response = await fetchRPC(client.auth["my-profile"].$get()); + + saveAuthData({ + id: response.id, + name: response.name, + permissions: response.permissions, + }); + + return response; + }, + enabled: isAuthenticated, + }); + + const [openNavbar, setNavbarOpen] = useState(true); + const toggle = () => { + setNavbarOpen(!openNavbar); + }; + + return isAuthenticated ? ( +