import { getTranslations } from "next-intl/server"
import { getAuthContext } from "@/shared/lib/auth-guard"
import { getStudentAttendanceSummary } from "@/modules/attendance/data-access-stats"
import { StudentAttendanceView } from "@/modules/attendance/components/student-attendance-view"
import {
ParentChildrenDataPage,
ParentNoChildrenPage,
} from "@/modules/parent/components/parent-children-data-page"
import { ParentAttendanceWarning } from "@/modules/parent/components/parent-attendance-warning"
import { ParentAttendanceRateCard } from "@/modules/parent/components/parent-attendance-rate-card"
import { ParentAttendanceCalendar } from "@/modules/parent/components/parent-attendance-calendar"
import { CalendarCheck } from "lucide-react"
export const dynamic = "force-dynamic"
export default async function ParentAttendancePage() {
const t = await getTranslations("attendance")
const ctx = await getAuthContext()
if (ctx.dataScope.type !== "children" || ctx.dataScope.childrenIds.length === 0) {
return (
)
}
// 使用 allSettled 容错:单个子女查询失败不影响其他子女展示
const results = await Promise.allSettled(
ctx.dataScope.childrenIds.map((id) => getStudentAttendanceSummary(id)),
)
const validSummaries = results
.filter(
(r): r is PromiseFulfilledResult>>> =>
r.status === "fulfilled" && r.value !== null,
)
.map((r) => r.value)
return (
(
)}
headerExtra={
validSummaries.length > 0 ? (
) : null
}
/>
)
}