"use client"; import { useTransition } from "react"; import { Flame } from "lucide-react"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { makeupTask } from "./actions"; import type { OverviewData } from "./dashboard"; const DOW_LABELS = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]; function dateLabel(date: string) { const [y, m, d] = date.split("-").map(Number); const dow = new Date(Date.UTC(y, m - 1, d)).getUTCDay(); return `${m}月${d}日 ${DOW_LABELS[dow]}`; } export function OverviewTab({ data }: { data: OverviewData }) { const [, startTransition] = useTransition(); return (
{data.kids.map((kid) => ( {kid.name}
{kid.streak} 天连击

今日完成 {kid.today.done} / {kid.today.total} 项

{kid.week.map((day) => (

{dateLabel(day.date)} {day.isToday && " · 今天"}

{day.tasks.length === 0 ? (

无任务(自动保持连击)

) : (
{day.tasks.map((t) => ( {t.title} {t.isMakeup && " · 补"} {!day.isToday && t.status === "pending" && ( )} {!day.isToday && t.isMakeup && ( )} ))}
)}
))}
))}
); }