@@ -79,7 +79,7 @@ export default class SortableJsComponent extends Component {
79
79
if ( ! isObject ) throw new TypeError ( 'Item is not an Object' ) ;
80
80
81
81
if ( ! this . cachedIdentity . has ( item ) ) {
82
- this . cachedIdentity . set ( item , { value : item } ) ;
82
+ this . setIdentity ( item ) ;
83
83
}
84
84
} ) ;
85
85
this . list = [ ...( this . args . items || [ ] ) ] ;
@@ -107,8 +107,7 @@ export default class SortableJsComponent extends Component {
107
107
oldIndex,
108
108
} = evt ;
109
109
110
- [ this . list [ oldIndex ] , this . list [ newIndex ] ]
111
- . forEach ( ( item ) => this . cachedIdentity . set ( item , { value : item } ) ) ;
110
+ [ this . list [ oldIndex ] , this . list [ newIndex ] ] . forEach ( ( item ) => this . setIdentity ( item ) ) ;
112
111
113
112
this . sync ( evt , move ( this . list , oldIndex , newIndex ) ) ;
114
113
this . hasUpdatedList = true ;
@@ -139,7 +138,7 @@ export default class SortableJsComponent extends Component {
139
138
140
139
const oldItem = this . dragStore . dragStartInstance . list [ oldIndex ] ;
141
140
142
- this . cachedIdentity . set ( oldItem , { value : oldItem } ) ;
141
+ this . setIdentity ( oldItem ) ;
143
142
144
143
this . sync ( evt , insertAt ( this . list , newIndex , oldItem ) ) ;
145
144
this . args ?. onAdd ?. ( evt ) ;
@@ -155,8 +154,7 @@ export default class SortableJsComponent extends Component {
155
154
if ( ! this . hasUpdatedList ) {
156
155
evt . item . remove ( ) ;
157
156
this . list = this . list . map ( ( item ) => {
158
- const newIdentity = { value : item } ;
159
- this . cachedIdentity . set ( item , newIdentity ) ;
157
+ this . setIdentity ( item ) ;
160
158
return item ;
161
159
} ) ;
162
160
@@ -167,6 +165,12 @@ export default class SortableJsComponent extends Component {
167
165
this . hasUpdatedList = false ;
168
166
}
169
167
168
+ setIdentity ( obj ) {
169
+ if ( obj && ( typeof obj === 'object' ) ) {
170
+ this . cachedIdentity . set ( obj , { value : obj } ) ;
171
+ }
172
+ }
173
+
170
174
sync ( { item } , changedArray ) {
171
175
item . remove ( ) ;
172
176
this . list = [ ...changedArray ] ;
0 commit comments