import Link from "next/link" import { ChevronRight, GraduationCap, PenTool, TriangleAlert } from "lucide-react" import { Avatar, AvatarFallback, AvatarImage } from "@/shared/components/ui/avatar" import { Badge } from "@/shared/components/ui/badge" import { Card, CardContent, CardHeader, CardTitle } from "@/shared/components/ui/card" import { cn, getInitials } from "@/shared/lib/utils" import type { ChildDashboardData } from "@/modules/parent/types" export function ChildCard({ child }: { child: ChildDashboardData }) { const { basicInfo, homeworkSummary, gradeTrend } = child const ranking = gradeTrend.ranking const latestGrade = gradeTrend.recent[0] const childName = basicInfo.name ?? "Child" return ( {getInitials(basicInfo.name)}
{basicInfo.name ?? "Unnamed"}
{basicInfo.className ? ( {basicInfo.className} ) : null} {basicInfo.gradeName ? {basicInfo.gradeName} : null} {basicInfo.relation ? ยท {basicInfo.relation} : null}
Pending
{homeworkSummary.pendingCount}
Overdue
0 && "text-destructive", )} > {homeworkSummary.overdueCount}
Avg
{ranking ? `${Math.round(ranking.percentage)}%` : "-"}
{latestGrade ? (
Latest: {latestGrade.score}/{latestGrade.maxScore} ({latestGrade.assignmentTitle})
) : null}
) }