From 1548662c51d4f4f3524e78c1f2a2fe3bac9b5104 Mon Sep 17 00:00:00 2001 From: Srinadh Reddy Date: Tue, 29 Oct 2024 13:07:29 +0530 Subject: [PATCH] fix remove handle focus event --- src/visualBuilder/generators/generateOverlay.tsx | 16 ++++++++++++++++ src/visualBuilder/index.ts | 3 +++ 2 files changed, 19 insertions(+) diff --git a/src/visualBuilder/generators/generateOverlay.tsx b/src/visualBuilder/generators/generateOverlay.tsx index 8497be02..69068ac0 100644 --- a/src/visualBuilder/generators/generateOverlay.tsx +++ b/src/visualBuilder/generators/generateOverlay.tsx @@ -23,6 +23,9 @@ export function addFocusOverlay( focusOverlayWrapper: HTMLDivElement, disabled?: boolean ): void { + VisualBuilder.VisualBuilderGlobalState.value.focusFieldValue = ( + targetElement as HTMLElement + )?.innerText; const targetElementDimension = targetElement.getBoundingClientRect(); if ( targetElementDimension.width === 0 || @@ -124,6 +127,19 @@ export function hideFocusOverlay(elements: HideOverlayParams): void { visualBuilderContainer, eventType: VisualBuilderPostMessageEvents.UPDATE_FIELD, }); + } else { + const previousSelectedEditableDOM = + VisualBuilder.VisualBuilderGlobalState.value + .previousSelectedEditableDOM; + const previousText = + VisualBuilder.VisualBuilderGlobalState.value.focusFieldValue; + if ( + previousSelectedEditableDOM && + "innerText" in previousSelectedEditableDOM && + previousText != null + ) { + previousSelectedEditableDOM.innerText = previousText; + } } cleanIndividualFieldResidual({ diff --git a/src/visualBuilder/index.ts b/src/visualBuilder/index.ts index 0ce0b7e9..6f70323d 100644 --- a/src/visualBuilder/index.ts +++ b/src/visualBuilder/index.ts @@ -47,6 +47,7 @@ interface VisualBuilderGlobalStateImpl { previousSelectedEditableDOM: HTMLElement | Element | null; previousHoveredTargetDOM: Element | null; previousEmptyBlockParents: Element[] | []; + focusFieldValue: string | null; audienceMode: boolean; locale: string; variant: string | null; @@ -63,6 +64,7 @@ export class VisualBuilder { previousSelectedEditableDOM: null, previousHoveredTargetDOM: null, previousEmptyBlockParents: [], + focusFieldValue: null, audienceMode: false, locale: Config.get().stackDetails.masterLocale || "en-us", variant: null, @@ -336,6 +338,7 @@ export class VisualBuilder { previousSelectedEditableDOM: null, previousHoveredTargetDOM: null, previousEmptyBlockParents: [], + focusFieldValue: null, audienceMode: false, locale: "en-us", variant: null,