/** * Combine all reducers in this file and export the combined reducers. */ import { reducer as form } from 'redux-form/immutable'; import { combineReducers } from 'redux-immutable'; import { connectRouter } from 'connected-react-router/immutable'; import history from 'utils/history'; import languageProviderReducer from 'containers/LanguageProvider/reducer'; import login from './modules/login'; import uiReducer from './modules/ui'; import treeTable from './modules/treeTable'; import crudTable from './modules/crudTable'; import crudTableForm from './modules/crudTableForm'; import socmed from './modules/socialMedia'; import ecommerce from './modules/ecommerce'; import contact from './modules/contact'; import chat from './modules/chat'; import email from './modules/email'; import calendar from './modules/calendar'; import initval from './modules/initForm'; //Odipar import pedido from './modules/pedido'; import message from './modules/message' import almacen from './modules/almacen'; /** * Branching reducers to use one reducer for many components */ function branchReducer(reducerFunction, reducerName) { return (state, action) => { const { branch } = action; const isInitializationCall = state === undefined; if (branch !== reducerName && !isInitializationCall) { return state; } return reducerFunction(state, action); }; } /** * Creates the main reducer with the dynamically injected ones */ export default function createReducer(injectedReducers) { const rootReducer = combineReducers({ form, ui: uiReducer, initval, login, socmed, calendar, ecommerce, contact, chat, email, treeTableArrow: branchReducer(treeTable, 'treeTableArrow'), treeTablePM: branchReducer(treeTable, 'treeTablePM'), crudTableDemo: branchReducer(crudTable, 'crudTableDemo'), crudTableForm, crudTbFrmDemo: branchReducer(crudTableForm, 'crudTbFrmDemo'), crudPedido: branchReducer(crudTableForm, 'crudPedido'), crudAlmacen: branchReducer(crudTableForm, 'crudAlmacen'), pedido, almacen, message, language: languageProviderReducer, router: connectRouter(history), ...injectedReducers, }); // Wrap the root reducer and return a new root reducer with router state const mergeWithRouterState = connectRouter(history); return mergeWithRouterState(rootReducer); }