import { Clock3, Globe2, User2, X } from "lucide-react"; import type { WorkspaceLogDetail } from "../../api/logs"; import { API_BASE_URL } from "../../config/constants"; import { useTranslation } from "../../hooks/useTranslation"; import { Button } from "../ui/button"; const resolveImageUrl = (value?: string | null) => { if (!value) return null; if (/^https?:\/\//i.test(value)) return value; return `${API_BASE_URL.replace(/\/+$/, "")}/${value.replace(/^\/+/, "")}`; }; export function LogDetailsPanel({ open, log, isLoading, onClose, }: { open: boolean; log: WorkspaceLogDetail | null; isLoading: boolean; onClose: () => void; }) { const { t, lang } = useTranslation(); if (!open) { return null; } const formatTimestamp = (value?: string | null) => { if (!value) return "-"; return new Intl.DateTimeFormat(lang === "fa" ? "fa-IR-u-ca-persian" : "en-US", { year: "numeric", month: "short", day: "numeric", hour: "2-digit", minute: "2-digit", }).format(new Date(value)); }; const actorName = log?.actor?.full_name || t.logs?.unknownActor || "Unknown actor"; const actorAvatar = resolveImageUrl(log?.actor?.profile_picture); return (