Feature: Clear table filters

This commit is contained in:
navaneeth 2021-04-25 13:33:07 +05:30
parent 29f826bbc4
commit 2811d37c8e

View file

@ -56,16 +56,13 @@ export function Table({ id, width, height, component, onComponentClick, currentS
const newFilters = filters; const newFilters = filters;
newFilters[index][option] = value; newFilters[index][option] = value;
setFilters(newFilters); setFilters(newFilters);
setAllFilters(newFilters.filter((filter) => filter.id != ''));
for(const filter of newFilters) {
setFilter(filter.field, filter.value);
}
} }
function addFilter(){ function addFilter(){
setFilters([ setFilters([
...filters, ...filters,
{ field: '', value: '' } { id: '', value: '' }
]); ]);
} }
@ -73,6 +70,12 @@ export function Table({ id, width, height, component, onComponentClick, currentS
let newFilters = filters; let newFilters = filters;
newFilters.splice(index, 1); newFilters.splice(index, 1);
setFilters(newFilters); setFilters(newFilters);
setAllFilters(newFilters);
}
function clearFilters() {
setFilters([]);
setAllFilters([]);
} }
const defaultColumn = React.useMemo( const defaultColumn = React.useMemo(
@ -251,6 +254,7 @@ export function Table({ id, width, height, component, onComponentClick, currentS
state, state,
prepareRow, prepareRow,
setFilter, setFilter,
setAllFilters,
preGlobalFilteredRows, preGlobalFilteredRows,
setGlobalFilter, setGlobalFilter,
state: { pageIndex, pageSize }, state: { pageIndex, pageSize },
@ -504,9 +508,9 @@ export function Table({ id, width, height, component, onComponentClick, currentS
<div className="col"> <div className="col">
<SelectSearch <SelectSearch
options={columnData.map((column) => { return { name: column.Header, value: column.accessor } } )} options={columnData.map((column) => { return { name: column.Header, value: column.accessor } } )}
value={filter.field} value={filter.id}
search={true} search={true}
onChange={(value) => { filterOptionChanged(index, 'field', value) }} onChange={(value) => { filterOptionChanged(index, 'id', value) }}
filterOptions={fuzzySearch} filterOptions={fuzzySearch}
placeholder="Select.." placeholder="Select.."
/> />
@ -538,7 +542,7 @@ export function Table({ id, width, height, component, onComponentClick, currentS
<button onClick={addFilter} className="btn btn-light btn-sm text-muted"> <button onClick={addFilter} className="btn btn-light btn-sm text-muted">
+ add filter + add filter
</button> </button>
<button className="btn btn-light btn-sm mx-2 text-muted"> <button onClick={() => clearFilters()} className="btn btn-light btn-sm mx-2 text-muted">
clear filters clear filters
</button> </button>
</div> </div>