// import polyfill import 'babel-polyfill'; // inject tap event plugin import injectTapEventPlugin from 'react-tap-event-plugin'; injectTapEventPlugin(); // create store import { createStore, combineReducers, compose, applyMiddleware } from 'redux'; import thunkMiddleware from 'redux-thunk'; import promiseMiddleware from 'redux-promise-middleware'; import { createLogger } from 'redux-logger'; const reducer = combineReducers({ sketcher: sketcherReducer }); const enhancer = compose(applyMiddleware(thunkMiddleware, promiseMiddleware(), createLogger({ collapsed: true }))); const store = createStore(reducer, enhancer); // prepare html (SHOULDN'T BE DONE LIKE THIS) document.body.style.margin = 0; document.body.style.padding = 0; document.body.style.height = '100%'; document.documentElement.style.height = '100%'; document.documentElement.style.overflow = 'hidden'; document.getElementById('app').style.height = '100%'; import * as actions from './src/actions/index.js'; import JSONToSketchData from './src/shape/JSONToSketchData.js'; window.addEventListener('drop', async (event) => { console.log(event); event.preventDefault(); for (const file of event.dataTransfer.files) { const [name, ...extentions] = file.name.split('.'); switch (extentions.pop().toUpperCase()) { case 'D3SKETCH': case 'JSON': const url = URL.createObjectURL(file); const data = await fetch(url).then(result => result.json()); const sketchData = await JSONToSketchData(data); store.dispatch(actions.openSketch({data:sketchData})); break; case 'JPG': case 'JPEG': case 'PNG': case 'GIF': await store.dispatch(actions.addImage(file)); break; default: break; } } }); window.addEventListener('dragover', (event) => { event.preventDefault(); }); // render dom import React from 'react'; import { Provider } from 'react-redux'; import { render } from 'react-dom'; import App from './src/components/App.js'; import sketcherReducer from './src/reducer/index.js'; render(( ), document.getElementById('app')); import actionWrapper from 'redux-action-wrapper'; import * as actions from './src/actions/index.js'; window.actions = actionWrapper(actions, store.dispatch);