From bfad5b0477571c489b92bbbe54220c308ee85a73 Mon Sep 17 00:00:00 2001 From: Lucas Bordeau Date: Tue, 2 Sep 2025 10:49:55 +0200 Subject: [PATCH] Cleaned FieldDefinition props and removed recoil calls (#14220) This PR removes some unused props from FieldDefinition type and put some recoil calls higher up in the hierarchy. This PR fixes a regression on Chip introduced by https://github.com/twentyhq/twenty/pull/11498, where we don't want "Untitled" to be displayed in compact mode. # FieldDefinition refactor Removed `isLabelIdentifierCompact` and `labelIdentifierLink` which can be derived directly in the chip component or computed in the record table context. Removed `disableTooltip` and `infoTooltipContent` because they were not used. Introduced `fieldMetadataItemId`, as optional for now, to have the ability to progressively refactor the different things that could be derived from this and `recordId`. # Performance improvements There's not a great deal to be gained for now on those modifications, which specifically concern the identifier column. --- .../components/CalendarEventDetails.tsx | 2 +- .../record-field/ui/contexts/FieldContext.ts | 5 +- .../display/components/ChipFieldDisplay.tsx | 12 ++++- .../meta-types/hooks/useChipFieldDisplay.ts | 14 +++-- .../record-field/ui/types/FieldDefinition.ts | 2 - .../components/RecordInlineCellContainer.tsx | 2 +- .../components/RecordTableContextProvider.tsx | 13 +++++ .../components/RecordTableWithWrappers.tsx | 14 +++++ .../perf/RecordTableCell.perf.stories.tsx | 2 + .../contexts/RecordTableContext.ts | 2 + .../RecordTableCellFieldContextGeneric.tsx | 4 +- ...rdTableCellFieldContextLabelIdentifier.tsx | 54 +++++-------------- .../useCloseRecordTableCellNoGroup.test.tsx | 1 + .../utils/__tests__/viewMapFunctions.test.ts | 7 --- .../utils/mapViewFieldsToColumnDefinitions.ts | 1 - .../decorators/RecordTableDecorator.tsx | 4 ++ .../testing/decorators/getFieldDecorator.tsx | 1 + .../twenty-ui/src/components/chip/Chip.tsx | 2 +- 18 files changed, 78 insertions(+), 64 deletions(-) diff --git a/packages/twenty-front/src/modules/activities/calendar/components/CalendarEventDetails.tsx b/packages/twenty-front/src/modules/activities/calendar/components/CalendarEventDetails.tsx index b7d9823413..29e4bda862 100644 --- a/packages/twenty-front/src/modules/activities/calendar/components/CalendarEventDetails.tsx +++ b/packages/twenty-front/src/modules/activities/calendar/components/CalendarEventDetails.tsx @@ -6,6 +6,7 @@ import { type CalendarEvent } from '@/activities/calendar/types/CalendarEvent'; import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { formatFieldMetadataItemAsFieldDefinition } from '@/object-metadata/utils/formatFieldMetadataItemAsFieldDefinition'; +import { useIsRecordReadOnly } from '@/object-record/read-only/hooks/useIsRecordReadOnly'; import { FieldContext } from '@/object-record/record-field/ui/contexts/FieldContext'; import { RecordFieldComponentInstanceContext } from '@/object-record/record-field/ui/states/contexts/RecordFieldComponentInstanceContext'; import { RecordInlineCell } from '@/object-record/record-inline-cell/components/RecordInlineCell'; @@ -15,7 +16,6 @@ import { Chip, ChipAccent, ChipSize, ChipVariant } from 'twenty-ui/components'; import { IconCalendarEvent } from 'twenty-ui/display'; import { mapArrayToObject } from '~/utils/array/mapArrayToObject'; import { beautifyPastDateRelativeToNow } from '~/utils/date-utils'; -import { useIsRecordReadOnly } from '@/object-record/read-only/hooks/useIsRecordReadOnly'; type CalendarEventDetailsProps = { calendarEvent: CalendarEvent; diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/contexts/FieldContext.ts b/packages/twenty-front/src/modules/object-record/record-field/ui/contexts/FieldContext.ts index c760cfb9c8..271d0a636d 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/contexts/FieldContext.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/contexts/FieldContext.ts @@ -21,12 +21,11 @@ export type RecordUpdateHook = () => [ ]; export type GenericFieldContextType = { + fieldMetadataItemId?: string; + recordId: string; fieldDefinition: FieldDefinition; useUpdateRecord?: RecordUpdateHook; - recordId: string; isLabelIdentifier: boolean; - isLabelIdentifierCompact?: boolean; - labelIdentifierLink?: string; clearable?: boolean; maxWidth?: number; isCentered?: boolean; diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/ChipFieldDisplay.tsx b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/ChipFieldDisplay.tsx index ad91a39bf8..6f3639143c 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/ChipFieldDisplay.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/display/components/ChipFieldDisplay.tsx @@ -1,20 +1,30 @@ import { RecordChip } from '@/object-record/components/RecordChip'; import { useChipFieldDisplay } from '@/object-record/record-field/ui/meta-types/hooks/useChipFieldDisplay'; +import { isRecordTableScrolledLeftComponentState } from '@/object-record/record-table/states/isRecordTableScrolledLeftComponentState'; +import { useRecoilComponentValue } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValue'; import { isDefined } from 'twenty-shared/utils'; import { ChipSize } from 'twenty-ui/components'; +import { useIsMobile } from 'twenty-ui/utilities'; export const ChipFieldDisplay = () => { const { recordValue, objectNameSingular, labelIdentifierLink, - isLabelIdentifierCompact, disableChipClick, maxWidth, triggerEvent, onRecordChipClick, } = useChipFieldDisplay(); + const isMobile = useIsMobile(); + const isRecordTableScrolledLeftComponent = useRecoilComponentValue( + isRecordTableScrolledLeftComponentState, + ); + + const isLabelIdentifierCompact = + isMobile && !isRecordTableScrolledLeftComponent; + if (!isDefined(recordValue)) { return null; } diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/hooks/useChipFieldDisplay.ts b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/hooks/useChipFieldDisplay.ts index 343d0e7354..49bbe10183 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/hooks/useChipFieldDisplay.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/meta-types/hooks/useChipFieldDisplay.ts @@ -7,23 +7,30 @@ import { useContext } from 'react'; import { useRecoilValue } from 'recoil'; import { isFieldActor } from '@/object-record/record-field/ui/types/guards/isFieldActor'; +import { useRecordIndexContextOrThrow } from '@/object-record/record-index/contexts/RecordIndexContext'; import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState'; import { isDefined } from 'twenty-shared/utils'; import { FieldContext } from '../../contexts/FieldContext'; export const useChipFieldDisplay = () => { const { + fieldMetadataItemId, recordId, fieldDefinition, - isLabelIdentifier, - labelIdentifierLink, - isLabelIdentifierCompact, disableChipClick, maxWidth, triggerEvent, onRecordChipClick, } = useContext(FieldContext); + const { indexIdentifierUrl, labelIdentifierFieldMetadataItem } = + useRecordIndexContextOrThrow(); + + const isLabelIdentifier = + labelIdentifierFieldMetadataItem?.id === fieldMetadataItemId; + + const labelIdentifierLink = indexIdentifierUrl(recordId); + const { chipGeneratorPerObjectPerField } = useContext( PreComputedChipGeneratorsContext, ); @@ -51,7 +58,6 @@ export const useChipFieldDisplay = () => { recordValue, isLabelIdentifier, labelIdentifierLink, - isLabelIdentifierCompact, disableChipClick, maxWidth, triggerEvent, diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/types/FieldDefinition.ts b/packages/twenty-front/src/modules/object-record/record-field/ui/types/FieldDefinition.ts index 4193e58abc..aa5e516509 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/types/FieldDefinition.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/types/FieldDefinition.ts @@ -7,12 +7,10 @@ export type FieldDefinition = { fieldMetadataId: string; label: string; showLabel?: boolean; - disableTooltip?: boolean; labelWidth?: number; iconName: string; type: FieldMetadataType; metadata: T; - infoTooltipContent?: string; defaultValue?: any; editButtonIcon?: IconComponent; isUIReadOnly?: boolean; diff --git a/packages/twenty-front/src/modules/object-record/record-inline-cell/components/RecordInlineCellContainer.tsx b/packages/twenty-front/src/modules/object-record/record-inline-cell/components/RecordInlineCellContainer.tsx index f62b0e6dfa..aff49e2621 100644 --- a/packages/twenty-front/src/modules/object-record/record-inline-cell/components/RecordInlineCellContainer.tsx +++ b/packages/twenty-front/src/modules/object-record/record-inline-cell/components/RecordInlineCellContainer.tsx @@ -127,7 +127,7 @@ export const RecordInlineCellContainer = () => { )} {/* TODO: Displaying Tooltips on the board is causing performance issues https://react-tooltip.com/docs/examples/render */} - {!showLabel && !fieldDefinition?.disableTooltip && ( + {!showLabel && ( void; children: ReactNode; }; @@ -18,6 +22,7 @@ export const RecordTableContextProvider = ({ viewBarId, recordTableId, objectNameSingular, + onRecordIdentifierClick, children, }: RecordTableContextProviderProps) => { const { objectMetadataItem } = useObjectMetadataItem({ @@ -33,6 +38,12 @@ export const RecordTableContextProvider = ({ recordTableId, ); + const recordIndexOpenRecordIn = useRecoilValue(recordIndexOpenRecordInState); + const triggerEvent = + recordIndexOpenRecordIn === ViewOpenRecordInType.SIDE_PANEL + ? 'CLICK' + : 'MOUSE_DOWN'; + return ( {children} diff --git a/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableWithWrappers.tsx b/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableWithWrappers.tsx index 980bee2a3c..6cd4f31456 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableWithWrappers.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableWithWrappers.tsx @@ -1,9 +1,12 @@ import { useDeleteOneRecord } from '@/object-record/hooks/useDeleteOneRecord'; +import { useOpenRecordFromIndexView } from '@/object-record/record-index/hooks/useOpenRecordFromIndexView'; import { RecordTable } from '@/object-record/record-table/components/RecordTable'; import { RecordTableComponentInstance } from '@/object-record/record-table/components/RecordTableComponentInstance'; import { RecordTableContextProvider } from '@/object-record/record-table/components/RecordTableContextProvider'; import { EntityDeleteContext } from '@/object-record/record-table/contexts/EntityDeleteHookContext'; import { useSelectAllRows } from '@/object-record/record-table/hooks/internal/useSelectAllRows'; +import { useActiveRecordTableRow } from '@/object-record/record-table/hooks/useActiveRecordTableRow'; +import { useFocusedRecordTableRow } from '@/object-record/record-table/hooks/useFocusedRecordTableRow'; import { PageFocusId } from '@/types/PageFocusId'; import { useHotkeysOnFocusedElement } from '@/ui/utilities/hotkey/hooks/useHotkeysOnFocusedElement'; import { ScrollWrapper } from '@/ui/utilities/scroll/components/ScrollWrapper'; @@ -47,6 +50,16 @@ export const RecordTableWithWrappers = ({ }, }); + const { activateRecordTableRow } = useActiveRecordTableRow(recordTableId); + const { unfocusRecordTableRow } = useFocusedRecordTableRow(recordTableId); + const { openRecordFromIndexView } = useOpenRecordFromIndexView(); + + const handleRecordIdentifierClick = (rowIndex: number, recordId: string) => { + activateRecordTableRow(rowIndex); + unfocusRecordTableRow(); + openRecordFromIndexView({ recordId }); + }; + const { deleteOneRecord } = useDeleteOneRecord({ objectNameSingular }); return ( @@ -55,6 +68,7 @@ export const RecordTableWithWrappers = ({ recordTableId={recordTableId} viewBarId={viewBarId} objectNameSingular={objectNameSingular} + onRecordIdentifierClick={handleRecordIdentifierClick} > {}, + triggerEvent: 'CLICK', }} > diff --git a/packages/twenty-front/src/modules/object-record/record-table/contexts/RecordTableContext.ts b/packages/twenty-front/src/modules/object-record/record-table/contexts/RecordTableContext.ts index 80fd218572..8b2987e203 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/contexts/RecordTableContext.ts +++ b/packages/twenty-front/src/modules/object-record/record-table/contexts/RecordTableContext.ts @@ -10,6 +10,8 @@ type RecordTableContextValue = { objectMetadataItem: ObjectMetadataItem; objectPermissions: ObjectPermission; visibleRecordFields: RecordField[]; + onRecordIdentifierClick?: (rowIndex: number, recordId: string) => void; + triggerEvent: 'CLICK' | 'MOUSE_DOWN'; }; export const [RecordTableContextProvider, useRecordTableContextOrThrow] = diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/components/RecordTableCellFieldContextGeneric.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/components/RecordTableCellFieldContextGeneric.tsx index 6ce6b5e39d..d9900b9dd3 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/components/RecordTableCellFieldContextGeneric.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/components/RecordTableCellFieldContextGeneric.tsx @@ -26,7 +26,6 @@ export const RecordTableCellFieldContextGeneric = ({ useRecordTableContextOrThrow(); const { - indexIdentifierUrl, objectPermissionsByObjectMetadataId, fieldDefinitionByFieldMetadataItemId, } = useRecordIndexContextOrThrow(); @@ -37,6 +36,7 @@ export const RecordTableCellFieldContextGeneric = ({ const updateRecord = useContext(RecordUpdateContext); let hasObjectReadPermissions = objectPermissions.canReadObjectRecords; + // todo @guillim : adjust this to handle morph relations permissions display if ( isFieldRelationToOneObject(fieldDefinition) || @@ -56,10 +56,10 @@ export const RecordTableCellFieldContextGeneric = ({ return ( [updateRecord, {}], - labelIdentifierLink: indexIdentifierUrl(recordId), isLabelIdentifier: isLabelIdentifierField({ fieldMetadataItem: { id: fieldDefinition.fieldMetadataId, diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/components/RecordTableCellFieldContextLabelIdentifier.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/components/RecordTableCellFieldContextLabelIdentifier.tsx index 0c59cdbade..f91d09c20f 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/components/RecordTableCellFieldContextLabelIdentifier.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/components/RecordTableCellFieldContextLabelIdentifier.tsx @@ -2,20 +2,11 @@ import { getObjectPermissionsForObject } from '@/object-metadata/utils/getObject import { isRecordFieldReadOnly } from '@/object-record/read-only/utils/isRecordFieldReadOnly'; import { FieldContext } from '@/object-record/record-field/ui/contexts/FieldContext'; import { useRecordIndexContextOrThrow } from '@/object-record/record-index/contexts/RecordIndexContext'; -import { useOpenRecordFromIndexView } from '@/object-record/record-index/hooks/useOpenRecordFromIndexView'; -import { recordIndexOpenRecordInState } from '@/object-record/record-index/states/recordIndexOpenRecordInState'; import { RecordUpdateContext } from '@/object-record/record-table/contexts/EntityUpdateMutationHookContext'; import { RecordTableCellContext } from '@/object-record/record-table/contexts/RecordTableCellContext'; import { useRecordTableContextOrThrow } from '@/object-record/record-table/contexts/RecordTableContext'; import { useRecordTableRowContextOrThrow } from '@/object-record/record-table/contexts/RecordTableRowContext'; -import { useActiveRecordTableRow } from '@/object-record/record-table/hooks/useActiveRecordTableRow'; -import { useFocusedRecordTableRow } from '@/object-record/record-table/hooks/useFocusedRecordTableRow'; -import { isRecordTableScrolledLeftComponentState } from '@/object-record/record-table/states/isRecordTableScrolledLeftComponentState'; -import { useRecoilComponentValue } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValue'; -import { ViewOpenRecordInType } from '@/views/types/ViewOpenRecordInType'; import { useContext, type ReactNode } from 'react'; -import { useRecoilValue } from 'recoil'; -import { useIsMobile } from 'twenty-ui/utilities'; type RecordTableCellFieldContextLabelIdentifierProps = { children: ReactNode; @@ -24,22 +15,16 @@ type RecordTableCellFieldContextLabelIdentifierProps = { export const RecordTableCellFieldContextLabelIdentifier = ({ children, }: RecordTableCellFieldContextLabelIdentifierProps) => { - const { indexIdentifierUrl, objectPermissionsByObjectMetadataId } = - useRecordIndexContextOrThrow(); - const { recordId, isRecordReadOnly } = useRecordTableRowContextOrThrow(); - const { fieldDefinitionByFieldMetadataItemId } = - useRecordIndexContextOrThrow(); + const { + objectPermissionsByObjectMetadataId, + fieldDefinitionByFieldMetadataItemId, + } = useRecordIndexContextOrThrow(); + const { recordId, isRecordReadOnly, rowIndex } = + useRecordTableRowContextOrThrow(); const { recordField } = useContext(RecordTableCellContext); - const { objectMetadataItem, recordTableId } = useRecordTableContextOrThrow(); - const { rowIndex } = useRecordTableRowContextOrThrow(); - const { activateRecordTableRow } = useActiveRecordTableRow(recordTableId); - const { unfocusRecordTableRow } = useFocusedRecordTableRow(recordTableId); - - const isMobile = useIsMobile(); - const isRecordTableScrolledLeftComponent = useRecoilComponentValue( - isRecordTableScrolledLeftComponentState, - ); + const { objectMetadataItem, onRecordIdentifierClick, triggerEvent } = + useRecordTableContextOrThrow(); const objectPermissions = getObjectPermissionsForObject( objectPermissionsByObjectMetadataId, @@ -50,29 +35,20 @@ export const RecordTableCellFieldContextLabelIdentifier = ({ const updateRecord = useContext(RecordUpdateContext); - const isLabelIdentifierCompact = - isMobile && !isRecordTableScrolledLeftComponent; - - const { openRecordFromIndexView } = useOpenRecordFromIndexView(); - - const recordIndexOpenRecordIn = useRecoilValue(recordIndexOpenRecordInState); - const triggerEvent = - recordIndexOpenRecordIn === ViewOpenRecordInType.SIDE_PANEL - ? 'CLICK' - : 'MOUSE_DOWN'; - const fieldDefinition = fieldDefinitionByFieldMetadataItemId[recordField.fieldMetadataItemId]; + const handleChipClick = () => { + onRecordIdentifierClick?.(rowIndex, recordId); + }; + return ( [updateRecord, {}], - labelIdentifierLink: indexIdentifierUrl(recordId), isLabelIdentifier: true, - isLabelIdentifierCompact, displayedMaxRows: 1, isRecordFieldReadOnly: isRecordFieldReadOnly({ isRecordReadOnly: isRecordReadOnly ?? false, @@ -83,11 +59,7 @@ export const RecordTableCellFieldContextLabelIdentifier = ({ }, }), maxWidth: recordField.size, - onRecordChipClick: () => { - activateRecordTableRow(rowIndex); - unfocusRecordTableRow(); - openRecordFromIndexView({ recordId }); - }, + onRecordChipClick: handleChipClick, isForbidden: !hasObjectReadPermissions, triggerEvent, }} diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/hooks/internal/__tests__/useCloseRecordTableCellNoGroup.test.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/hooks/internal/__tests__/useCloseRecordTableCellNoGroup.test.tsx index ceafd8e230..d5cd4e7035 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/hooks/internal/__tests__/useCloseRecordTableCellNoGroup.test.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/hooks/internal/__tests__/useCloseRecordTableCellNoGroup.test.tsx @@ -35,6 +35,7 @@ const Wrapper = ({ children }: { children: React.ReactNode }) => ( recordTableId={recordTableId} viewBarId="viewBarId" objectNameSingular={CoreObjectNameSingular.Person} + onRecordIdentifierClick={() => {}} > { fieldMetadataId: '1', label: 'label 1', metadata: { fieldName: 'fieldName 1' }, - infoTooltipContent: 'infoTooltipContent 1', iconName: 'iconName 1', type: FieldMetadataType.TEXT, position: 1, @@ -109,7 +108,6 @@ describe('mapViewFieldsToColumnDefinitions', () => { fieldMetadataId: '2', label: 'label 2', metadata: { fieldName: 'fieldName 2' }, - infoTooltipContent: 'infoTooltipContent 2', iconName: 'iconName 2', type: FieldMetadataType.TEXT, position: 2, @@ -129,7 +127,6 @@ describe('mapViewFieldsToColumnDefinitions', () => { fieldMetadataId: '3', label: 'label 3', metadata: { fieldName: 'fieldName 3' }, - infoTooltipContent: 'infoTooltipContent 3', iconName: 'iconName 3', type: FieldMetadataType.TEXT, position: 3, @@ -146,7 +143,6 @@ describe('mapViewFieldsToColumnDefinitions', () => { label: 'label 1', position: 1, metadata: { fieldName: 'fieldName 1' }, - infoTooltipContent: 'infoTooltipContent 1', iconName: 'iconName 1', type: FieldMetadataType.TEXT, size: 1, @@ -156,7 +152,6 @@ describe('mapViewFieldsToColumnDefinitions', () => { label: 'label 3', position: 3, metadata: { fieldName: 'fieldName 3' }, - infoTooltipContent: 'infoTooltipContent 3', iconName: 'iconName 3', type: FieldMetadataType.TEXT, size: 3, @@ -168,7 +163,6 @@ describe('mapViewFieldsToColumnDefinitions', () => { fieldMetadataId: '1', label: 'label 1', metadata: { fieldName: 'fieldName 1' }, - infoTooltipContent: 'infoTooltipContent 1', iconName: 'iconName 1', type: FieldMetadataType.TEXT, size: 1, @@ -180,7 +174,6 @@ describe('mapViewFieldsToColumnDefinitions', () => { fieldMetadataId: '3', label: 'label 3', metadata: { fieldName: 'fieldName 3' }, - infoTooltipContent: 'infoTooltipContent 3', iconName: 'iconName 3', type: FieldMetadataType.TEXT, size: 3, diff --git a/packages/twenty-front/src/modules/views/utils/mapViewFieldsToColumnDefinitions.ts b/packages/twenty-front/src/modules/views/utils/mapViewFieldsToColumnDefinitions.ts index cfa629785f..4eb1be8e64 100644 --- a/packages/twenty-front/src/modules/views/utils/mapViewFieldsToColumnDefinitions.ts +++ b/packages/twenty-front/src/modules/views/utils/mapViewFieldsToColumnDefinitions.ts @@ -39,7 +39,6 @@ export const mapViewFieldsToColumnDefinitions = ({ fieldMetadataId: viewField.fieldMetadataId, label: correspondingColumnDefinition.label, metadata: correspondingColumnDefinition.metadata, - infoTooltipContent: correspondingColumnDefinition.infoTooltipContent, iconName: correspondingColumnDefinition.iconName, type: correspondingColumnDefinition.type, position: isLabelIdentifier ? 0 : viewField.position, diff --git a/packages/twenty-front/src/testing/decorators/RecordTableDecorator.tsx b/packages/twenty-front/src/testing/decorators/RecordTableDecorator.tsx index 12185d0383..776d84376c 100644 --- a/packages/twenty-front/src/testing/decorators/RecordTableDecorator.tsx +++ b/packages/twenty-front/src/testing/decorators/RecordTableDecorator.tsx @@ -133,6 +133,8 @@ const InternalTableContextProviders = ({ }), ); + const triggerEvent = 'CLICK'; + return ( {}, + triggerEvent, }} > - ) : !forceEmptyText ? ( + ) : !forceEmptyText && !isLabelHidden ? ( Untitled ) : ( ''