UNPKG

1.31 kBJavaScriptView Raw
1import { DragDropManagerImpl } from './classes/DragDropManagerImpl';
2import { createStore } from 'redux';
3import { reduce } from './reducers';
4import { DragDropMonitorImpl } from './classes/DragDropMonitorImpl';
5import { HandlerRegistryImpl } from './classes/HandlerRegistryImpl';
6export function createDragDropManager(backendFactory) {
7 var globalContext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
8 var backendOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
9 var debugMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
10 var store = makeStoreInstance(debugMode);
11 var monitor = new DragDropMonitorImpl(store, new HandlerRegistryImpl(store));
12 var manager = new DragDropManagerImpl(store, monitor);
13 var backend = backendFactory(manager, globalContext, backendOptions);
14 manager.receiveBackend(backend);
15 return manager;
16}
17
18function makeStoreInstance(debugMode) {
19 // TODO: if we ever make a react-native version of this,
20 // we'll need to consider how to pull off dev-tooling
21 var reduxDevTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__;
22 return createStore(reduce, debugMode && reduxDevTools && reduxDevTools({
23 name: 'dnd-core',
24 instanceId: 'dnd-core'
25 }));
26}
\No newline at end of file