From 1b67ba6a75f39427ccffae6211ebfc5f992242c3 Mon Sep 17 00:00:00 2001 From: neo773 <62795688+neo773@users.noreply.github.com> Date: Mon, 2 Mar 2026 16:34:30 +0530 Subject: [PATCH] Draft emails fix onblur on text input and callout banner component overflow (#18310) Before SCR-20260301-daft After SCR-20260301-daio --- .../ui/form-types/hooks/useMultiItemFieldEditor.ts | 7 +++++++ .../utils/__tests__/mergeWorkflowDiagrams.test.ts | 2 ++ .../workflow-diagram/utils/mergeWorkflowDiagrams.ts | 5 ++++- packages/twenty-ui/src/display/callout/Callout.tsx | 1 - 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/twenty-front/src/modules/object-record/record-field/ui/form-types/hooks/useMultiItemFieldEditor.ts b/packages/twenty-front/src/modules/object-record/record-field/ui/form-types/hooks/useMultiItemFieldEditor.ts index e5ded5ec6f..6b99770a56 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/ui/form-types/hooks/useMultiItemFieldEditor.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/ui/form-types/hooks/useMultiItemFieldEditor.ts @@ -149,6 +149,13 @@ export const useMultiItemFieldEditor = ({ onUpdate: ({ editor }) => { onUpdate(editor); }, + onBlur: ({ editor }) => { + const textBefore = getTextBeforeCursor(editor); + + if (textBefore.trim().length > 0) { + convertTextToTag(editor, textBefore); + } + }, enableInputRules: false, enablePasteRules: false, injectCSS: false, diff --git a/packages/twenty-front/src/modules/workflow/workflow-diagram/utils/__tests__/mergeWorkflowDiagrams.test.ts b/packages/twenty-front/src/modules/workflow/workflow-diagram/utils/__tests__/mergeWorkflowDiagrams.test.ts index 0a882417ae..6ecd4c1812 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-diagram/utils/__tests__/mergeWorkflowDiagrams.test.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-diagram/utils/__tests__/mergeWorkflowDiagrams.test.ts @@ -56,6 +56,7 @@ it('Preserves the properties defined in the previous version but not in the next "stepId": "", }, "id": "1", + "measured": undefined, "position": { "x": 0, "y": 0, @@ -121,6 +122,7 @@ it('Replaces duplicated properties with the next value', () => { "stepId": "", }, "id": "1", + "measured": undefined, "position": { "x": 0, "y": 0, diff --git a/packages/twenty-front/src/modules/workflow/workflow-diagram/utils/mergeWorkflowDiagrams.ts b/packages/twenty-front/src/modules/workflow/workflow-diagram/utils/mergeWorkflowDiagrams.ts index 3bfb9105ba..196a990d78 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-diagram/utils/mergeWorkflowDiagrams.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-diagram/utils/mergeWorkflowDiagrams.ts @@ -3,7 +3,10 @@ import { type WorkflowDiagramNode, } from '@/workflow/workflow-diagram/types/WorkflowDiagram'; -const nodePropertiesToPreserve: Array = ['selected']; +const nodePropertiesToPreserve: Array = [ + 'selected', + 'measured', +]; export const mergeWorkflowDiagrams = ( previousDiagram: WorkflowDiagram, diff --git a/packages/twenty-ui/src/display/callout/Callout.tsx b/packages/twenty-ui/src/display/callout/Callout.tsx index 5f816cc330..dacc3be4af 100644 --- a/packages/twenty-ui/src/display/callout/Callout.tsx +++ b/packages/twenty-ui/src/display/callout/Callout.tsx @@ -44,7 +44,6 @@ const StyledCalloutContainer = styled.div<{ flex-direction: column; gap: ${themeCssVariables.spacing[2]}; max-width: 512px; - overflow: hidden; padding: ${themeCssVariables.spacing[3]} ${themeCssVariables.spacing[3]} ${themeCssVariables.spacing[2]}; width: 100%;