From dc0401edb5fcdd4db161572a81b52484d7bfaa7e Mon Sep 17 00:00:00 2001 From: Lucas Bordeau Date: Thu, 29 May 2025 14:40:02 +0200 Subject: [PATCH] Fixed kanban filter on kanban field metadata item (#12367) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR fixes an edge case where we couldn't apply a filter on the field metadata item that is used by a kanban. As this has already been fixed for tables with groups, this PR just uses the same technique. Fixes https://github.com/twentyhq/twenty/issues/12311 Co-authored-by: Félix Malfait --- .../hooks/useLoadRecordIndexBoardColumn.ts | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/twenty-front/src/modules/object-record/record-index/hooks/useLoadRecordIndexBoardColumn.ts b/packages/twenty-front/src/modules/object-record/record-index/hooks/useLoadRecordIndexBoardColumn.ts index 659e19ba5..61a400240 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/hooks/useLoadRecordIndexBoardColumn.ts +++ b/packages/twenty-front/src/modules/object-record/record-index/hooks/useLoadRecordIndexBoardColumn.ts @@ -15,6 +15,7 @@ import { useRecordBoardRecordGqlFields } from '@/object-record/record-index/hook import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; import { currentRecordSortsComponentState } from '@/object-record/record-sort/states/currentRecordSortsComponentState'; +import { combineFilters } from '@/object-record/record-filter/utils/combineFilters'; import { useUpsertRecordsInStore } from '@/object-record/record-store/hooks/useUpsertRecordsInStore'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { isDefined } from 'twenty-shared/utils'; @@ -70,16 +71,18 @@ export const useLoadRecordIndexBoardColumn = ({ recordBoardId, }); - const recordIndexKanbanFieldMetadataFilter = { - [kanbanFieldMetadataItem.name]: isDefined(recordGroupDefinition?.value) - ? { in: [recordGroupDefinition.value] } - : { is: 'NULL' }, - }; + const recordIndexKanbanFieldMetadataFilterValue = isDefined( + recordGroupDefinition?.value, + ) + ? { in: [recordGroupDefinition?.value] } + : { is: 'NULL' }; - const filter = { - ...requestFilters, - ...recordIndexKanbanFieldMetadataFilter, - }; + const combinedFilters = combineFilters([ + requestFilters, + { + [kanbanFieldMetadataItem.name]: recordIndexKanbanFieldMetadataFilterValue, + }, + ]); const { records, @@ -89,7 +92,7 @@ export const useLoadRecordIndexBoardColumn = ({ hasNextPage, } = useFindManyRecords({ objectNameSingular, - filter, + filter: combinedFilters, orderBy, recordGqlFields, limit: 10,