import type { JSX } from "react" import { getTranslations } from "next-intl/server" import { getTeacherClasses } from "@/modules/classes/data-access" import { getClassAttendanceStats } from "@/modules/attendance/data-access-stats" import { AttendanceStatsCard } from "@/modules/attendance/components/attendance-stats-card" import { AttendanceRecordList } from "@/modules/attendance/components/attendance-record-list" import { AttendanceStatsClassSelector } from "@/modules/attendance/components/attendance-stats-class-selector" import { EmptyState } from "@/shared/components/ui/empty-state" import { getParam, type SearchParams } from "@/shared/lib/search-params" import { BarChart3 } from "lucide-react" export const dynamic = "force-dynamic" export default async function AttendanceStatsPage({ searchParams, }: { searchParams: Promise }): Promise { const t = await getTranslations("attendance") const sp = await searchParams const classId = getParam(sp, "classId") const startDate = getParam(sp, "startDate") const endDate = getParam(sp, "endDate") const classes = await getTeacherClasses() if (classes.length === 0) { return (

{t("title.teacherStats")}

{t("description.teacherStats")}

) } const targetClassId = classId ?? classes[0].id const summary = await getClassAttendanceStats( targetClassId, startDate, endDate ) const classOptions = classes.map((c) => ({ id: c.id, name: c.name })) return (

{t("title.teacherStats")}

{t("description.teacherStats")}

{summary ? ( <>

{t("stats.studentRecords")}

) : ( )}
) }