"use client"; import { useState, useEffect } from "react"; import { TYPE_COLORS, LEVEL_COLORS, PROVIDER_COLORS, getProxyStatusStyle as getStatusStyle, } from "@/shared/constants/colors"; import { formatDuration as formatLatency } from "@/shared/utils/formatting"; /** * Proxy log detail modal — shows full proxy event metadata, error info, and config. * Extracted from ProxyLogger.js for maintainability. */ export default function ProxyLogDetail({ log, onClose }) { useEffect(() => { const handler = (e) => { if (e.key === "Escape") onClose(); }; window.addEventListener("keydown", handler); return () => window.removeEventListener("keydown", handler); }, [onClose]); const statusStyle = getStatusStyle(log.status); const typeColor = TYPE_COLORS[log.proxy?.type] || { bg: "#6B7280", text: "#fff", label: log.proxy?.type || "-", }; const levelColor = LEVEL_COLORS[log.level] || LEVEL_COLORS.direct; const providerColor = PROVIDER_COLORS[log.provider] || { bg: "#374151", text: "#fff", label: (log.provider || "-").toUpperCase(), }; const formatDate = (iso) => { try { const d = new Date(iso); return ( d.toLocaleDateString("pt-BR") + ", " + d.toLocaleTimeString("en-US", { hour12: false }) ); } catch { return iso; } }; return (
{JSON.stringify(log.proxy, null, 2)}