import { useQuery } from '@tanstack/react-query'; import { fetchDailySummary, fetchTimetable, fetchWakeSleepTimes, fetchSummary } from '../api/client'; import type { DailySummaryResponse, TimetableResponse, WakeupBedtimeResponse, SummaryResponse } from '../types'; export function useSummary(from_date: string, to_date: string) { return useQuery({ queryKey: ['summary', from_date, to_date], queryFn: () => fetchSummary(from_date, to_date), }); } export function useStats( from_date: string, to_date: string, day_start = '07:00', day_end = '20:00', wakeup_ref = '04:00', bedtime_ref = '19:00', timezoneOffset = 0 ) { const dailySummaryQuery = useQuery({ queryKey: ['dailySummary', from_date, to_date, day_start, day_end, timezoneOffset], queryFn: () => fetchDailySummary(from_date, to_date, day_start, day_end, timezoneOffset), }); const timetableQuery = useQuery({ queryKey: ['timetable', from_date, to_date, day_start, day_end, timezoneOffset], queryFn: () => fetchTimetable(from_date, to_date, day_start, day_end, timezoneOffset), }); const wakeupBedtimeQuery = useQuery({ queryKey: ['wakeSleepTimes', from_date, to_date, wakeup_ref, bedtime_ref, timezoneOffset], queryFn: () => fetchWakeSleepTimes(from_date, to_date, wakeup_ref, bedtime_ref, timezoneOffset), }); return { dailySummary: dailySummaryQuery.data, timetable: timetableQuery.data, wakeupBedtime: wakeupBedtimeQuery.data, isLoading: dailySummaryQuery.isLoading || timetableQuery.isLoading || wakeupBedtimeQuery.isLoading, }; }