diff --git a/packages/table-core/src/filterFns.ts b/packages/table-core/src/filterFns.ts index aa20e691a8..ab9a9a85c2 100644 --- a/packages/table-core/src/filterFns.ts +++ b/packages/table-core/src/filterFns.ts @@ -47,7 +47,10 @@ const arrIncludes: FilterFn = ( columnId: string, filterValue: unknown, ) => { - return row.getValue(columnId)?.includes(filterValue) + if (Array.isArray(row.getValue(columnId))) { + return row.getValue(columnId)?.includes(filterValue) + } + return filterValue === row.getValue(columnId) } arrIncludes.autoRemove = (val: any) => testFalsey(val) @@ -57,9 +60,12 @@ const arrIncludesAll: FilterFn = ( columnId: string, filterValue: unknown[], ) => { - return !filterValue.some( - (val) => !row.getValue(columnId)?.includes(val), - ) + if (Array.isArray(row.getValue(columnId))) { + return !filterValue.some( + val => !row.getValue(columnId)?.includes(val) + ) + } + return !filterValue.some(val => val !== row.getValue(columnId)) } arrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length @@ -69,9 +75,12 @@ const arrIncludesSome: FilterFn = ( columnId: string, filterValue: unknown[], ) => { - return filterValue.some((val) => - row.getValue(columnId)?.includes(val), - ) + if (Array.isArray(row.getValue(columnId))) { + return filterValue.some(val => + row.getValue(columnId)?.includes(val) + ) + } + return filterValue.some(val => val === row.getValue(columnId)) } arrIncludesSome.autoRemove = (val: any) => testFalsey(val) || !val?.length