diff --git a/.babelrc b/.babelrc index 2845eb1..4575b70 100644 --- a/.babelrc +++ b/.babelrc @@ -6,7 +6,8 @@ } }], "react", - "stage-0" + "stage-0", + "flow" ], "env": { "development": { diff --git a/.eslintrc b/.eslintrc index 0c9970d..8b6da38 100644 --- a/.eslintrc +++ b/.eslintrc @@ -8,7 +8,8 @@ "__CONFIG__": true, "__ENV__": true }, - "extends": "airbnb", + "extends": ["airbnb"], + "plugins": ["flowtype", "react"], "parser": "babel-eslint", "parserOptions": { "ecmaFeatures": { diff --git a/package.json b/package.json index dc958ff..25d87c2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-redux-boilerplate", - "version": "1.2.2", + "version": "1.2.4", "description": "React Redux Boilerplate is a workflow boilerplate that make life easier for developers by providing a virtual development environment and production ready build process framework out of the box.", "scripts": { "dev": "cross-env NODE_ENV=development DASHBOARD_PORT=9901 webpack-dashboard -p 9901 -c red -t dashboard -- node bin/commands.js dev", @@ -22,81 +22,83 @@ "node": ">=6.9.0" }, "devDependencies": { - "assets-webpack-plugin": "^3.5.1", + "assets-webpack-plugin": "^3.9.7", "babel-cli": "^6.26.0", - "babel-core": "^6.26.0", + "babel-core": "^6.26.3", "babel-eslint": "^10.0.1", - "babel-jest": "^23.4.0", + "babel-jest": "^24.1.0", "babel-loader": "^7.1.2", "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-plugin-transform-decorators-legacy": "^1.3.4", + "babel-plugin-transform-decorators-legacy": "^1.3.5", "babel-plugin-transform-runtime": "^6.23.0", "babel-plugin-typecheck": "^3.9.0", "babel-polyfill": "^6.26.0", - "babel-preset-env": "^1.6.1", + "babel-preset-env": "^1.7.0", + "babel-preset-flow": "^6.23.0", "babel-preset-react": "^6.24.1", "babel-preset-react-hmre": "^1.1.1", "babel-preset-react-optimize": "^1.0.1", "babel-preset-stage-0": "^6.24.1", "babel-register": "^6.26.0", "babel-runtime": "^6.26.0", - "browser-sync": "^2.23.5", + "browser-sync": "^2.26.3", "browser-sync-webpack-plugin": "^2.2.2", - "case-sensitive-paths-webpack-plugin": "^2.1.1", - "colors": "^1.1.2", - "concurrently": "^4.0.1", - "config": "^2.0.1", - "cross-env": "^5.1.3", - "css-loader": "^1.0.0", - "debug": "^4.1.0", - "dotenv": "^6.0.0", - "enzyme": "^3.3.0", - "enzyme-adapter-react-16": "^1.1.1", - "eslint": "^5.1.0", - "eslint-config-airbnb": "^17.0.0", + "case-sensitive-paths-webpack-plugin": "^2.2.0", + "colors": "^1.3.3", + "concurrently": "^4.1.0", + "config": "^3.0.1", + "cross-env": "^5.2.0", + "css-loader": "^2.1.0", + "debug": "^4.1.1", + "dotenv": "^6.2.0", + "enzyme": "^3.9.0", + "enzyme-adapter-react-16": "^1.9.1", + "eslint": "^5.12.0", + "eslint-config-airbnb": "^17.1.0", "eslint-friendly-formatter": "^4.0.1", - "eslint-plugin-import": "^2.8.0", - "eslint-plugin-jsx-a11y": "^6.0.3", - "eslint-plugin-react": "^7.5.1", - "file-loader": "^2.0.0", + "eslint-plugin-flowtype": "^3.4.2", + "eslint-plugin-import": "^2.16.0", + "eslint-plugin-jsx-a11y": "^6.2.1", + "eslint-plugin-react": "^7.12.4", + "file-loader": "^3.0.1", "html-webpack-plugin": "^3.2.0", - "husky": "^1.1.2", + "husky": "^1.3.1", "identity-obj-proxy": "^3.0.0", - "image-webpack-loader": "^4.3.1", - "jest-cli": "^23.4.1", - "mini-css-extract-plugin": "^0.4.4", + "image-webpack-loader": "^4.6.0", + "jest-cli": "^24.1.0", + "mini-css-extract-plugin": "^0.5.0", "postcss-loader": "^3.0.0", - "postcss-preset-env": "^6.2.0", - "precss": "^3.1.2", - "raf": "^3.4.0", - "react-hot-loader": "^4.3.3", - "react-test-renderer": "^16.2.0", - "rimraf": "^2.6.2", - "shelljs": "^0.8.0", + "postcss-preset-env": "^6.5.0", + "precss": "^4.0.0", + "raf": "^3.4.1", + "react-hot-loader": "^4.7.1", + "react-test-renderer": "^16.8.3", + "rimraf": "^2.6.3", + "shelljs": "^0.8.3", "style-loader": "^0.23.1", - "url-loader": "^1.0.1", - "webpack": "^4.16.0", - "webpack-bundle-analyzer": "^3.0.3", - "webpack-cli": "^3.1.2", - "webpack-dashboard": "^2.0.0", - "webpack-dev-server": "^3.1.4", - "webpack-s3-plugin": "^1.0.0-rc.0" + "url-loader": "^1.1.2", + "webpack": "^4.29.5", + "webpack-bundle-analyzer": "^3.0.4", + "webpack-cli": "^3.2.3", + "webpack-dashboard": "^3.0.0", + "webpack-dev-server": "^3.2.1", + "webpack-s3-plugin": "^1.0.3" }, "dependencies": { "history": "^4.7.2", - "immutable": "^3.8.2", - "prop-types": "^15.6.2", - "react": "^16.6.0", - "react-dom": "^16.6.0", + "immutable": "^4.0.0-rc.12", + "prop-types": "^15.7.2", + "react": "^16.8.3", + "react-dom": "^16.8.3", "react-helmet": "^5.2.0", - "react-loadable": "^5.3.1", - "react-redux": "^5.1.0", + "react-loadable": "^5.5.0", + "react-redux": "^6.0.1", "react-router": "^4.3.1", - "react-router-dom": "^4.2.2", + "react-router-dom": "^4.3.1", "react-router-redux": "^4.0.8", "redux": "^4.0.1", - "redux-actions": "^2.6.3", - "redux-saga": "^0.16.0", + "redux-actions": "^2.6.4", + "redux-saga": "^1.0.1", "reselect": "^4.0.0" }, "jest": { diff --git a/src/js/common/components/Example/Example.jsx b/src/js/common/components/Example/Example.jsx index d613b46..269dbeb 100644 --- a/src/js/common/components/Example/Example.jsx +++ b/src/js/common/components/Example/Example.jsx @@ -41,23 +41,21 @@ class Example extends PureComponent { render() { const { example } = this.props; - const result = example && example.result ? example.result : null; + const { result } = example; - if (result && result.size && result.size > 0) { + if (result) { return (

Let's Get - Started + Started

If you see this screen, it means you are all setup \o/

The following JSON are showing contents coming from Redux, Saga and Config.

-            {JSON.stringify(result.toJS(), undefined, 2)}
+            {JSON.stringify(result, undefined, 2)}
           
- - ); } return
; diff --git a/src/js/views/example/View.jsx b/src/js/views/example/View.jsx index 77482a9..ab502d7 100644 --- a/src/js/views/example/View.jsx +++ b/src/js/views/example/View.jsx @@ -8,8 +8,6 @@ import { exampleSelector } from '../../redux/selectors/exampleSelector' import { ExampleWithError } from '../../common/components/Example' import { ErrorBoundary } from '../../common/components/Utilities' -require('../../../style/index.css') - const LazyExample = LazyLoading(() => import('../../common/components/Example/Example')) const mapStateToProps = (state) => ({