All checks were successful
Publish To Prod / deploy_and_publish (push) Successful in 35s
33 lines
1020 B
JavaScript
33 lines
1020 B
JavaScript
import { INIT_COORDS, BEGIN_DRAG, HOVER, END_DRAG, DROP, } from '../actions/dragDrop';
|
|
import { areCoordsEqual } from '../utils/equality';
|
|
const initialState = {
|
|
initialSourceClientOffset: null,
|
|
initialClientOffset: null,
|
|
clientOffset: null,
|
|
};
|
|
export function reduce(state = initialState, action) {
|
|
const { payload } = action;
|
|
switch (action.type) {
|
|
case INIT_COORDS:
|
|
case BEGIN_DRAG:
|
|
return {
|
|
initialSourceClientOffset: payload.sourceClientOffset,
|
|
initialClientOffset: payload.clientOffset,
|
|
clientOffset: payload.clientOffset,
|
|
};
|
|
case HOVER:
|
|
if (areCoordsEqual(state.clientOffset, payload.clientOffset)) {
|
|
return state;
|
|
}
|
|
return {
|
|
...state,
|
|
clientOffset: payload.clientOffset,
|
|
};
|
|
case END_DRAG:
|
|
case DROP:
|
|
return initialState;
|
|
default:
|
|
return state;
|
|
}
|
|
}
|