Quick Filter

Search across columns with one controlled input. Use simple contains matching or smart operators.

Bind a search input

Pass a controlled quickFilter.text. Default mode is simple contains matching across searchable columns.

React TSX
const [searchText, setSearchText] = useState("");
<input value={searchText} onChange={(e) => setSearchText(e.target.value)} />
<SimpleTable
columns={columns}
rows={rows}
quickFilter={{ text: searchText, mode: "simple" }}
/>

Smart mode

Set mode: "smart" for multi-word AND, quoted phrases, -negation, and column:value.

React TSX
const [searchText, setSearchText] = useState("");
<input value={searchText} onChange={(e) => setSearchText(e.target.value)} />
<SimpleTable
columns={columns}
rows={rows}
quickFilter={{ text: searchText, mode: "smart" }}
/>

Limit searchable columns

Use quickFilter.columns or set quickFilterable: false on a column.

TypeScript
// Limit via config
quickFilter={{ text: searchText, columns: ["name", "email"] }}
// Or exclude a column
{ accessor: "id", label: "ID", quickFilterable: false }

Custom searchable value

Use quickFilterGetter when the searchable string differs from the cell value.

TypeScript
{
accessor: "user",
label: "User",
quickFilterGetter: ({ row }) => row.user?.fullName ?? "",
}

Programmatic filter

Call setQuickFilter on the table API. See Programmatic Control.

React TSX
tableRef.current?.setQuickFilter("engineering");
tableRef.current?.setQuickFilter(""); // clear

Example

Try simple vs smart mode below. In smart mode, try engineering -inactive.

Props

Quick Filter Configuration

PropertyRequiredDescriptionExample
Optional
Global search across columns. Controlled via QuickFilterConfig (text is required).
ColumnDef.quickFilterable
boolean
Optional
When false, the column is skipped by quick filter. Defaults to true.
ColumnDef.quickFilterGetter
QuickFilterGetter
Optional
Custom string extracted from the row for quick filter matching.

QuickFilterConfig

QuickFilterConfig

PropertyRequiredDescriptionExample
text
string
Required
The search text to filter by. All columns will be searched for this text unless specific columns are configured.
mode
"simple" | "smart"
Optional
Search mode: 'simple' for basic contains matching, or 'smart' for advanced search with multi-word AND logic, phrase search (quotes), negation (minus), and column-specific search. Defaults to 'simple'.
caseSensitive
boolean
Optional
Whether the search should be case-sensitive. Defaults to false.
columns
Accessor[]
Optional
Array of column accessors to search. If not provided, all columns are searched (unless a column has quickFilterable: false).
useFormattedValue
boolean
Optional
Whether to search the formatted value (from valueFormatter) instead of the raw value. Defaults to true.
onChange
(text: string) => void
Optional
Callback function triggered when the quick filter text changes. Useful for tracking search analytics or syncing with external state.

QuickFilterGetterProps

QuickFilterGetterProps

PropertyRequiredDescriptionExample
row
Row
Required
The row data object.
accessor
Accessor
Required
The column accessor.