You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ga...@apache.org on 2017/02/20 10:30:52 UTC

fauxton commit: updated refs/heads/master to 1b85d7b

Repository: couchdb-fauxton
Updated Branches:
  refs/heads/master 09c82fca3 -> 1b85d7b32


Improve the way redux reducers are handled


Project: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/commit/1b85d7b3
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/tree/1b85d7b3
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/diff/1b85d7b3

Branch: refs/heads/master
Commit: 1b85d7b32ddf4a0fe02d221646beec5b9bce4239
Parents: 09c82fc
Author: Tim Pinington <ti...@gmail.com>
Authored: Tue Feb 14 14:39:32 2017 +0000
Committer: Garren Smith <ga...@gmail.com>
Committed: Mon Feb 20 12:30:15 2017 +0200

----------------------------------------------------------------------
 .babelrc                                          |  2 +-
 .eslintrc                                         |  3 ++-
 .../permissions/__tests__/container-test.js       |  4 ++--
 app/addons/permissions/base.js                    |  6 ++++--
 .../permissions/container/PermissionsContainer.js | 14 +++++++-------
 app/core/base.js                                  | 11 ++++++++++-
 app/main.js                                       | 18 ++----------------
 package.json                                      |  1 +
 8 files changed, 29 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/1b85d7b3/.babelrc
----------------------------------------------------------------------
diff --git a/.babelrc b/.babelrc
index 539cd51..a4555d2 100644
--- a/.babelrc
+++ b/.babelrc
@@ -3,5 +3,5 @@
     "react",
     "es2015"
   ],
-  "plugins": ["transform-object-assign"]
+  "plugins": ["transform-object-assign", "transform-object-rest-spread"]
 }

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/1b85d7b3/.eslintrc
----------------------------------------------------------------------
diff --git a/.eslintrc b/.eslintrc
index 0ff1456..f71d8da 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -35,7 +35,8 @@
   "parserOptions": {
     "sourceType": "module",
     "ecmaFeatures": {
-      "jsx": true
+      "jsx": true,
+      "experimentalObjectRestSpread": true
     }
   },
 

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/1b85d7b3/app/addons/permissions/__tests__/container-test.js
----------------------------------------------------------------------
diff --git a/app/addons/permissions/__tests__/container-test.js b/app/addons/permissions/__tests__/container-test.js
index c96b08a..1f9a0fd 100644
--- a/app/addons/permissions/__tests__/container-test.js
+++ b/app/addons/permissions/__tests__/container-test.js
@@ -15,7 +15,7 @@ import { receivedPermissions } from '../actions';
 import React from 'react';
 import { mount } from 'enzyme';
 
-import { createStore, applyMiddleware } from 'redux';
+import { createStore, applyMiddleware, combineReducers } from 'redux';
 
 import thunk from 'redux-thunk';
 import { Provider } from 'react-redux';
@@ -33,7 +33,7 @@ describe('Permissions Container', () => {
 
     const middlewares = [thunk];
     const store = createStore(
-      reducer,
+      combineReducers({ permissions: reducer}),
       applyMiddleware(...middlewares)
     );
 

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/1b85d7b3/app/addons/permissions/base.js
----------------------------------------------------------------------
diff --git a/app/addons/permissions/base.js b/app/addons/permissions/base.js
index 0efe12b..c02fbba 100644
--- a/app/addons/permissions/base.js
+++ b/app/addons/permissions/base.js
@@ -12,11 +12,13 @@
 
 import FauxtonAPI from "../../core/api";
 import Permissions from "./routes";
-import reducer from './reducers';
+import reducers from './reducers';
 import "./assets/less/permissions.less";
 
 Permissions.initialize = function () {};
 
-FauxtonAPI.reducers.push(reducer);
+FauxtonAPI.addReducers({
+  permissions: reducers
+});
 
 export default Permissions;

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/1b85d7b3/app/addons/permissions/container/PermissionsContainer.js
----------------------------------------------------------------------
diff --git a/app/addons/permissions/container/PermissionsContainer.js b/app/addons/permissions/container/PermissionsContainer.js
index 0360ee7..f5cbcaf 100644
--- a/app/addons/permissions/container/PermissionsContainer.js
+++ b/app/addons/permissions/container/PermissionsContainer.js
@@ -24,14 +24,14 @@ import {
 } from '../reducers';
 
 
-const mapStateToProps = (state) => {
+const mapStateToProps = ({permissions}) => {
   return {
-    isLoading: getIsLoading(state),
-    adminRoles: getAdminRoles(state),
-    adminNames: getAdminNames(state),
-    memberNames: getMemberNames(state),
-    memberRoles: getMemberRoles(state),
-    security: getSecurity(state)
+    isLoading: getIsLoading(permissions),
+    adminRoles: getAdminRoles(permissions),
+    adminNames: getAdminNames(permissions),
+    memberNames: getMemberNames(permissions),
+    memberRoles: getMemberRoles(permissions),
+    security: getSecurity(permissions)
   };
 };
 

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/1b85d7b3/app/core/base.js
----------------------------------------------------------------------
diff --git a/app/core/base.js b/app/core/base.js
index 00e4f19..0f8cfeb 100644
--- a/app/core/base.js
+++ b/app/core/base.js
@@ -12,6 +12,7 @@
 
 import Backbone from "backbone";
 import _ from "lodash";
+
 var FauxtonAPI = {
   //add default objects
   router: {
@@ -157,6 +158,14 @@ FauxtonAPI.setSession = function (newSession) {
   return FauxtonAPI.session.fetchUser();
 };
 
-FauxtonAPI.reducers = [];
+FauxtonAPI.reducers = {};
+
+
+FauxtonAPI.addReducers = (reducers) => {
+  FauxtonAPI.reducers = {
+    ...FauxtonAPI.reducers,
+    ...reducers
+  };
+};
 
 export default FauxtonAPI;

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/1b85d7b3/app/main.js
----------------------------------------------------------------------
diff --git a/app/main.js b/app/main.js
index 5cf474a..d14e974 100644
--- a/app/main.js
+++ b/app/main.js
@@ -19,7 +19,7 @@ import Backbone from 'backbone';
 import $ from 'jquery';
 import AppWrapper from './addons/fauxton/appwrapper';
 
-import { createStore, applyMiddleware } from 'redux';
+import { createStore, applyMiddleware, combineReducers } from 'redux';
 import thunk from 'redux-thunk';
 import { Provider } from 'react-redux';
 
@@ -57,24 +57,10 @@ $(document).on("click", "a:not([data-bypass])", function (evt) {
   }
 });
 
-function getReducers (r) {
-
-  if (!r.length) {
-    return function () {};
-  }
-
-  return FauxtonAPI.reducers.reduce((el, acc) => {
-    acc[el] = el;
-    return acc;
-  }, {});
-}
-
-const reducer = getReducers(FauxtonAPI.reducers);
-
 const middlewares = [thunk];
 
 const store = createStore(
-  reducer,
+  combineReducers(FauxtonAPI.reducers),
   applyMiddleware(...middlewares)
 );
 

http://git-wip-us.apache.org/repos/asf/couchdb-fauxton/blob/1b85d7b3/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 95f568b..781e34d 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
   },
   "devDependencies": {
     "babel-jest": "^18.0.0",
+    "babel-plugin-transform-object-rest-spread": "^6.23.0",
     "bootstrap": "^3.3.7",
     "enzyme": "^2.7.1",
     "es5-shim": "4.5.4",