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,