update prozess route: pass process status from data queries

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-12 19:44:02 +01:00
parent c6db9cec65
commit a3a331cc0c
2 changed files with 24 additions and 5 deletions

View File

@@ -86,7 +86,7 @@ export function useSitzungen(sprechstundeId: number) {
);
}
export function useProcessStatus(
export function deriveProcessStatus(
nutzer: NutzerRow | undefined,
stats: KontaktStats | undefined,
erstgespraeche: ErstgespraechRow[],

View File

@@ -1,6 +1,11 @@
import { createFileRoute } from "@tanstack/react-router";
import { ProcessStepper } from "@/features/prozess/components/process-stepper";
import { useKontaktStats, useNutzer } from "@/features/prozess/hooks";
import {
deriveProcessStatus,
useErstgespraeche,
useKontaktStats,
useNutzer,
} from "@/features/prozess/hooks";
export const Route = createFileRoute("/prozess/")({
component: ProzessPage,
@@ -17,20 +22,34 @@ function ProzessPage() {
loading: statsLoading,
refetch: refetchStats,
} = useKontaktStats();
const {
data: erstgespraeche,
loading: egLoading,
refetch: refetchEg,
} = useErstgespraeche();
if (nutzerLoading || statsLoading) return <p>Laden</p>;
if (nutzerLoading || statsLoading || egLoading) return <p>Laden</p>;
if (!nutzer[0]) return <p>Bitte zuerst das Onboarding abschließen.</p>;
const s = stats[0] ?? { gesamt: 0, absagen: 0 };
const s = stats[0] ?? {
gesamt: 0,
absagen: 0,
warteliste: 0,
keine_antwort: 0,
};
const processStatus = deriveProcessStatus(nutzer[0], s, erstgespraeche);
return (
<ProcessStepper
aktuellerSchritt={nutzer[0].aktueller_schritt}
processStatus={processStatus}
tssKontaktiertDatum={nutzer[0].tss_kontaktiert_datum}
kontaktGesamt={Number(s.gesamt)}
absagen={Number(s.absagen)}
onUpdate={() => {
refetchNutzer();
refetchStats();
refetchEg();
}}
/>
);