@@ -11,20 +11,18 @@ export default createReducer({
11
11
[ actions . addCard ] : ( state , data ) => state . mergeDeep ( data ) ,
12
12
13
13
[ actions . removeCard ] : ( state , data ) =>
14
- state //.deleteIn(['card', data.get('index')]) // <-- unnecessary?
15
- . deleteIn ( [ 'list' , data . get ( 'listIndex' ) , 'card' ,
16
- state . getIn ( [ 'list' , data . get ( 'listIndex' ) , 'card' ] ) . indexOf ( data . get ( 'index' ) ) ] ) ,
14
+ state . deleteIn ( [ 'list' , data . get ( 'listIndex' ) , 'card' ,
15
+ state . getIn ( [ 'list' , data . get ( 'listIndex' ) , 'card' ] ) . indexOf ( data . get ( 'index' ) ) ] ) ,
17
16
18
- [ actions . addSlot ] : ( state , data ) =>
19
- state . setIn ( [ 'list' , data . get ( 'listIndex' ) , 'card' ] , data . get ( 'new' ) ) ,
20
- [ actions . removeSlot ] : ( state , data ) => {
21
- const index = state . getIn ( [ 'list' , data . get ( 'listIndex' ) , 'card' ] ) . indexOf ( 'slot' )
22
- return index !== - 1 ? state . deleteIn ( [ 'list' , data . get ( 'listIndex' ) , 'card' , index ] ) : state
23
- } ,
24
-
25
-
26
- [ actions . moveCard ] : ( state , data ) =>
27
- state . deleteIn ( [ 'list' , data . get ( 'fromListIndex' ) , 'card' ,
28
- state . getIn ( [ 'list' , data . get ( 'fromListIndex' ) , 'card' ] ) . indexOf ( data . get ( 'index' ) ) ] )
29
- . setIn ( [ 'list' , data . get ( 'toListIndex' ) , 'card' ] , data . get ( 'new' ) )
17
+ [ actions . moveCard ] : ( state , data ) => {
18
+ const sourcePos = state . getIn ( [ 'list' , data . get ( 'fromList' ) , 'card' ] ) . indexOf ( data . get ( 'index' ) )
19
+ let insertPos = state . getIn ( [ 'list' , data . get ( 'toList' ) , 'card' ] ) . indexOf ( data . get ( 'hoverIndex' ) )
20
+ if ( ! data . get ( 'upFlag' ) ) {
21
+ insertPos ++
22
+ }
23
+ const newState = state . deleteIn ( [ 'list' , data . get ( 'fromList' ) , 'card' , sourcePos ] )
24
+ const rawCard = newState . getIn ( [ 'list' , data . get ( 'toList' ) , 'card' ] )
25
+ return newState . setIn ( [ 'list' , data . get ( 'toList' ) , 'card' ] , rawCard . splice ( insertPos , 0 , data . get ( 'index' ) ) )
26
+ }
27
+
30
28
} , initialState )
0 commit comments