Scaffold Gishen Admin: React/Vite shadcn console with role modules, EN/AM i18n, mocks, and backend spec. Co-authored-by: Cursor <cursoragent@cursor.com>
38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
import { useTranslation } from 'react-i18next'
|
|
import { PageShell } from '@/layouts/PageShell'
|
|
import { Card, CardContent } from '@/components/ui/card'
|
|
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'
|
|
import { auditLog } from '@/mocks/data'
|
|
|
|
export function AuditPage() {
|
|
const { t } = useTranslation()
|
|
return (
|
|
<PageShell title={t('audit.title')} subtitle={t('audit.subtitle')}>
|
|
<Card>
|
|
<CardContent className="p-4">
|
|
<Table>
|
|
<TableHeader>
|
|
<TableRow>
|
|
<TableHead>When</TableHead>
|
|
<TableHead>Actor</TableHead>
|
|
<TableHead>Action</TableHead>
|
|
<TableHead>Target</TableHead>
|
|
</TableRow>
|
|
</TableHeader>
|
|
<TableBody>
|
|
{auditLog.map((a) => (
|
|
<TableRow key={a.id}>
|
|
<TableCell className="whitespace-nowrap text-xs">{new Date(a.at).toLocaleString()}</TableCell>
|
|
<TableCell>{a.actor}</TableCell>
|
|
<TableCell className="font-mono text-xs">{a.action}</TableCell>
|
|
<TableCell>{a.target}</TableCell>
|
|
</TableRow>
|
|
))}
|
|
</TableBody>
|
|
</Table>
|
|
</CardContent>
|
|
</Card>
|
|
</PageShell>
|
|
)
|
|
}
|