scratch-www/src/redux/reducer.js
Benjamin Wheeler 935eb0b15f
move login/registration functions and view state to session reducer, pass to gui (#2078)
* move login/registration functions and view state to session reducer, pass to gui

* navigation reducer handles login; gui passed renderLogin function

* put back in join class to make smoke tests keep working
2018-09-24 11:04:30 -04:00

27 lines
1.1 KiB
JavaScript

const combineReducers = require('redux').combineReducers;
const defaults = require('lodash.defaults');
const messageCountReducer = require('./message-count.js').messageCountReducer;
const permissionsReducer = require('./permissions.js').permissionsReducer;
const sessionReducer = require('./session.js').sessionReducer;
const navigationReducer = require('./navigation.js').navigationReducer;
/**
* Returns a combined reducer to be used for a page in `render.jsx`.
* The reducers used globally are applied here - session and permissions
* - and any reducers specific to the page should be passed into
* `render()` as an object (which will then be passed to the function
* below).
* @param {object} opts key/value where the key is the name of the
* redux state, value is the reducer function.
* @return {object} combined reducer to be used in the redux store
*/
module.exports = opts => {
opts = opts || {};
return combineReducers(defaults(opts, {
messageCount: messageCountReducer,
navigation: navigationReducer,
permissions: permissionsReducer,
session: sessionReducer
}));
};