import { useCallback, useEffect, useState } from "react"; import { DateTime } from "luxon"; import ScheduleCalendar from "@/components/features/schedule/ScheduleCalendar"; import PageTitle from "@/components/ui/PageTitle"; import Spinner from "@/components/Spinner"; import { ScheduleType } from "@/types/ScheduleType"; import { listSchedule } from "@/utils/api/scheduleApi"; import OnboardingBanner from "@/components/features/OnboardingBanner" import { useFetchUsers } from "@/hooks/useFetchUsers" import { useFetchDishes } from "@/hooks/useFetchDishes" import ScheduleRegenerateButton from "@/components/features/schedule/ScheduleRegenerateButton"; const UpcomingDishes = () => { const [schedule, setSchedule] = useState([]); const [isLoading, setIsLoading] = useState(true); const today = DateTime.now().toFormat("yyyy-LL-dd"); const fetchSchedule = useCallback(() => { setIsLoading(true); listSchedule(today) .then((dishes) => setSchedule(dishes)) .finally(() => setIsLoading(false)); }, [today]); useEffect(() => { fetchSchedule(); }, [fetchSchedule]); const { users, isLoading: areUsersLoading } = useFetchUsers(); const { dishes, isLoading: areDishesLoading } = useFetchDishes(); if (isLoading || areUsersLoading || areDishesLoading) { return ; } if (users.length === 0 || dishes.length === 0) { return } return (
Schedule
{ !schedule || Object.keys(schedule).length === 0 ?
No dishes scheduled
: }
); }; export default UpcomingDishes;