"use client"; import { useMemo } from "react"; type ProtocolDebugEvent = { id: string; at: number; payload: Record; }; export function ProtocolDebugPanel({ enabled, events, onClear, }: { enabled: boolean; events: ProtocolDebugEvent[]; onClear?: () => void; }) { if (!enabled) return null; const groupedEvents = useMemo(() => { const groups = new Map(); for (const event of events) { const key = String(event.payload.phase || event.payload.type || "unknown"); const list = groups.get(key) || []; list.push(event); groups.set(key, list); } return Array.from(groups.entries()).map(([phase, items]) => ({ phase, items, })); }, [events]); return (
Protocol Debug
总事件 {events.length} 阶段 {groupedEvents.length}
{events.length === 0 ? (
暂无协议调试事件
) : ( groupedEvents.map((group) => (
{group.phase} {" · "} {group.items.length} 条
{group.items.map((event) => (
{new Date(event.at).toLocaleTimeString()}
                        {JSON.stringify(event.payload, null, 2)}
                      
))}
)) )}
); }