UNPKG

qtsd-fork

Version:

Do not use this please

73 lines (70 loc) 1.34 kB
import without from 'lodash/without' import { BEGIN_DRAG, PUBLISH_DRAG_SOURCE, HOVER, END_DRAG, DROP, } from '../actions/dragDrop' import { REMOVE_TARGET } from '../actions/registry' const initialState = { itemType: null, item: null, sourceId: null, targetIds: [], dropResult: null, didDrop: false, isSourcePublic: null, } export default function dragOperation(state = initialState, action) { switch (action.type) { case BEGIN_DRAG: return { ...state, itemType: action.itemType, item: action.item, sourceId: action.sourceId, isSourcePublic: action.isSourcePublic, dropResult: null, didDrop: false, } case PUBLISH_DRAG_SOURCE: return { ...state, isSourcePublic: true, } case HOVER: return { ...state, targetIds: action.targetIds, } case REMOVE_TARGET: if (state.targetIds.indexOf(action.targetId) === -1) { return state } return { ...state, targetIds: without(state.targetIds, action.targetId), } case DROP: return { ...state, dropResult: action.dropResult, didDrop: true, targetIds: [], } case END_DRAG: return { ...state, itemType: null, item: null, sourceId: null, dropResult: null, didDrop: false, isSourcePublic: null, targetIds: [], } default: return state } }