@@ -13,8 +13,8 @@ import {SortableContext} from './SortableProvider'
1313import { BiDiMap , insert , moveItem , moveItems , remove , removeAll , replace , shallowClone , swap } from './utils'
1414
1515const isClone = ( e : SortableEvent ) : boolean => e . pullMode === 'clone'
16- const isSwap = ( e : SortableEvent ) : boolean => ! ! e . swapItem
17- const isMultiDrag = ( e : SortableEvent ) : boolean => e . newIndicies . length > 0
16+ const isSwap = ( e : SortableEvent ) : boolean => Boolean ( e . swapItem )
17+ const isMultiDrag = ( e : SortableEvent ) : boolean => Boolean ( e . newIndicies ? .length )
1818
1919const simpleEvents : ( keyof ExtendedOptions < any > ) [ ] = [ 'onStart' , 'onClone' , 'onChoose' , 'onUnchoose' , 'onSort' , 'onFilter' , 'onChange' ]
2020const allEvents : Set < string > = new Set ( [ ...simpleEvents , 'onAdd' , 'onRemove' , 'onUpdate' , 'onMove' , 'onEnd' ] as ( keyof ExtendedOptions < any > ) [ ] )
@@ -70,7 +70,9 @@ export const useSortable = <T>({
7070 const extendSortableEvent = ( e : SortableEvent ) => {
7171 const extended = e as SortableEventExtended < T >
7272 extended . stateItem = findItem ( e . from , e . item )
73- extended . stateItems = e . newIndicies . map ( el => findItem ( e . from , el . multiDragElement ) )
73+ if ( isMultiDrag ( e ) ) {
74+ extended . stateItems = e . newIndicies . map ( el => findItem ( e . from , el . multiDragElement ) )
75+ }
7476 if ( isSwap ( e ) ) {
7577 extended . swapStateItem = findItem ( e . to , e . swapItem ! )
7678 }
@@ -109,7 +111,7 @@ export const useSortable = <T>({
109111 } else if ( isMultiDrag ( extended ) ) {
110112 extended . newIndicies . forEach ( el => el . multiDragElement . remove ( ) )
111113 const minIdx = Math . min ( ...extended . newIndicies . map ( el => el . index ) )
112- setItems ( state => insert ( state , minIdx , ...extended . stateItems ) )
114+ setItems ( state => insert ( state , minIdx , ...extended . stateItems ! ) )
113115 } else {
114116 extended . item . remove ( )
115117 setItems ( state => insert ( state , extended . newDraggableIndex ! , extended . stateItem ) )
@@ -143,7 +145,7 @@ export const useSortable = <T>({
143145 swapping = true
144146 setTimeout ( ( ) => {
145147 newSortable . el . insertBefore ( extended . item , null )
146- setItems ( state => replace ( state , extended . oldDraggableIndex ! , extended . swapStateItem ) )
148+ setItems ( state => replace ( state , extended . oldDraggableIndex ! , extended . swapStateItem ! ) )
147149 swapping = false
148150 } , delay )
149151 } else if ( isMultiDrag ( extended ) ) {
0 commit comments