UNPKG

wix-style-react

Version:
44 lines 1.44 kB
import React from 'react'; import PropTypes from 'prop-types'; import TouchBackend from './TouchBackend'; import { DndProvider, createDndContext } from 'react-dnd'; let defaultManager; function getDefaultManager(backend) { if (!defaultManager) { defaultManager = createDndContext(backend, {}, { enableMouseEvents: true, }).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)); } getChildContext() { return { dragDropManager: this.getManager(), }; } render() { const { backend, children } = this.props; return (React.createElement(DndProvider, { manager: this.getManager(backend) }, children)); } } DragDropContextProvider.propTypes = { children: PropTypes.node, backend: PropTypes.func, }; DragDropContextProvider.defaultProps = { backend: TouchBackend, }; DragDropContextProvider.contextTypes = { dragDropManager: PropTypes.object, }; DragDropContextProvider.childContextTypes = { dragDropManager: PropTypes.object, }; export default DragDropContextProvider; //# sourceMappingURL=DragDropContextProvider.js.map