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
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 && (