fix: use server-side sorting for paginated tables
Upgrade @cameleer/design-system to v0.1.1 which adds onSortChange callback to DataTable. Wire it up in Dashboard (exchanges), AuditLog, and RouteDetail (recent executions) so sorting triggers a new API request with sortField/sortDir instead of only sorting the current page. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { useState, useMemo } from 'react';
|
||||
import { useState, useMemo, useCallback } from 'react';
|
||||
import {
|
||||
Badge, DateRangePicker, Input, Select, MonoText, CodeBlock, DataTable,
|
||||
} from '@cameleer/design-system';
|
||||
@@ -60,6 +60,14 @@ export default function AuditLogPage() {
|
||||
const [categoryFilter, setCategoryFilter] = useState('');
|
||||
const [searchFilter, setSearchFilter] = useState('');
|
||||
const [page, setPage] = useState(0);
|
||||
const [sortField, setSortField] = useState<string>('timestamp');
|
||||
const [sortDir, setSortDir] = useState<'asc' | 'desc'>('desc');
|
||||
|
||||
const handleSortChange = useCallback((key: string, dir: 'asc' | 'desc') => {
|
||||
setSortField(key);
|
||||
setSortDir(dir);
|
||||
setPage(0);
|
||||
}, []);
|
||||
|
||||
const { data } = useAuditLog({
|
||||
username: userFilter || undefined,
|
||||
@@ -67,6 +75,8 @@ export default function AuditLogPage() {
|
||||
search: searchFilter || undefined,
|
||||
from: dateRange.start.toISOString(),
|
||||
to: dateRange.end.toISOString(),
|
||||
sort: sortField,
|
||||
order: sortDir,
|
||||
page,
|
||||
size: 25,
|
||||
});
|
||||
@@ -122,6 +132,7 @@ export default function AuditLogPage() {
|
||||
sortable
|
||||
flush
|
||||
pageSize={25}
|
||||
onSortChange={handleSortChange}
|
||||
rowAccent={(row) => row.result === 'FAILURE' ? 'error' : undefined}
|
||||
expandedContent={(row) => (
|
||||
<div className={styles.expandedDetail}>
|
||||
|
||||
Reference in New Issue
Block a user