"use client"; import React, { useEffect, useState } from 'react'; import { useRouter } from 'next/navigation'; import { cmsApi, AuditLog } from '@/lib/api'; import { useAuth } from '@/context/AuthContext'; import { ArrowLeft, Clock, ShieldAlert, X } from 'lucide-react'; export default function AuditLogsPage() { const router = useRouter(); const { user, loading: authLoading } = useAuth(); const [logs, setLogs] = useState([]); const [loading, setLoading] = useState(true); const [selectedLog, setSelectedLog] = useState(null); useEffect(() => { if (!authLoading) { if (!user || user.role !== 'admin') { router.push('/'); return; } loadLogs(); } }, [user, authLoading, router]); const loadLogs = async () => { try { const data = await cmsApi.getAuditLogs(); setLogs(data); } catch (err) { console.error("Failed to load audit logs", err); } finally { setLoading(false); } }; if (authLoading || loading) { return (
); } return (
{/* Header */}

System Audit Logs

{logs.map((log) => ( ))}
User Action Entity Date Details
{log.user_full_name || 'System / Unknown'}
{log.user_id.slice(0, 8)}...
{log.action}
{log.entity_type}
{log.entity_id}
{new Date(log.created_at).toLocaleString()}
{/* Changes Detail Modal */} {selectedLog && (

Change Details

                                {JSON.stringify(selectedLog.changes, null, 2)}
                            
)}
); }