import Link from "next/link"; import { notFound } from "next/navigation"; import { ManageDeviceForm, SendMessageForm } from "@/components/dashboard-actions"; import { PanelShell } from "@/components/panel-shell"; import { getCaregiverDeviceDetail } from "@/lib/caregiver-panel"; import { formatDateTime, getConversationRoleLabel, getDeviceName, getMessageHref, getUsageLabel, truncateText } from "@/lib/panel-format"; import { requireCaregiverSession } from "@/lib/page-auth"; import { getCaregiverDisplayName } from "@/lib/session"; export const dynamic = "force-dynamic"; export default async function DeviceDetailPage({ params, searchParams }: PageProps<"/devices/[deviceUuid]">) { const { deviceUuid } = await params; const caregiver = await requireCaregiverSession(`/devices/${deviceUuid}`); const binding = await getCaregiverDeviceDetail(caregiver.id, deviceUuid); if (!binding) notFound(); const rawTab = (await searchParams).tab; const tab = rawTab === "chat" || rawTab === "usage" ? rawTab : "msg"; const messages = binding.elderDevice.messages; return ( {formatDateTime(binding.elderDevice.lastSeenAt)}}>
{binding.elderUnreadCount}新留言
{binding.familyUnreadCount}待长辈听
{binding.elderDevice._count.conversationTurns}陪伴对话
留言 对话 使用
{tab === "msg" ? (messages.length ? messages.map((message) => (
{message.direction === "FAMILY_TO_ELDER" ? "我发出的问候" : "长辈捎来的话"}{formatDateTime(message.createdAt)}

{truncateText(message.content, 126)}

)) :
还没有留言。
) : tab === "chat" ? (binding.elderDevice.conversationTurns.length ? binding.elderDevice.conversationTurns.map((turn) => (
{getConversationRoleLabel(turn.role)}{formatDateTime(turn.createdAt)}

{truncateText(turn.content, 150)}

)) :
还没有聊天记录。
) : (binding.elderDevice.usageEvents.length ? binding.elderDevice.usageEvents.map((event) => (
使用记录{formatDateTime(event.createdAt)}

{getUsageLabel(event.eventType)}

)) :
暂时还没有使用记录。
)}
设备设置
); }