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:
@@ -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("Не удалось удалить запись");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user