@@ -92,6 +92,17 @@ function useHadronElement(el: HadronElementType) {
92
92
[ el , forceUpdate ]
93
93
) ;
94
94
95
+ const onElementReverted = useCallback (
96
+ ( changedElement : HadronElementType ) => {
97
+ if ( el . uuid === changedElement . uuid ) {
98
+ // When an element is reverted we check again if the key is a duplicate.
99
+ setIsDuplicateKey ( el . isDuplicateKey ( el . key ) ) ;
100
+ forceUpdate ( ) ;
101
+ }
102
+ } ,
103
+ [ el , forceUpdate ]
104
+ ) ;
105
+
95
106
useEffect ( ( ) => {
96
107
if ( prevEl && prevEl !== el ) {
97
108
forceUpdate ( ) ;
@@ -101,7 +112,7 @@ function useHadronElement(el: HadronElementType) {
101
112
useEffect ( ( ) => {
102
113
el . on ( ElementEvents . Converted , onElementChanged ) ;
103
114
el . on ( ElementEvents . Edited , onElementChanged ) ;
104
- el . on ( ElementEvents . Reverted , onElementChanged ) ;
115
+ el . on ( ElementEvents . Reverted , onElementReverted ) ;
105
116
el . on ( ElementEvents . Invalid , onElementChanged ) ;
106
117
el . on ( ElementEvents . Valid , onElementChanged ) ;
107
118
el . on ( ElementEvents . Added , onElementAddedOrRemoved ) ;
@@ -113,15 +124,15 @@ function useHadronElement(el: HadronElementType) {
113
124
return ( ) => {
114
125
el . off ( ElementEvents . Converted , onElementChanged ) ;
115
126
el . off ( ElementEvents . Edited , onElementChanged ) ;
116
- el . off ( ElementEvents . Reverted , onElementChanged ) ;
127
+ el . off ( ElementEvents . Reverted , onElementReverted ) ;
117
128
el . off ( ElementEvents . Valid , onElementChanged ) ;
118
129
el . off ( ElementEvents . Added , onElementAddedOrRemoved ) ;
119
130
el . off ( ElementEvents . Removed , onElementAddedOrRemoved ) ;
120
131
el . off ( ElementEvents . Expanded , onElementChanged ) ;
121
132
el . off ( ElementEvents . Collapsed , onElementChanged ) ;
122
133
el . off ( ElementEvents . VisibleElementsChanged , onElementChanged ) ;
123
134
} ;
124
- } , [ el , onElementChanged , onElementAddedOrRemoved ] ) ;
135
+ } , [ el , onElementChanged , onElementAddedOrRemoved , onElementReverted ] ) ;
125
136
126
137
const isValid = el . isCurrentTypeValid ( ) ;
127
138
0 commit comments