UNPKG

@hello-pangea/dnd

Version:

Beautiful and accessible drag and drop for lists with React

22 lines (18 loc) 678 B
import { invariant } from '../../../invariant'; import { completeDrop, guard } from '../../action-creators'; import type { State } from '../../../types'; import type { Middleware } from '../../store-types'; const dropAnimationFinishMiddleware: Middleware = (store) => (next) => (action) => { if (!guard(action, '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 })); }; export default dropAnimationFinishMiddleware;