Files
tpf/src/routes/__root.tsx
Felix Förtsch 16de72c017 add settings page, contact editing, process flow, PWA updates
- settings tab with theme picker, data management, developer mode (mock data), PWA version/update
- contact detail page with inline editing of therapist info and contact attempts
- quick-action buttons on contact cards (update latest kontakt instead of creating duplicates)
- process stepper with inline step actions, Erstgespräch form embedded in step 1
- sticky bottom tab bar, Switch component, .htaccess in build output
- pre-warm PGlite on onboarding mount, spinner feedback on submit
- move DB init out of beforeLoad for faster initial page render
- bump to 2026.03.11.1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 13:08:48 +01:00

57 lines
1.7 KiB
TypeScript

import {
createRootRoute,
Link,
Outlet,
useMatchRoute,
} from "@tanstack/react-router";
import { FileText, ListChecks, Settings, Users } from "lucide-react";
export const Route = createRootRoute({
component: () => {
const matchRoute = useMatchRoute();
const isOnboarding = matchRoute({ to: "/onboarding" });
return (
<div className="flex min-h-screen flex-col bg-background text-foreground">
<main className="mx-auto w-full max-w-2xl flex-1 px-4 pb-20 pt-6">
<Outlet />
</main>
{!isOnboarding && (
<nav className="fixed inset-x-0 bottom-0 border-t bg-background">
<div className="mx-auto flex max-w-2xl">
<Link
to="/prozess"
className="flex flex-1 flex-col items-center gap-1 py-2 text-xs text-muted-foreground [&.active]:font-bold [&.active]:text-primary"
>
<ListChecks className="size-5" />
Fortschritt
</Link>
<Link
to="/kontakte"
className="flex flex-1 flex-col items-center gap-1 py-2 text-xs text-muted-foreground [&.active]:font-bold [&.active]:text-primary"
>
<Users className="size-5" />
Kontakte
</Link>
<Link
to="/antrag"
className="flex flex-1 flex-col items-center gap-1 py-2 text-xs text-muted-foreground [&.active]:font-bold [&.active]:text-primary"
>
<FileText className="size-5" />
Antrag
</Link>
<Link
to="/einstellungen"
className="flex flex-1 flex-col items-center gap-1 py-2 text-xs text-muted-foreground [&.active]:font-bold [&.active]:text-primary"
>
<Settings className="size-5" />
Mehr
</Link>
</div>
</nav>
)}
</div>
);
},
});