- 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>
38 lines
921 B
TypeScript
38 lines
921 B
TypeScript
import { createFileRoute } from "@tanstack/react-router";
|
|
import { ProcessStepper } from "@/features/prozess/components/process-stepper";
|
|
import { useKontaktStats, useNutzer } from "@/features/prozess/hooks";
|
|
|
|
export const Route = createFileRoute("/prozess/")({
|
|
component: ProzessPage,
|
|
});
|
|
|
|
function ProzessPage() {
|
|
const {
|
|
data: nutzer,
|
|
loading: nutzerLoading,
|
|
refetch: refetchNutzer,
|
|
} = useNutzer();
|
|
const {
|
|
data: stats,
|
|
loading: statsLoading,
|
|
refetch: refetchStats,
|
|
} = useKontaktStats();
|
|
|
|
if (nutzerLoading || statsLoading) return <p>Laden…</p>;
|
|
if (!nutzer[0]) return <p>Bitte zuerst das Onboarding abschließen.</p>;
|
|
|
|
const s = stats[0] ?? { gesamt: 0, absagen: 0 };
|
|
|
|
return (
|
|
<ProcessStepper
|
|
aktuellerSchritt={nutzer[0].aktueller_schritt}
|
|
kontaktGesamt={Number(s.gesamt)}
|
|
absagen={Number(s.absagen)}
|
|
onUpdate={() => {
|
|
refetchNutzer();
|
|
refetchStats();
|
|
}}
|
|
/>
|
|
);
|
|
}
|