diff --git a/apps/web/src/App.tsx b/apps/web/src/App.tsx index 3a91a34..0a5afa1 100644 --- a/apps/web/src/App.tsx +++ b/apps/web/src/App.tsx @@ -236,20 +236,23 @@ export function App() { ); } - // Still loading auth state or setup check - if (authDisabled === null || sessionLoading || needsSetup === null) return null; + // Still loading auth state or setup check (skip setup check in dev mode) + if (authDisabled === null || sessionLoading) return null; - // Dev mode: show login selector + // Dev mode: show login selector (no setup check needed in dev mode) if (authDisabled && location.pathname === "/login") { return ; } - // Dev mode: use dev login selector + // Dev mode: use dev login selector (no setup check needed in dev mode) if (authDisabled && !getDevUser()) { return ; } - // Production mode: if no session, show login page (avoids redirect loops) + // Production: need setup check + if (needsSetup === null) return null; + + // Production mode: if no session, redirect to Authentik sign-in if (!authDisabled && !session) { return ; } diff --git a/apps/web/src/portal/CustomerPortal.tsx b/apps/web/src/portal/CustomerPortal.tsx index 484a26a..7fbc453 100644 --- a/apps/web/src/portal/CustomerPortal.tsx +++ b/apps/web/src/portal/CustomerPortal.tsx @@ -122,21 +122,22 @@ export function CustomerPortal() { const isReadOnly = session?.status === "active"; const renderSection = () => { + const sessionId = session?.id ?? null; switch (activeSection) { case "dashboard": - return ; + return ; case "appointments": - return ; + return ; case "pets": - return ; + return ; case "reports": - return ; + return ; case "billing": - return ; + return ; case "messages": - return ; + return ; case "settings": - return ; + return ; } }; @@ -279,7 +280,7 @@ export function CustomerPortal() {
- Hi, {CUSTOMER.name.split(" ")[0]} + Hi, {clientName.split(" ")[0] || "Guest"}
SM