import { createContext, useContext } from 'react' import { Navigate } from '@tanstack/react-router' import { Center, Loader } from '@pikku/mantine/core' import { usePikkuQuery } from '@germantax/functions-sdk/pikku/api.gen' import { AppLayout } from './components/AppLayout' type Me = ReturnType>['data'] const AuthContext = createContext(null) export function useAuth(): NonNullable { const ctx = useContext(AuthContext) if (!ctx) { throw new Error('useAuth must be used inside ') } return ctx } export function RequireAuth({ children }: { children: React.ReactNode }) { const { data, isLoading, error } = usePikkuQuery('getMe', undefined as never, { retry: false, }) if (isLoading) { return (
) } if (error || !data) { return } return ( {children} ) }