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,