fix: Fixed multiple filter issue and minimum width issue

This commit is contained in:
Kavin Venkatachalam 2025-03-10 15:22:04 +05:30
parent 929a12b98f
commit e086ace613
3 changed files with 18 additions and 8 deletions

View file

@ -100,3 +100,11 @@ const shouldFireEvent = (diff, filter) => {
return false;
}
};
export const applyFilters = (row, columnId, columnFilters) =>
columnFilters.every((filter) => {
const { value, condition } = filter.value;
const filterFn = filterFunctions[condition];
const result = filterFn(row, columnId, { value });
return result;
});

View file

@ -6,7 +6,7 @@ import {
getPaginationRowModel,
getFilteredRowModel,
} from '@tanstack/react-table';
import { filterFunctions } from '../_components/Header/_components/Filter/filterUtils';
import { applyFilters } from '../_components/Header/_components/Filter/filterUtils';
export function useTable({
data,
@ -55,7 +55,13 @@ export function useTable({
onColumnOrderChange: setColumnOrder,
onGlobalFilterChange: setGlobalFilter,
onColumnFiltersChange: setColumnFilters,
filterFns: filterFunctions,
filterFns: {
applyFilters: (row, columnId) => {
const filters = columnFilters.filter((f) => f.id === columnId);
if (filters.length === 0) return true;
return applyFilters(row, columnId, filters);
},
},
globalFilterFn: (row, columnId, filterValue) => {
const value = String(row.getValue(columnId) || '').toLowerCase();
return value.includes(String(filterValue).toLowerCase());

View file

@ -3,7 +3,6 @@ import _ from 'lodash';
import moment from 'moment';
import { v4 as uuidv4 } from 'uuid';
import useStore from '@/AppBuilder/_stores/store';
import { filterFunctions } from '../_components/Header/_components/Filter/filterUtils';
import {
StringColumn,
NumberColumn,
@ -89,12 +88,9 @@ export default function generateColumnsData({
enableResizing: true,
enableHiding: true,
enableColumnFilter: true,
filterFn: (row, columnId, filterValue) => {
const { condition, value } = filterValue;
return filterFunctions[condition](row, columnId, { value });
},
filterFn: 'applyFilters',
size: columnSize || defaultColumn.width,
minSize: 30,
minSize: 60,
show: column?.columnVisibility ?? true,
meta: {
columnType,