From 3d21e1ce26aea477861963318ac0aed098c0230a Mon Sep 17 00:00:00 2001 From: Etienne <45695613+etiennejouan@users.noreply.github.com> Date: Fri, 23 May 2025 12:25:12 +0200 Subject: [PATCH] remove activity fallback record in RelationFromManyFieldDisplay (#12232) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit EDITED ⬇️ Context When fixing relation fields preview in this [PR](https://github.com/twentyhq/twenty/pull/11745/files#diff-10073c6310707810d002bceef587936ed5d31dba2ea5babbb4d452a7f1e756b5R31-R35), I've (try to) fixed NoteTarget (and TaskTarget) field preview adding [fallback record](https://github.com/twentyhq/twenty/pull/11745/files#diff-da3ccb70824f1792351457dbee66dd75e48e45ff8e6e0f768f402e35256377bcR54-R61). It introduces the sentry error (findOneNote/Task with 'fallback-id') : when activity is soft deleted, associated activityTarget is not. In TableView, when displaying Note/Task field in view for a record with a soft deleted ntoe/task, 'fallback-id' record chip is clickable. Solution - seen with Charles - Remove fallback-id record + Hide NoteTarget and TaskTarget field preview - awaiting ManyToMany relation are updated in few weeks Screenshot 2025-05-23 at 11 07 06 Test - RelationFromManyFieldDisplay in Table view & Settings field preview closes https://github.com/twentyhq/twenty/issues/12218 --- .../RelationFromManyFieldDisplay.tsx | 19 +------- .../data-model/SettingsObjectFieldEdit.tsx | 44 ++++++++++++------- 2 files changed, 29 insertions(+), 34 deletions(-) diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/RelationFromManyFieldDisplay.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/RelationFromManyFieldDisplay.tsx index 399b7b852..eec4a25ca 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/RelationFromManyFieldDisplay.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/RelationFromManyFieldDisplay.tsx @@ -10,7 +10,6 @@ import { useRelationFromManyFieldDisplay } from '@/object-record/record-field/me import { ExpandableList } from '@/ui/layout/expandable-list/components/ExpandableList'; import { useContext } from 'react'; import { isDefined } from 'twenty-shared/utils'; -import { pascalCase } from '~/utils/string/pascalCase'; export const RelationFromManyFieldDisplay = () => { const { fieldValue, fieldDefinition, generateRecordChipData } = @@ -51,28 +50,14 @@ export const RelationFromManyFieldDisplay = () => { : CoreObjectNameSingular.Task; const relationFieldName = fieldName === 'noteTargets' ? 'note' : 'task'; - const formattedRecords = fieldValue.map((record) => { - if (!isDefined(record[relationFieldName])) { - return { - ...record, - [relationFieldName]: { - id: 'fallback-id', - title: pascalCase(relationFieldName), - }, - }; - } - - return record; - }); return ( - {formattedRecords + {fieldValue .map((record) => { - if (!isDefined(record)) { + if (!isDefined(record) || !isDefined(record[relationFieldName])) { return undefined; } - return ( { } /> -
- {fieldMetadataItem.isUnique ? ( - - ) : ( - - )} - -
+ { + //patch - awaiting refacto on many to many relations - https://github.com/twentyhq/core-team-issues/issues/186 + fieldMetadataItem.name !== CoreObjectNamePlural.NoteTarget && + fieldMetadataItem.name !== CoreObjectNamePlural.TaskTarget && ( + <> +
+ {fieldMetadataItem.isUnique ? ( + + ) : ( + + )} + +
+ + ) + }
{ fieldMetadataItem={fieldMetadataItem} />
+ {!isLabelIdentifier && (