From db613357a7fa34e8c8ccebbfba8bc6251cb92cb3 Mon Sep 17 00:00:00 2001 From: andrzej Date: Mon, 30 Sep 2024 16:06:41 +0200 Subject: [PATCH] fix: filtering --- src/app/lib/filterFns.ts | 14 ++++++++++++++ src/app/publication/columns.tsx | 6 ++++-- src/app/story/columns.tsx | 3 ++- 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 src/app/lib/filterFns.ts diff --git a/src/app/lib/filterFns.ts b/src/app/lib/filterFns.ts new file mode 100644 index 0000000..c9c5e2a --- /dev/null +++ b/src/app/lib/filterFns.ts @@ -0,0 +1,14 @@ +import { Genre } from "@prisma/client"; +import { FilterFn, Row } from "@tanstack/react-table"; + +export const genrePickerFilterFn = (row: Row, columnId: string, filterValue: any) => { + + const genres: Genre[] = row.getValue(columnId) + + for (let index = 0; index < genres.length; index++) { + if (genres[genres.length - 1].name.includes(filterValue)) { + return true + } + } + return false +} diff --git a/src/app/publication/columns.tsx b/src/app/publication/columns.tsx index e8f1730..e4d1b44 100644 --- a/src/app/publication/columns.tsx +++ b/src/app/publication/columns.tsx @@ -8,6 +8,7 @@ import { selectCol } from "app/ui/tables/selectColumn" import NumberInputCell from "app/ui/tables/inputs/numberInput" import { pubSchema } from "app/ui/forms/schemas" import GenrePickerInputCell from "app/ui/tables/inputs/genrePickerInput" +import { genrePickerFilterFn } from "app/lib/filterFns" const columnHelper = createColumnHelper() @@ -66,10 +67,10 @@ export const columns: ColumnDef[] = [ ), cell: GenrePickerInputCell, - filterFn: "arrIncludes" - //TODO - write custom filter function, to account for an array of objects + filterFn: genrePickerFilterFn }), + { accessorKey: "query_after_days", header: () => ( @@ -78,6 +79,7 @@ export const columns: ColumnDef[] = [ ), + enableColumnFilter: false, cell: cell => ( <> {/* @ts-ignore */} diff --git a/src/app/story/columns.tsx b/src/app/story/columns.tsx index a9e2bda..dda207a 100644 --- a/src/app/story/columns.tsx +++ b/src/app/story/columns.tsx @@ -8,6 +8,7 @@ import NumberInputCell from "app/ui/tables/inputs/numberInput" import { storySchema } from "app/ui/forms/schemas" import { TextInputCell } from "app/ui/tables/inputs/textInput" import GenrePickerInputCell from "app/ui/tables/inputs/genrePickerInput" +import { genrePickerFilterFn } from "app/lib/filterFns" const columnHelper = createColumnHelper() export const columns: ColumnDef[] = [ @@ -78,7 +79,7 @@ export const columns: ColumnDef[] = [ ), cell: GenrePickerInputCell, - filterFn: "arrIncludes", + filterFn: genrePickerFilterFn, meta: {} }),