Custom Filters
1. The Basics
import { useMemo, useState } from 'react';
import { DataTable, createTableCraftAdapter } from '@tablecraft/table';
function BasicFiltersPage() {
const [status, setStatus] = useState<string | null>(null);
const [role, setRole] = useState<string | null>(null);
const adapter = useMemo(() => {
return createTableCraftAdapter({
baseUrl: '/api/engine',
table: 'users',
customFilters: {
// If status is null (falsy), TableCraft ignores it
status: status,
role: role,
},
});
}, [status, role]);
return (
<div>
<select value={status ?? ''} onChange={(e) => setStatus(e.target.value || null)}>
<option value="">All Statuses</option>
<option value="active">Active</option>
</select>
<DataTable adapter={adapter} />
</div>
);
}2. Advanced Operators
3. URL State Syncing
Complex Example: Multi-select & URL Sync
Why use useUrlState?
useUrlState?Last updated
Was this helpful?
