import { useState } from 'react'; import { useNavigate } from '@tanstack/react-router'; import { useReports } from '../api/hooks'; import { DataTable, type Column } from '../components/DataTable'; import { StatusBadge, LoadingSpinner } from '../components/ui'; import type { ReportListItem } from '../api/hooks'; export function ReportsPage() { const navigate = useNavigate(); const [reportType, setReportType] = useState(''); const { data, isLoading } = useReports({ report_type: reportType || undefined, limit: 50, }); const columns: Column[] = [ { key: 'report_type', header: 'Type', render: (r) => ( {r.report_type} ), }, { key: 'period_start', header: 'Period', render: (r) => r.period_start === r.period_end ? r.period_start : `${r.period_start} → ${r.period_end}`, }, { key: 'validation_status', header: 'Validation', render: (r) => , }, { key: 'generated_at', header: 'Generated', render: (r) => ( {new Date(r.generated_at).toLocaleString()} ), }, ]; if (isLoading) return ; return (

Trading Reports

data={data ?? []} columns={columns} keyField="id" onRowClick={(row) => navigate({ to: '/reports/$id', params: { id: row.id } }) } />
); }