diff --git a/packages/twenty-front/src/modules/object-record/record-index/hooks/useLoadRecordIndexTable.ts b/packages/twenty-front/src/modules/object-record/record-index/hooks/useLoadRecordIndexTable.ts index 9eb0baaa3..50320fd13 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/hooks/useLoadRecordIndexTable.ts +++ b/packages/twenty-front/src/modules/object-record/record-index/hooks/useLoadRecordIndexTable.ts @@ -35,6 +35,10 @@ export const useFindManyParams = ( }; export const useLoadRecordIndexTable = (objectNameSingular: string) => { + const { objectMetadataItem } = useObjectMetadataItem({ + objectNameSingular, + }); + const { setRecordTableData, setIsRecordTableInitialLoading } = useRecordTable(); const { tableLastRowVisibleState } = useRecordTableStates(); @@ -42,7 +46,7 @@ export const useLoadRecordIndexTable = (objectNameSingular: string) => { const currentWorkspace = useRecoilValue(currentWorkspaceState); const params = useFindManyParams(objectNameSingular); - const recordGqlFields = useRecordTableRecordGqlFields(); + const recordGqlFields = useRecordTableRecordGqlFields({ objectMetadataItem }); const { records, diff --git a/packages/twenty-front/src/modules/object-record/record-index/hooks/useRecordTableRecordGqlFields.ts b/packages/twenty-front/src/modules/object-record/record-index/hooks/useRecordTableRecordGqlFields.ts index 99d4a834a..fc8929564 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/hooks/useRecordTableRecordGqlFields.ts +++ b/packages/twenty-front/src/modules/object-record/record-index/hooks/useRecordTableRecordGqlFields.ts @@ -1,17 +1,38 @@ import { useRecoilValue } from 'recoil'; +import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; +import { getObjectMetadataIdentifierFields } from '@/object-metadata/utils/getObjectMetadataIdentifierFields'; import { useRecordTableStates } from '@/object-record/record-table/hooks/internal/useRecordTableStates'; +import { isDefined } from '~/utils/isDefined'; -export const useRecordTableRecordGqlFields = () => { +export const useRecordTableRecordGqlFields = ({ + objectMetadataItem, +}: { + objectMetadataItem: ObjectMetadataItem; +}) => { const { visibleTableColumnsSelector } = useRecordTableStates(); + const { imageIdentifierFieldMetadataItem, labelIdentifierFieldMetadataItem } = + getObjectMetadataIdentifierFields({ objectMetadataItem }); + const visibleTableColumns = useRecoilValue(visibleTableColumnsSelector()); + const identifierQueryFields: Record = {}; + + if (isDefined(labelIdentifierFieldMetadataItem)) { + identifierQueryFields[labelIdentifierFieldMetadataItem.name] = true; + } + + if (isDefined(imageIdentifierFieldMetadataItem)) { + identifierQueryFields[imageIdentifierFieldMetadataItem.name] = true; + } + const recordGqlFields: Record = { id: true, ...Object.fromEntries( visibleTableColumns.map((column) => [column.metadata.fieldName, true]), ), + ...identifierQueryFields, position: true, };