diff --git a/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexBoardColumnLoaderEffect.tsx b/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexBoardColumnLoaderEffect.tsx index bde4108f5..88a70a61c 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexBoardColumnLoaderEffect.tsx +++ b/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexBoardColumnLoaderEffect.tsx @@ -1,6 +1,7 @@ import { useEffect } from 'react'; import { useRecoilState, useSetRecoilState } from 'recoil'; +import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; import { isRecordBoardFetchingRecordsByColumnFamilyState } from '@/object-record/record-board/states/isRecordBoardFetchingRecordsByColumnFamilyState'; import { recordBoardShouldFetchMoreInColumnComponentFamilyState } from '@/object-record/record-board/states/recordBoardShouldFetchMoreInColumnComponentFamilyState'; import { useLoadRecordIndexBoardColumn } from '@/object-record/record-index/hooks/useLoadRecordIndexBoardColumn'; @@ -9,13 +10,13 @@ import { useRecoilComponentFamilyStateV2 } from '@/ui/utilities/state/component- export const RecordIndexBoardColumnLoaderEffect = ({ objectNameSingular, - boardFieldMetadataId, recordBoardId, + kanbanFieldMetadataItem, columnId, }: { recordBoardId: string; objectNameSingular: string; - boardFieldMetadataId: string | null; + kanbanFieldMetadataItem: FieldMetadataItem; columnId: string; }) => { const [shouldFetchMore, setShouldFetchMore] = useRecoilComponentFamilyStateV2( @@ -31,7 +32,7 @@ export const RecordIndexBoardColumnLoaderEffect = ({ useLoadRecordIndexBoardColumn({ objectNameSingular, recordBoardId, - boardFieldMetadataId, + kanbanFieldMetadataItem, columnId, }); diff --git a/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexBoardDataLoader.tsx b/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexBoardDataLoader.tsx index 9c189ee05..099ab70bc 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexBoardDataLoader.tsx +++ b/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexBoardDataLoader.tsx @@ -5,6 +5,7 @@ import { recordGroupIdsComponentState } from '@/object-record/record-group/state import { RecordIndexBoardColumnLoaderEffect } from '@/object-record/record-index/components/RecordIndexBoardColumnLoaderEffect'; import { recordIndexKanbanFieldMetadataIdState } from '@/object-record/record-index/states/recordIndexKanbanFieldMetadataIdState'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; +import { isDefined } from 'twenty-shared/utils'; type RecordIndexBoardDataLoaderProps = { objectNameSingular: string; @@ -31,21 +32,25 @@ export const RecordIndexBoardDataLoader = ({ (field) => field.id === recordIndexKanbanFieldMetadataId, ); + if (!isDefined(recordIndexKanbanFieldMetadataItem)) { + return null; + } + return ( <> - {recordGroupIds.map((recordGroupId, index) => ( + {recordGroupIds.map((recordGroupId) => ( ))} - {recordIndexKanbanFieldMetadataItem?.isNullable && ( + {recordIndexKanbanFieldMetadataItem.isNullable === true && ( 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 a601f3979..e3b1ee7a8 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 @@ -12,22 +12,22 @@ import { computeRecordGqlOperationFilter } from '@/object-record/record-filter/u import { recordGroupDefinitionFamilyState } from '@/object-record/record-group/states/recordGroupDefinitionFamilyState'; import { useRecordBoardRecordGqlFields } from '@/object-record/record-index/hooks/useRecordBoardRecordGqlFields'; +import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; import { currentRecordSortsComponentState } from '@/object-record/record-sort/states/currentRecordSortsComponentState'; import { useUpsertRecordsInStore } from '@/object-record/record-store/hooks/useUpsertRecordsInStore'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; -import { isNonEmptyString } from '@sniptt/guards'; import { isDefined } from 'twenty-shared/utils'; type UseLoadRecordIndexBoardProps = { objectNameSingular: string; - boardFieldMetadataId: string | null; + kanbanFieldMetadataItem: FieldMetadataItem; recordBoardId: string; columnId: string; }; export const useLoadRecordIndexBoardColumn = ({ objectNameSingular, - boardFieldMetadataId, + kanbanFieldMetadataItem, recordBoardId, columnId, }: UseLoadRecordIndexBoardProps) => { @@ -69,29 +69,11 @@ export const useLoadRecordIndexBoardColumn = ({ recordBoardId, }); - let recordIndexKanbanFieldMetadataFilter: { [x: string]: any } = {}; - - if (isDefined(boardFieldMetadataId)) { - const recordIndexKanbanFieldMetadataItem = objectMetadataItem.fields.find( - (field) => field.id === boardFieldMetadataId, - ); - - if (!isDefined(recordIndexKanbanFieldMetadataItem)) { - throw new Error('Record index kanban field metadata item not found'); - } - - if (!isNonEmptyString(recordIndexKanbanFieldMetadataItem?.name ?? '')) { - throw new Error('Record index kanban field metadata item name not found'); - } - - recordIndexKanbanFieldMetadataFilter = { - [recordIndexKanbanFieldMetadataItem.name]: isDefined( - recordGroupDefinition?.value, - ) - ? { in: [recordGroupDefinition.value] } - : { is: 'NULL' }, - }; - } + const recordIndexKanbanFieldMetadataFilter = { + [kanbanFieldMetadataItem.name]: isDefined(recordGroupDefinition?.value) + ? { in: [recordGroupDefinition.value] } + : { is: 'NULL' }, + }; const filter = { ...requestFilters,