import { useMutation } from "@tanstack/react-query"; import { LifeBuoy } from "lucide-react"; import { Outlet, useNavigate } from "react-router"; import { toast } from "sonner"; import { logoutMutation } from "~/api-client/@tanstack/react-query.gen"; import { appContext } from "~/context"; import { authMiddleware } from "~/middleware/auth"; import type { Route } from "./+types/layout"; import { AppBreadcrumb } from "./app-breadcrumb"; import { GridBackground } from "./grid-background"; import { Button } from "./ui/button"; export const clientMiddleware = [authMiddleware]; export async function clientLoader({ context }: Route.LoaderArgs) { const ctx = context.get(appContext); return ctx; } export default function Layout({ loaderData }: Route.ComponentProps) { const navigate = useNavigate(); const logout = useMutation({ ...logoutMutation(), onSuccess: async () => { navigate("/login", { replace: true }); }, onError: (error) => { console.error(error); toast.error("Logout failed"); }, }); return (
{loaderData.user && (
Welcome, {loaderData.user?.username}
)}
); }