From a431711ff021ae8324c531a9dad3f38d5c77782d Mon Sep 17 00:00:00 2001 From: orion Date: Sat, 4 Apr 2026 10:44:51 +0000 Subject: [PATCH] fix: handle wrapped calendar api responses --- src/pages/CalendarPage.tsx | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/pages/CalendarPage.tsx b/src/pages/CalendarPage.tsx index f1db89a..01175f9 100644 --- a/src/pages/CalendarPage.tsx +++ b/src/pages/CalendarPage.tsx @@ -26,6 +26,12 @@ interface TimeSlotResponse { updated_at: string | null } +interface DayViewResponse { + date: string + user_id: number + slots: TimeSlotResponse[] +} + interface SchedulePlanResponse { id: number slot_type: SlotType @@ -41,6 +47,10 @@ interface SchedulePlanResponse { updated_at: string | null } +interface PlanListResponse { + plans: SchedulePlanResponse[] +} + interface WorkloadWarning { period: string slot_type: string @@ -111,8 +121,8 @@ export default function CalendarPage() { setLoading(true) setError('') try { - const { data } = await api.get(`/calendar/day?date=${date}`) - setSlots(data) + const { data } = await api.get(`/calendar/day?date=${date}`) + setSlots(Array.isArray(data?.slots) ? data.slots : []) } catch (err: any) { setError(err.response?.data?.detail || 'Failed to load calendar') setSlots([]) @@ -123,8 +133,8 @@ export default function CalendarPage() { const fetchPlans = async () => { try { - const { data } = await api.get('/calendar/plans') - setPlans(data) + const { data } = await api.get('/calendar/plans') + setPlans(Array.isArray(data?.plans) ? data.plans : []) } catch (err: any) { console.error('Failed to load plans:', err) }