feat: add admin operations suite
Local Build and Deploy / deploy (push) Successful in 50s

This commit is contained in:
Simo committed 2026-07-12 20:11:28 +02:00
1 parent 21a61068fb
commit 60278b9e71
38 files changed
+3452

No files matched your search

+45
View File
@@ -0,0 +1,45 @@
'use client'
import { DataTable } from '@/components/admin/data-table'
import { formatTimestamp } from '@/lib/admin-helpers'
import type { DataTableColumn, PaginatedResult } from '@/types'
interface ChatLogRow {
id: number
username: string
message: string
timestamp: number
roomId: number
}
const columns: DataTableColumn<ChatLogRow>[] = [
{ key: 'id', label: 'ID', sortable: true },
{ key: 'username', label: 'User' },
{
key: 'message',
label: 'Message',
render: (value) => <span className="max-w-[300px] truncate block">{String(value)}</span>,
},
{
key: 'timestamp',
label: 'Time',
sortable: true,
render: (value) => <span>{formatTimestamp(Number(value))}</span>,
},
{ key: 'roomId', label: 'Room ID', sortable: true },
]
interface ChatTableProps {
data: PaginatedResult<ChatLogRow>
}
export function ChatTable({ data }: ChatTableProps) {
return (
<DataTable
data={data}
columns={columns}
searchPlaceholder="Search by username or message..."
exportUrl="/api/admin/export?type=chatlogs"
/>
)
}