diff --git a/packages/table-core/src/filterFns.ts b/packages/table-core/src/filterFns.ts index d6aabdb6c4..112e351e2f 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) || !val?.length @@ -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