import { Suspense } from "react" import { Calendar } from "lucide-react" import { getClassSchedule, getTeacherClasses } from "@/modules/classes/data-access" import { ScheduleFilters } from "@/modules/classes/components/schedule-filters" import { ScheduleView } from "@/modules/classes/components/schedule-view" import { EmptyState } from "@/shared/components/ui/empty-state" import { Skeleton } from "@/shared/components/ui/skeleton" export const dynamic = "force-dynamic" type SearchParams = { [key: string]: string | string[] | undefined } const getParam = (params: SearchParams, key: string) => { const v = params[key] return Array.isArray(v) ? v[0] : v } async function ScheduleResults({ searchParams }: { searchParams: Promise }) { const params = await searchParams const classId = getParam(params, "classId") const classes = await getTeacherClasses() const schedule = await getClassSchedule({ classId: classId && classId !== "all" ? classId : undefined, }) const hasFilters = Boolean(classId && classId !== "all") if (schedule.length === 0) { return ( ) } return } function ScheduleResultsFallback() { return (
{Array.from({ length: 6 }).map((_, idx) => (
))}
) } export default async function SchedulePage({ searchParams }: { searchParams: Promise }) { const classes = await getTeacherClasses() return (
}> }>
) }