react-beautiful-dnd-next
Version:
Beautiful and accessible drag and drop for lists with React
24 lines (21 loc) • 654 B
JavaScript
// @flow
import invariant from 'tiny-invariant';
import { completeDrop } from '../action-creators';
import type { State } from '../../types';
import type { MiddlewareStore, Action, Dispatch } from '../store-types';
export default (store: MiddlewareStore) => (next: Dispatch) => (
action: Action,
): any => {
if (action.type !== 'DROP_ANIMATION_FINISHED') {
next(action);
return;
}
const state: State = store.getState();
invariant(
state.phase === 'DROP_ANIMATING',
'Cannot finish a drop animating when no drop is occurring',
);
store.dispatch(
completeDrop({ completed: state.completed, shouldFlush: false }),
);
};