Files
EpicNext-Cms/src/app/admin/logs/trades/trades-table.tsx
T
Simo 60278b9e71
Local Build and Deploy / deploy (push) Successful in 50s
feat: add admin operations suite
2026-07-12 20:11:28 +02:00

46 lines
1.2 KiB
TypeScript

'use client'
import { DataTable } from '@/components/admin/data-table'
import { Badge } from '@/components/ui/badge'
import { formatTimestamp } from '@/lib/admin-helpers'
import type { DataTableColumn, PaginatedResult } from '@/types'
interface TradeLogRow {
id: number
userOneName: string
userTwoName: string
status: string
timestamp: number
}
const columns: DataTableColumn<TradeLogRow>[] = [
{ key: 'id', label: 'ID', sortable: true },
{ key: 'userOneName', label: 'User One' },
{ key: 'userTwoName', label: 'User Two' },
{
key: 'status',
label: 'Status',
sortable: true,
render: (value) => {
const v = String(value)
const variant =
v === 'completed' ? 'default' : v === 'cancelled' ? 'destructive' : 'secondary'
return <Badge variant={variant}>{v || 'unknown'}</Badge>
},
},
{
key: 'timestamp',
label: 'Time',
sortable: true,
render: (value) => <span>{formatTimestamp(Number(value))}</span>,
},
]
interface TradesTableProps {
data: PaginatedResult<TradeLogRow>
}
export function TradesTable({ data }: TradesTableProps) {
return <DataTable data={data} columns={columns} searchPlaceholder="Search by username..." />
}