import type { Route } from './+types/route' import * as cookie from 'cookie' import { useEffect } from 'react' import { Outlet, type ShouldRevalidateFunctionArgs } from 'react-router' import { userContext } from '@repo/auth/context' import { authMiddleware } from '@repo/auth/middleware/auth' import { ModeToggle, ThemedImage } from '@repo/ui/components/dark-mode' import { NavUser } from '@repo/ui/components/nav-user' import { SidebarInset, SidebarProvider, SidebarTrigger } from '@repo/ui/components/ui/sidebar' import { Toaster } from '@repo/ui/components/ui/sonner' import { AppSidebar } from '@/components/app-sidebar' import { WorkspaceProvider } from '@/components/workspace-switcher' import { workspaceContext, workspaceMiddleware } from '@/middleware/workspace' // import { Notification } from '@/components/notification' export const middleware: Route.MiddlewareFunction[] = [ authMiddleware, workspaceMiddleware ] export async function loader({ context, request }: Route.ActionArgs) { const user = context.get(userContext)! const workspace = context.get(workspaceContext) const rawCookie = request.headers.get('cookie') || '' const parsedCookies = cookie.parse(rawCookie) const { sidebar_state = 'true' } = parsedCookies return { user, sidebar_state, ...workspace } } export function shouldRevalidate({ currentParams, nextParams }: ShouldRevalidateFunctionArgs) { return currentParams.orgid !== nextParams.orgid } export default function Route({ loaderData }: Route.ComponentProps) { const { user, activeWorkspace, workspaces, subscription, address, sidebar_state } = loaderData useEffect(() => { if (typeof window !== 'undefined' && window.rybbit) { window.rybbit.identify(user.sub, { username: user.email, name: user.name, email: user.email }) } }, []) return (
{/**/}
) }