Files
coopgo/node_modules/dnd-core/lib/reducers/dragOffset.js
sgauthier 6e64e138e2
All checks were successful
Publish To Prod / deploy_and_publish (push) Successful in 35s
planning
2024-10-14 09:15:30 +02:00

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;
}
}