@@ -31,6 +31,7 @@ export function enableInlineEditing({
3131 const elementComputedDisplay =
3232 window . getComputedStyle ( actualEditableField ) . display ;
3333
34+
3435 let textContent =
3536 ( editableElement as HTMLElement ) . innerText ||
3637 editableElement . textContent ||
@@ -41,14 +42,17 @@ export function enableInlineEditing({
4142 actualEditableField . addEventListener ( "paste" , pasteAsPlainText ) ;
4243 }
4344 const expectedTextContent = expectedFieldData ;
45+
46+ const isFieldLastEdited = document . querySelector ( "[data-cs-last-edited]" ) === editableElement ;
4447 if (
4548 ( expectedTextContent && textContent !== expectedTextContent ) ||
46- isEllipsisActive ( editableElement as HTMLElement )
49+ isEllipsisActive ( editableElement as HTMLElement ) ||
50+ isFieldLastEdited
4751 ) {
4852 // TODO: Testing will be done in the E2E.
4953 const pseudoEditableField = generatePseudoEditableElement (
5054 { editableElement : editableElement as HTMLElement } ,
51- { textContent : expectedFieldData }
55+ { textContent : expectedFieldData }
5256 ) ;
5357
5458 ( editableElement as HTMLElement ) . style . visibility = "hidden" ;
@@ -90,6 +94,9 @@ export function enableInlineEditing({
9094 actualEditableField . setAttribute ( "contenteditable" , "true" ) ;
9195 actualEditableField . addEventListener ( "input" , handleFieldInput ) ;
9296 actualEditableField . addEventListener ( "keydown" , handleFieldKeyDown ) ;
97+
98+ editableElement . setAttribute ( "data-cs-last-edited" , "true" ) ;
99+
93100 // focus on the contenteditable element to start accepting input
94101 actualEditableField . focus ( ) ;
95102
0 commit comments