From f55700b4ffb9f1620c9ff8e838d7db51810812bb Mon Sep 17 00:00:00 2001 From: SleepWalker Date: Sat, 9 Sep 2017 21:01:02 +0300 Subject: [PATCH] #305: integrate with redux dev tools browser extention and remove redux-devtools --- package-lock.json | 142 ------------------------------------- package.json | 3 - src/containers/DevTools.js | 24 ------- src/pages/root/RootPage.js | 17 +---- src/storeFactory.js | 10 ++- 5 files changed, 10 insertions(+), 186 deletions(-) delete mode 100644 src/containers/DevTools.js diff --git a/package-lock.json b/package-lock.json index 6c25fbe..cd026ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1513,12 +1513,6 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "base16": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz", - "integrity": "sha1-4pf2DX7BAUp6lxo568ipjAtoHnA=", - "dev": true - }, "base64-arraybuffer": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", @@ -6449,21 +6443,6 @@ "lodash._isiterateecall": "3.0.9" } }, - "lodash.curry": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz", - "integrity": "sha1-JI42By7ekGUB11lmIAqG2riyMXA=", - "dev": true - }, - "lodash.debounce": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz", - "integrity": "sha1-gSIRw3ipTMKdWqTjNGzwv846ffU=", - "dev": true, - "requires": { - "lodash._getnative": "3.9.1" - } - }, "lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", @@ -6482,12 +6461,6 @@ "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", "dev": true }, - "lodash.flow": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", - "integrity": "sha1-h79AKSuM+D5OjOGjrkIJ4gBxZ1o=", - "dev": true - }, "lodash.foreach": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", @@ -7791,12 +7764,6 @@ "error-ex": "1.3.1" } }, - "parse-key": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/parse-key/-/parse-key-0.2.1.tgz", - "integrity": "sha1-e892WVU242B1Zkvk1ofkvdkQII8=", - "dev": true - }, "parse5": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", @@ -8726,12 +8693,6 @@ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, - "pure-color": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz", - "integrity": "sha1-H+Bk+wrIUfDeYTIKi/eWg2Qi8z4=", - "dev": true - }, "q": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", @@ -8898,34 +8859,12 @@ "integrity": "sha1-Bi02EX/o0Y87peBuszODsLhepbk=", "dev": true }, - "react-base16-styling": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.5.3.tgz", - "integrity": "sha1-OFjyTpxN2MvT9wLz901YHKKRcmk=", - "dev": true, - "requires": { - "base16": "1.0.0", - "lodash.curry": "4.1.1", - "lodash.flow": "3.5.0", - "pure-color": "1.3.0" - } - }, "react-deep-force-update": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-1.0.1.tgz", "integrity": "sha1-+RG1vh0qb+OHUH3W6adnqikktMc=", "dev": true }, - "react-dock": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/react-dock/-/react-dock-0.2.4.tgz", - "integrity": "sha1-5yfcdVCztzEWY13LnA4E0Lev4Xw=", - "dev": true, - "requires": { - "lodash.debounce": "3.1.1", - "prop-types": "15.5.10" - } - }, "react-dom": { "version": "15.6.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.1.tgz", @@ -8969,17 +8908,6 @@ } } }, - "react-json-tree": { - "version": "0.10.9", - "resolved": "https://registry.npmjs.org/react-json-tree/-/react-json-tree-0.10.9.tgz", - "integrity": "sha1-cmMXOizIvwXqxjsEGcPOdbIy4oQ=", - "dev": true, - "requires": { - "babel-runtime": "6.25.0", - "prop-types": "15.5.10", - "react-base16-styling": "0.5.3" - } - }, "react-motion": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.5.0.tgz", @@ -9000,12 +8928,6 @@ "react-deep-force-update": "1.0.1" } }, - "react-pure-render": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/react-pure-render/-/react-pure-render-1.0.2.tgz", - "integrity": "sha1-nYqSjH8sN1E8LQZOV7Pjw1bp+rs=", - "dev": true - }, "react-redux": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.6.tgz", @@ -9261,70 +9183,6 @@ "symbol-observable": "1.0.4" } }, - "redux-devtools": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/redux-devtools/-/redux-devtools-3.4.0.tgz", - "integrity": "sha1-m/hBUVQwH1aQbyajb1vB9cqRO7U=", - "dev": true, - "requires": { - "lodash": "4.17.4", - "prop-types": "15.5.10", - "redux-devtools-instrument": "1.8.2" - } - }, - "redux-devtools-dock-monitor": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/redux-devtools-dock-monitor/-/redux-devtools-dock-monitor-1.1.2.tgz", - "integrity": "sha1-6yE6Ah+MJbiS9smL24c2hhXj0gE=", - "dev": true, - "requires": { - "babel-runtime": "6.25.0", - "parse-key": "0.2.1", - "prop-types": "15.5.10", - "react-dock": "0.2.4", - "react-pure-render": "1.0.2" - } - }, - "redux-devtools-instrument": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/redux-devtools-instrument/-/redux-devtools-instrument-1.8.2.tgz", - "integrity": "sha1-XpHP5ALnkNrj/S8NI197fYSwn/4=", - "dev": true, - "requires": { - "lodash": "4.17.4", - "symbol-observable": "1.0.4" - } - }, - "redux-devtools-log-monitor": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/redux-devtools-log-monitor/-/redux-devtools-log-monitor-1.3.0.tgz", - "integrity": "sha1-LeDKHXCNogi8pknsdBAwIwNszjk=", - "dev": true, - "requires": { - "lodash.debounce": "4.0.8", - "prop-types": "15.5.10", - "react-json-tree": "0.10.9", - "react-pure-render": "1.0.2", - "redux-devtools-themes": "1.0.0" - }, - "dependencies": { - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - } - } - }, - "redux-devtools-themes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redux-devtools-themes/-/redux-devtools-themes-1.0.0.tgz", - "integrity": "sha1-xILc48U3OXYEX0ATSQfZ3LOuPV0=", - "dev": true, - "requires": { - "base16": "1.0.0" - } - }, "redux-localstorage": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/redux-localstorage/-/redux-localstorage-0.4.1.tgz", diff --git a/package.json b/package.json index 48efafe..def47a9 100644 --- a/package.json +++ b/package.json @@ -97,9 +97,6 @@ "react-addons-perf": "^15.3.0", "react-addons-test-utils": "^15.0.2", "react-test-renderer": "^15.5.4", - "redux-devtools": "^3.3.1", - "redux-devtools-dock-monitor": "^1.1.1", - "redux-devtools-log-monitor": "^1.0.11", "sass-loader": "^4.0.0", "scripts": "file:./scripts", "sinon": "^3.2.1", diff --git a/src/containers/DevTools.js b/src/containers/DevTools.js deleted file mode 100644 index b072cfd..0000000 --- a/src/containers/DevTools.js +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; - -// Exported from redux-devtools -import { createDevTools } from 'redux-devtools'; - -// Monitors are separate packages, and you can make a custom one -import LogMonitor from 'redux-devtools-log-monitor'; -import DockMonitor from 'redux-devtools-dock-monitor'; - -// createDevTools takes a monitor and produces a DevTools component -const DevTools = createDevTools( - // Monitors are individually adjustable with props. - // Consult their repositories to learn about those props. - // Here, we put LogMonitor inside a DockMonitor. - // Note: DockMonitor is visible by default. - - - -); - -export default DevTools; diff --git a/src/pages/root/RootPage.js b/src/pages/root/RootPage.js index a939e49..48ab7ec 100644 --- a/src/pages/root/RootPage.js +++ b/src/pages/root/RootPage.js @@ -1,6 +1,8 @@ // @flow import React, { Component } from 'react'; - +import { connect } from 'react-redux'; +import { resetAuth } from 'components/auth/actions'; +import { withRouter } from 'react-router'; import { FormattedMessage as Message } from 'react-intl'; import { Route, Link, Switch } from 'react-router-dom'; import Helmet from 'react-helmet'; @@ -22,14 +24,6 @@ import type { User } from 'components/user'; import styles from './root.scss'; import messages from './RootPage.intl.json'; -/* global process: false */ -let DevTools; -if (process.env.NODE_ENV === 'production') { - DevTools = () => null; -} else { - DevTools = require('containers/DevTools').default; -} - class RootPage extends Component<{ user: User, isPopupActive: bool, @@ -92,16 +86,11 @@ class RootPage extends Component<{ - ); } } -import { connect } from 'react-redux'; -import { resetAuth } from 'components/auth/actions'; -import { withRouter } from 'react-router'; - export default withRouter(connect((state) => ({ user: state.user, isPopupActive: state.popup.popups.length > 0 diff --git a/src/storeFactory.js b/src/storeFactory.js index 7167bbb..0905445 100644 --- a/src/storeFactory.js +++ b/src/storeFactory.js @@ -1,3 +1,4 @@ +// @flow import { createStore, applyMiddleware, compose } from 'redux'; // midleware, который позволяет возвращать из экшенов функции // это полезно для работы с асинхронными действиями, @@ -22,14 +23,17 @@ export default function storeFactory() { if (process.env.NODE_ENV === 'production') { enhancer = compose(middlewares, persistStateEnhancer); } else { - const DevTools = require('containers/DevTools').default; - enhancer = compose(middlewares, persistStateEnhancer, DevTools.instrument()); + const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; + enhancer = composeEnhancers( + middlewares, + persistStateEnhancer + ); } const store = createStore(reducers, {}, enhancer); // Hot reload reducers - if (module.hot) { + if (module.hot && typeof module.hot.accept === 'function') { module.hot.accept('reducers', () => store.replaceReducer(require('reducers').default) );