// LogList.tsx import React, { useState } from "react"; import { LogListIcon, TickIcon, LogInfoIcon, WarningIcon, ErrorIcon, CloseIcon, } from "../../icons/ExportCommonIcons"; // Adjust path as needed import { useLogger } from "./LoggerContext"; const LogList: React.FC = () => { const { logs, clear, setIsLogListVisible } = useLogger(); const [selectedTab, setSelectedTab] = useState< "all" | "info" | "warning" | "error" | "log" >("all"); const getLogIcon = (type: string) => { switch (type) { case "info": return ; case "error": return ; case "warning": return ; case "log": default: return ; } }; const formatTimestamp = (date: Date) => new Date(date).toLocaleTimeString(); const filteredLogs = selectedTab === "all" ? [...logs].reverse() : [...logs].filter((log) => log.type === selectedTab).reverse(); return (
Log List
setIsLogListVisible(false)}> {/* */}X
{/* Tabs */}
{["all", "info", "warning", "error"].map((type) => (
setSelectedTab(type as any)} > {`${type.charAt(0).toUpperCase() + type.slice(1)} Logs`}
))}
{/* Log Entries */}
{filteredLogs.map((log) => (
{getLogIcon(log.type)}
[{formatTimestamp(log.timestamp)}] [{log.type.toUpperCase()}]{" "} {log.message}
))}
); }; export default LogList;