Skip to content

Instantly share code, notes, and snippets.

@nihaux
Created September 18, 2016 14:29
Show Gist options
  • Save nihaux/0ac0d5e4e7bdc82be78bcb83cbc2fd9e to your computer and use it in GitHub Desktop.
Save nihaux/0ac0d5e4e7bdc82be78bcb83cbc2fd9e to your computer and use it in GitHub Desktop.
redux-little-router quick&dirty patch immutable js
return function (createStore) {
return function (reducer, initialState, enhancer) {
var enhancedReducer = function enhancedReducer(state, action) {
//immutable
var vanillaState = state.delete('router');
var newState = reducer(vanillaState, action);
// Support redux-loop
if (Array.isArray(newState)) {
var nextState = newState[0]; // eslint-disable-line no-magic-numbers
var nextEffects = newState[1]; // eslint-disable-line no-magic-numbers
return [_extends({}, nextState, {
router: (0, _reducer2.default)(state && state.router, action)
}), nextEffects];
}
//immutable
return newState.set('router', (0, _reducer2.default)(state && state.get('router'), action));
};
//immutable
var store = createStore(enhancedReducer, pathname || query ? initialState.set('router',
(0, _initialRouterState2.default)({
pathname: pathname, query: query || {}, routes: routes, history: history
})
) : initialState, enhancer);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment