From 0b4e7e725fc0b34c405df97eb487ba07929b9ca0 Mon Sep 17 00:00:00 2001 From: elpatron Date: Thu, 2 Oct 2025 13:55:24 +0200 Subject: [PATCH] Fix: Live updates in availability management - Add manual refetch calls after slot creation/deletion - Ensure availability list updates immediately after changes - Fix issue where slots didn't appear in list after adding - Improve user experience with real-time updates --- src/client/components/admin-availability.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/client/components/admin-availability.tsx b/src/client/components/admin-availability.tsx index 1f76a67..d010588 100644 --- a/src/client/components/admin-availability.tsx +++ b/src/client/components/admin-availability.tsx @@ -10,7 +10,7 @@ export function AdminAvailability() { const [selectedTreatmentId, setSelectedTreatmentId] = useState(""); const [slotType, setSlotType] = useState<"treatment" | "manual">("treatment"); - const { data: allSlots } = useQuery( + const { data: allSlots, refetch: refetchSlots } = useQuery( queryClient.availability.live.list.experimental_liveOptions() ); @@ -90,6 +90,9 @@ export function AdminAvailability() { : `Manueller Slot (${duration} Min)`; setSuccessMsg(`${slotDescription} angelegt.`); + // Manually refetch slots to ensure live updates + refetchSlots(); + // advance time by the duration of the slot const [hStr, mStr] = time.split(":"); let h = parseInt(hStr, 10); @@ -337,6 +340,8 @@ export function AdminAvailability() { { onSuccess: () => { setSuccessMsg("Slot erfolgreich gelöscht."); + // Manually refetch slots to ensure live updates + refetchSlots(); }, onError: (err: any) => { const msg = (err && (err.message || (err as any).toString())) || "Fehler beim Löschen des Slots.";