fix: dashboard counters refresh after status changes

When a booking status is changed, confirmed, or deleted in any tab,
the dashboard summary cards re-fetch to show updated counts. Previously
the dashboard was stale until page reload.
This commit is contained in:
2026-03-24 17:52:21 +03:00
parent 83456c6e9d
commit aa07b64c80
4 changed files with 17 additions and 7 deletions
@@ -14,6 +14,7 @@ interface GenericBookingsListProps<T extends BaseBooking> {
endpoint: string;
filter: BookingFilter;
onItemsChange: (fn: (prev: T[]) => T[]) => void;
onDataChange?: () => void;
groups?: BookingGroup<T>[];
renderExtra?: (item: T) => React.ReactNode;
onConfirm?: (id: number) => void;
@@ -24,6 +25,7 @@ export function GenericBookingsList<T extends BaseBooking>({
endpoint,
filter,
onItemsChange,
onDataChange,
groups,
renderExtra,
onConfirm,
@@ -47,6 +49,7 @@ export function GenericBookingsList<T extends BaseBooking>({
body: JSON.stringify({ action: "set-status", id, status }),
});
if (!res.ok) throw new Error();
onDataChange?.();
} catch {
if (prevStatus) onItemsChange((list) => list.map((b) => b.id === id ? { ...b, status: prevStatus } : b));
showError("Не удалось обновить статус");
@@ -58,6 +61,7 @@ export function GenericBookingsList<T extends BaseBooking>({
const res = await adminFetch(`${endpoint}?id=${id}`, { method: "DELETE" });
if (!res.ok) throw new Error();
onItemsChange((list) => list.filter((b) => b.id !== id));
onDataChange?.();
} catch {
showError("Не удалось удалить запись");
}