Step 7: Add Filtering
Global Filter
Use the GlobalFilter component for a search-across-all-columns input:
import { useTable, Table, GlobalFilter } from '@zvndev/yable-react'
export function EmployeeTable() {
const table = useTable({ data: employees, columns })
return (
<div>
<GlobalFilter table={table} placeholder="Search employees..." debounce={300} />
<Table table={table} />
</div>
)
}
Per-Column Filters
Set column filter values programmatically:
// Filter the department column to show only "Engineering"
table.setColumnFilters([{ id: 'department', value: 'Engineering' }])
// Clear all column filters
table.resetColumnFilters(true)
You can also use built-in filter functions on column definitions:
columnHelper.accessor('salary', {
header: 'Salary',
filterFn: 'inNumberRange', // Built-in: filters by [min, max] tuple
})
Available built-in filter functions: includesString, includesStringSensitive, equalsString, equalsStringSensitive, arrIncludes, arrIncludesAll, arrIncludesSome, equals, weakEquals, inNumberRange, inDateRange.