// app/admin/logs/page.tsx "use client"; import { useEffect, useState } from "react"; import { format } from "date-fns"; import styles from "./logs.module.css"; interface LogEntry { timestamp: string; level: string; message: string; metadata?: any; } export default function LogsPage() { const [logs, setLogs] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const [filter, setFilter] = useState<"all" | "error" | "info" | "warn">( "all" ); useEffect(() => { fetchLogs(); }, []); async function fetchLogs() { try { const response = await fetch("/api/logs/view"); if (!response.ok) throw new Error("Failed to fetch logs"); const data = await response.json(); setLogs(data.logs); } catch (err) { setError(err instanceof Error ? err.message : "Error fetching logs"); } finally { setLoading(false); } } const filteredLogs = logs.filter((log) => filter === "all" ? true : log.level === filter ); if (loading) return
Loading logs...
; if (error) return
Error: {error}
; return (

System Logs

{filteredLogs.map((log, index) => (
{format(new Date(log.timestamp), "yyyy-MM-dd HH:mm:ss")} {log.level.toUpperCase()}
{log.message}
{log.metadata && (
                {JSON.stringify(log.metadata, null, 2)}
              
)}
))}
); }