Fixed kanban filter on kanban field metadata item (#12367)

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 <felix.malfait@gmail.com>
This commit is contained in:
Lucas Bordeau
2025-05-29 14:40:02 +02:00
committed by GitHub
parent 4485e8e3db
commit dc0401edb5

View File

@ -15,6 +15,7 @@ import { useRecordBoardRecordGqlFields } from '@/object-record/record-index/hook
import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem';
import { currentRecordSortsComponentState } from '@/object-record/record-sort/states/currentRecordSortsComponentState'; 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 { useUpsertRecordsInStore } from '@/object-record/record-store/hooks/useUpsertRecordsInStore';
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
import { isDefined } from 'twenty-shared/utils'; import { isDefined } from 'twenty-shared/utils';
@ -70,16 +71,18 @@ export const useLoadRecordIndexBoardColumn = ({
recordBoardId, recordBoardId,
}); });
const recordIndexKanbanFieldMetadataFilter = { const recordIndexKanbanFieldMetadataFilterValue = isDefined(
[kanbanFieldMetadataItem.name]: isDefined(recordGroupDefinition?.value) recordGroupDefinition?.value,
? { in: [recordGroupDefinition.value] } )
: { is: 'NULL' }, ? { in: [recordGroupDefinition?.value] }
}; : { is: 'NULL' };
const filter = { const combinedFilters = combineFilters([
...requestFilters, requestFilters,
...recordIndexKanbanFieldMetadataFilter, {
}; [kanbanFieldMetadataItem.name]: recordIndexKanbanFieldMetadataFilterValue,
},
]);
const { const {
records, records,
@ -89,7 +92,7 @@ export const useLoadRecordIndexBoardColumn = ({
hasNextPage, hasNextPage,
} = useFindManyRecords({ } = useFindManyRecords({
objectNameSingular, objectNameSingular,
filter, filter: combinedFilters,
orderBy, orderBy,
recordGqlFields, recordGqlFields,
limit: 10, limit: 10,