import { AlertTriangle, CheckCircle2, HeartPulse, PhoneCall } from "lucide-react"; import { AlertActions, CheckInButton } from "@/components/family-guard-actions"; import { PanelShell } from "@/components/panel-shell"; import { requireFamilyWorkspace } from "@/lib/family-page"; import { formatDateTime } from "@/lib/panel-format"; import { requireCaregiverSession } from "@/lib/page-auth"; import { getCaregiverDisplayName } from "@/lib/session"; export const dynamic = "force-dynamic"; export default async function GuardPage() { const caregiver = await requireCaregiverSession("/guard"); const workspace = await requireFamilyWorkspace(caregiver.id); const openAlerts = workspace.alerts.filter((a) => a.status === "OPEN" || a.status === "ACKNOWLEDGED"); const todayDoses = workspace.medicationPlans.flatMap((p) => p.doses).filter((d) => d.scheduledFor.toDateString() === new Date().toDateString()); const doneDoses = todayDoses.filter((d) => d.status === "TAKEN").length; const openTasks = workspace.tasks.filter((t) => t.status !== "COMPLETED" && t.status !== "CANCELLED"); const pendingCheckIns = workspace.checkIns.filter((c) => c.status === "PENDING"); return
{openAlerts.length}待处理提醒
{doneDoses}/{todayDoses.length}今日用药
{openTasks.length}照护事项
{pendingCheckIns.length}待报平安

风险提醒

人工确认后再处置
{workspace.alerts.length ? workspace.alerts.map((alert) =>
{alert.title}{formatDateTime(alert.createdAt)}

{alert.summary}

{alert.claimedBy ? `已由 ${alert.claimedBy.nickname || alert.claimedBy.username || "家人"} 接手` : "尚未认领"}

) :

当前没有待处理的风险提醒
}

今日状态

设备最近在线{formatDateTime(workspace.elderProfile.elderDevice.lastSeenAt)}

仅根据终端在线和主动交互记录展示,不代表生命体征状态。

家庭值守

{workspace.memberships.filter((m) => m.emergencyPush).map((m) => m.caregiver.nickname || m.caregiver.username || "家人").join("、") || "尚未设置"}

; }