UNPKG

@wix/design-system

Version:

@wix/design-system

42 lines 1.39 kB
import React from 'react'; import TouchBackend from './TouchBackend'; import { DndProvider, createDndContext } from 'react-dnd'; let defaultManager; function getDefaultManager(backend, options = {}) { if (!defaultManager) { defaultManager = createDndContext(backend, {}, { enableMouseEvents: true, ...options, }).dragDropManager; } return defaultManager; } // https://github.com/react-dnd/react-dnd/issues/186#issuecomment-110333064 class DragDropContextProvider extends React.Component { // we add `manager` to instance to allow to manipulate d&d in tests getManager() { return (this.context.dragDropManager || getDefaultManager(this.props.backend, this.props.backendOptions)); } getChildContext() { return { dragDropManager: this.getManager(), }; } render() { const { backend, children } = this.props; return (React.createElement(DndProvider, { manager: this.getManager(backend) }, children)); } } DragDropContextProvider.defaultProps = { backend: TouchBackend, backendOptions: {}, }; DragDropContextProvider.contextTypes = { dragDropManager: () => null, }; DragDropContextProvider.childContextTypes = { dragDropManager: () => null, }; export default DragDropContextProvider; //# sourceMappingURL=DragDropContextProvider.js.map