mirror of
https://github.com/strapi/strapi.git
synced 2025-08-08 16:59:21 +00:00

git-subtree-dir: packages/strapi-plugin-settings-manager git-subtree-mainline: 80aa83d8460c95366547e143c74bf79ea6ae69f8 git-subtree-split: cd241c14c6a6239bca279e7accd709ba58e87cc8
47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
/**
|
|
* Combine all reducers in this file and export the combined reducers.
|
|
* If we were to do this in store.js, reducers wouldn't be hot reloadable.
|
|
*/
|
|
|
|
import { combineReducers } from 'redux-immutable';
|
|
import { fromJS } from 'immutable';
|
|
import { LOCATION_CHANGE } from 'react-router-redux';
|
|
|
|
/*
|
|
* routeReducer
|
|
*
|
|
* The reducer merges route location changes into our immutable state.
|
|
* The change is necessitated by moving to react-router-redux@4
|
|
*
|
|
*/
|
|
|
|
// Initial routing state
|
|
const routeInitialState = fromJS({
|
|
locationBeforeTransitions: null,
|
|
});
|
|
|
|
/**
|
|
* Merge route into the global application state
|
|
*/
|
|
function routeReducer(state = routeInitialState, action) {
|
|
switch (action.type) {
|
|
/* istanbul ignore next */
|
|
case LOCATION_CHANGE:
|
|
return state.merge({
|
|
locationBeforeTransitions: action.payload,
|
|
});
|
|
default:
|
|
return state;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Creates the main reducer with the asynchronously loaded ones
|
|
*/
|
|
export default function createReducer(asyncReducers) {
|
|
return combineReducers({
|
|
route: routeReducer,
|
|
...asyncReducers,
|
|
});
|
|
}
|