@@ -49,14 +49,12 @@ export class ReactSortable<T extends ItemInterface> extends Component<
49
49
this . ref = createRef < HTMLElement > ( ) ;
50
50
51
51
// make all state false because we can't change sortable unless a mouse gesture is made.
52
- const newList = [ ...props . list ] ;
53
-
54
- newList . forEach ( ( item : T ) => {
52
+ const newList = [ ...props . list ] . map ( ( item ) =>
55
53
Object . assign ( item , {
56
54
chosen : false ,
57
55
selected : false ,
58
- } ) ;
59
- } )
56
+ } )
57
+ ) ;
60
58
61
59
props . setList ( newList , this . sortable , store ) ;
62
60
invariant (
@@ -120,8 +118,8 @@ Please read the updated README.md at https://github.com/SortableJS/react-sortabl
120
118
const dataid = dataIdAttr || "data-id" ;
121
119
/* eslint-disable-next-line */
122
120
return Children . map ( children as ReactElement < any > [ ] , ( child , index ) => {
123
- if ( child === undefined ) return undefined
124
-
121
+ if ( child === undefined ) return undefined ;
122
+
125
123
const item = list [ index ] || { } ;
126
124
const { className : prevClassName } = child . props ;
127
125
@@ -239,13 +237,12 @@ Please read the updated README.md at https://github.com/SortableJS/react-sortabl
239
237
const customs = createCustoms ( evt , otherList ) ;
240
238
removeNodes ( customs ) ;
241
239
242
- const newList = handleStateAdd ( customs , list , evt , clone )
243
-
244
- newList . forEach ( ( item ) => {
240
+ const newList = handleStateAdd ( customs , list , evt , clone ) . map ( ( item ) =>
245
241
Object . assign ( item , {
246
242
selected : false ,
247
- } ) ;
248
- } ) ;
243
+ } )
244
+ ) ;
245
+
249
246
setList ( newList , this . sortable , store ) ;
250
247
}
251
248
@@ -296,11 +293,12 @@ Please read the updated README.md at https://github.com/SortableJS/react-sortabl
296
293
}
297
294
298
295
// remove item.selected from list
299
- newList . forEach ( ( item : T ) => {
296
+ newList = newList . map ( ( item : T ) =>
300
297
Object . assign ( item , {
301
298
selected : false ,
302
- } ) ;
303
- } )
299
+ } )
300
+ ) ;
301
+
304
302
setList ( newList , this . sortable , store ) ;
305
303
}
306
304
@@ -324,25 +322,27 @@ Please read the updated README.md at https://github.com/SortableJS/react-sortabl
324
322
onChoose ( evt : SortableEvent ) : void {
325
323
const { list, setList } = this . props ;
326
324
const newList = list . map ( ( item , index ) => {
325
+ let newItem = item ;
327
326
if ( index === evt . oldIndex ) {
328
- Object . assign ( item , {
327
+ newItem = Object . assign ( item , {
329
328
chosen : true ,
330
329
} ) ;
331
330
}
332
- return item ;
331
+ return newItem ;
333
332
} ) ;
334
333
setList ( newList , this . sortable , store ) ;
335
334
}
336
335
337
336
onUnchoose ( evt : SortableEvent ) : void {
338
337
const { list, setList } = this . props ;
339
338
const newList = list . map ( ( item , index ) => {
339
+ let newItem = item ;
340
340
if ( index === evt . oldIndex ) {
341
- Object . assign ( item , {
341
+ newItem = Object . assign ( newItem , {
342
342
chosen : false ,
343
343
} ) ;
344
344
}
345
- return item ;
345
+ return newItem ;
346
346
} ) ;
347
347
setList ( newList , this . sortable , store ) ;
348
348
}
@@ -354,12 +354,12 @@ Please read the updated README.md at https://github.com/SortableJS/react-sortabl
354
354
355
355
onSelect ( evt : MultiDragEvent ) : void {
356
356
const { list, setList } = this . props ;
357
- const newList = [ ...list ] ;
358
- newList . forEach ( ( item ) => {
357
+ const newList = list . map ( ( item ) =>
359
358
Object . assign ( item , {
360
- chosen : false ,
361
- } ) ;
362
- } ) ;
359
+ selected : false ,
360
+ } )
361
+ ) ;
362
+
363
363
evt . newIndicies . forEach ( ( curr ) => {
364
364
const index = curr . index ;
365
365
if ( index === - 1 ) {
@@ -376,12 +376,11 @@ Please read the updated README.md at https://github.com/SortableJS/react-sortabl
376
376
377
377
onDeselect ( evt : MultiDragEvent ) : void {
378
378
const { list, setList } = this . props ;
379
- const newList = [ ...list ] ;
380
- newList . forEach ( ( item ) => {
379
+ const newList = list . map ( ( item ) =>
381
380
Object . assign ( item , {
382
- chosen : false ,
383
- } ) ;
384
- } ) ;
381
+ selected : false ,
382
+ } )
383
+ ) ;
385
384
evt . newIndicies . forEach ( ( curr ) => {
386
385
const index = curr . index ;
387
386
if ( index === - 1 ) return ;
0 commit comments