@@ -105,11 +105,16 @@ export function updateFocussedState({
105105 return ;
106106 }
107107
108+ // prefer data-cslp-unique-id when available else use data-cslp.
109+ // unique ID is added on click when multiple elements with same
110+ // data-cslp are found.
111+ const previousSelectedElementCslp = editableElement ?. getAttribute ( "data-cslp" ) || "" ;
108112 const previousSelectedElementCslpUniqueId =
109113 previousSelectedEditableDOM ?. getAttribute ( "data-cslp-unique-id" ) ;
110- const newPreviousSelectedElement = document . querySelector (
111- `[data-cslp-unique-id="${ previousSelectedElementCslpUniqueId } "]`
112- ) ;
114+ const newPreviousSelectedElement =
115+ document . querySelector (
116+ `[data-cslp-unique-id="${ previousSelectedElementCslpUniqueId } "]`
117+ ) || document . querySelector ( `[data-cslp="${ previousSelectedElementCslp } "]` ) ;
113118 if ( ! newPreviousSelectedElement && resizeObserver ) {
114119 hideFocusOverlay ( {
115120 visualBuilderOverlayWrapper : overlayWrapper ,
@@ -148,8 +153,7 @@ export function updateFocussedState({
148153 psuedoEditableElement . style . visibility = "visible" ;
149154 }
150155
151- const cslp = editableElement ?. getAttribute ( "data-cslp" ) || "" ;
152- const fieldMetadata = extractDetailsFromCslp ( cslp ) ;
156+ const fieldMetadata = extractDetailsFromCslp ( previousSelectedElementCslp ) ;
153157
154158 const targetElementDimension = editableElement . getBoundingClientRect ( ) ;
155159 if ( targetElementDimension . width && targetElementDimension . height ) {
@@ -227,10 +231,14 @@ export function updateFocussedStateOnMutation(
227231 . previousSelectedEditableDOM ;
228232 if ( ! selectedElement ) return ;
229233
230- const selectedElementCslpUniqueId = selectedElement ? .getAttribute ( "data-cslp-unique-id " ) ;
231- const newSelectedElement = document . querySelector (
232- `[ data-cslp-unique-id=" ${ selectedElementCslpUniqueId } "]`
234+ const selectedElementCslp = selectedElement . getAttribute ( "data-cslp" ) ;
235+ const selectedElementCslpUniqueId = selectedElement ?. getAttribute (
236+ " data-cslp-unique-id"
233237 ) ;
238+ const newSelectedElement =
239+ document . querySelector (
240+ `[data-cslp-unique-id="${ selectedElementCslpUniqueId } "]`
241+ ) || document . querySelector ( `[data-cslp="${ selectedElementCslp } "]` ) ;
234242 if ( ! newSelectedElement && resizeObserver ) {
235243 hideFocusOverlay ( {
236244 visualBuilderOverlayWrapper : focusOverlayWrapper ,
0 commit comments