@@ -106,7 +106,7 @@ export function hideFocusOverlay(elements: HideOverlayParams): void {
106106 visualBuilderOverlayWrapper,
107107 focusedToolbar,
108108 resizeObserver,
109- noTrigger
109+ noTrigger,
110110 } = elements ;
111111
112112 if ( visualBuilderOverlayWrapper ) {
@@ -119,13 +119,23 @@ export function hideFocusOverlay(elements: HideOverlayParams): void {
119119 }
120120 } ) ;
121121
122- if ( ! noTrigger ) {
122+ if ( ! noTrigger ) {
123123 sendFieldEvent ( {
124124 visualBuilderContainer,
125125 eventType : VisualBuilderPostMessageEvents . UPDATE_FIELD ,
126126 } ) ;
127+ } else {
128+ const { previousSelectedEditableDOM, focusFieldValue } =
129+ VisualBuilder . VisualBuilderGlobalState . value || { } ;
130+ if (
131+ previousSelectedEditableDOM &&
132+ "innerText" in previousSelectedEditableDOM &&
133+ focusFieldValue != null
134+ ) {
135+ previousSelectedEditableDOM . innerText = focusFieldValue ;
136+ }
127137 }
128-
138+ VisualBuilder . VisualBuilderGlobalState . value . focusFieldValue = null ;
129139 cleanIndividualFieldResidual ( {
130140 overlayWrapper : visualBuilderOverlayWrapper ,
131141 visualBuilderContainer : visualBuilderContainer ,
@@ -136,23 +146,22 @@ export function hideFocusOverlay(elements: HideOverlayParams): void {
136146}
137147interface ISendFieldEventParams {
138148 visualBuilderContainer : HTMLElement | null ;
139- eventType : VisualBuilderPostMessageEvents . UPDATE_FIELD | VisualBuilderPostMessageEvents . SYNC_FIELD
149+ eventType :
150+ | VisualBuilderPostMessageEvents . UPDATE_FIELD
151+ | VisualBuilderPostMessageEvents . SYNC_FIELD ;
140152}
141153export function sendFieldEvent ( options : ISendFieldEventParams ) : void {
142- const {
143- visualBuilderContainer,
144- eventType
145- } = options ;
146- const previousSelectedEditableDOM = VisualBuilder . VisualBuilderGlobalState . value . previousSelectedEditableDOM ;
154+ const { visualBuilderContainer, eventType } = options ;
155+ const previousSelectedEditableDOM =
156+ VisualBuilder . VisualBuilderGlobalState . value
157+ . previousSelectedEditableDOM ;
147158 const pseudoEditableElement = visualBuilderContainer ?. querySelector (
148159 "div.visual-builder__pseudo-editable-element"
149160 ) ;
150161 if (
151162 previousSelectedEditableDOM &&
152- (
153- previousSelectedEditableDOM . hasAttribute ( "contenteditable" ) ||
154- pseudoEditableElement
155- )
163+ ( previousSelectedEditableDOM . hasAttribute ( "contenteditable" ) ||
164+ pseudoEditableElement )
156165 ) {
157166 const actualEditedElement =
158167 pseudoEditableElement ||
@@ -164,37 +173,31 @@ export function sendFieldEvent(options: ISendFieldEventParams): void {
164173 : actualEditedElement . textContent ;
165174
166175 const fieldMetadata = extractDetailsFromCslp (
167- previousSelectedEditableDOM . getAttribute (
168- "data-cslp"
169- ) as string
176+ previousSelectedEditableDOM . getAttribute ( "data-cslp" ) as string
170177 ) ;
171178
172179 FieldSchemaMap . getFieldSchema (
173180 fieldMetadata . content_type_uid ,
174181 fieldMetadata . fieldPath
175182 )
176183 . then ( ( fieldSchema ) => {
177- if ( fieldSchema && eventType === VisualBuilderPostMessageEvents . UPDATE_FIELD ) {
184+ if (
185+ fieldSchema &&
186+ eventType === VisualBuilderPostMessageEvents . UPDATE_FIELD
187+ ) {
178188 const fieldType = getFieldType ( fieldSchema ) ;
179- if (
180- fieldType &&
181- fieldType === FieldDataType . MULTILINE
182- ) {
183- data =
184- getMultilinePlaintext ( actualEditedElement ) ;
189+ if ( fieldType && fieldType === FieldDataType . MULTILINE ) {
190+ data = getMultilinePlaintext ( actualEditedElement ) ;
185191 ( actualEditedElement as HTMLElement ) . innerText =
186192 data as string ;
187193 }
188194 }
189195 } )
190196 . finally ( ( ) => {
191- visualBuilderPostMessage ?. send (
192- eventType ,
193- {
194- data,
195- fieldMetadata,
196- }
197- ) ;
197+ visualBuilderPostMessage ?. send ( eventType , {
198+ data,
199+ fieldMetadata,
200+ } ) ;
198201 } ) ;
199202 }
200203}
0 commit comments