import { useState, useMemo } from 'react'; import { DataTable, Badge, Input, Select, MonoText, CodeBlock } from '@cameleer/design-system'; import type { Column } from '@cameleer/design-system'; import { useAuditLog } from '../../api/queries/admin/audit'; export default function AuditLogPage() { const [search, setSearch] = useState(''); const [category, setCategory] = useState(''); const [page, setPage] = useState(0); const { data, isLoading } = useAuditLog({ search, category: category || undefined, page, size: 25 }); const columns: Column[] = [ { key: 'timestamp', header: 'Time', sortable: true, render: (v) => new Date(v as string).toLocaleString() }, { key: 'username', header: 'User', render: (v) => {String(v)} }, { key: 'action', header: 'Action' }, { key: 'category', header: 'Category', render: (v) => }, { key: 'target', header: 'Target', render: (v) => v ? {String(v)} : null }, { key: 'result', header: 'Result', render: (v) => }, ]; const rows = useMemo(() => (data?.items || []).map((item: any) => ({ ...item, id: String(item.id) })), [data], ); return (

Audit Log

setSearch(e.target.value)} />