Skip to content

Commit dbd6df8

Browse files
feat: add defaultValue support in datatable filters (#704)
1 parent c72d7c3 commit dbd6df8

3 files changed

Lines changed: 11 additions & 4 deletions

File tree

apps/www/src/components/datatable-demo.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,15 @@ export const columns: DataTableColumnDef<Payment, unknown>[] = [
7272
value: 'failed'
7373
}
7474
],
75-
filterType: 'multiselect',
75+
filterType: 'select',
7676
enableColumnFilter: true,
7777
enableHiding: true,
78-
78+
defaultFilterValue: '',
79+
filterProps: {
80+
select: {
81+
autocomplete: true
82+
}
83+
}
7984
},
8085
{
8186
accessorKey: 'email',

packages/raystack/components/data-table/data-table.types.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ export type DataTableColumnDef<TData, TValue> = ColumnDef<TData, TValue> & {
8181
enableHiding?: boolean;
8282
defaultHidden?: boolean;
8383
filterOptions?: FilterSelectOption[];
84+
defaultFilterValue?: unknown;
8485
filterProps?: {
8586
select?: BaseSelectProps;
8687
};

packages/raystack/components/data-table/hooks/useFilters.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@ export function useFilters<TData, TValue>() {
1818
const dataType = getDataType({ filterType, dataType: columnDef.dataType });
1919
const defaultFilter = filterOperators[filterType][0];
2020
const defaultValue =
21-
filterType === FilterType.date
21+
columnDef.defaultFilterValue ??
22+
(filterType === FilterType.date
2223
? new Date()
2324
: filterType === FilterType.select
2425
? options[0].value
25-
: '';
26+
: '');
2627

2728
updateTableQuery(query => {
2829
return {

0 commit comments

Comments
 (0)