import Link from "next/link" import { getTranslations } from "next-intl/server" import { CalendarCheck, CalendarDays, GraduationCap, Megaphone, Users, } from "lucide-react" import { Card, CardContent } from "@/shared/components/ui/card" import { EmptyState } from "@/shared/components/ui/empty-state" import type { ParentDashboardData } from "@/modules/parent/types" import { getGreetingKey } from "@/modules/dashboard/lib/dashboard-utils" import { ChildCard } from "./child-card" import { ParentAttentionBanner } from "./parent-attention-banner" export async function ParentDashboard({ data }: { data: ParentDashboardData }) { const t = await getTranslations("dashboard") const { parentName, children } = data const hasChildren = children.length > 0 const greetingKey = getGreetingKey(new Date()) const QUICK_ENTRIES = [ { href: "/parent/grades", label: t("quickActions.grades"), icon: GraduationCap }, { href: "/parent/attendance", label: t("quickActions.attendance"), icon: CalendarCheck }, { href: "/announcements", label: t("quickActions.announcements"), icon: Megaphone }, { href: "/parent/leave", label: t("quickActions.leaveRequest"), icon: CalendarDays }, ] as const return (

{t("title.parent")}

{t(`greeting.${greetingKey}`)} {parentName ? `, ${parentName}` : ""}. {t("description.parent")}
{hasChildren ? ( <>
{t("badge.childrenLinked", { count: children.length })}
{/* 移动端水平滑动卡片,桌面端网格布局 */}
{children.map((child) => (
))}
{children.map((child) => ( ))}
) : ( )}
) }