49 lines
1.9 KiB
JavaScript
49 lines
1.9 KiB
JavaScript
'use strict';
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = urlQueryReducer;
|
|
|
|
var _updateUrlQueryFromAction = require('./updateUrlQueryFromAction');
|
|
|
|
var _UrlUpdateTypes = require('../UrlUpdateTypes');
|
|
|
|
var _UrlUpdateTypes2 = _interopRequireDefault(_UrlUpdateTypes);
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
/**
|
|
* Reducer that handles actions that modify the URL query parameters.
|
|
* In this case, the actions replace a single query parameter at a time.
|
|
*
|
|
* NOTE: This is *NOT* a Redux reducer. It does not map from (state, action) -> state.
|
|
* Instead it "reduces" actions into URL query parameter state. NOT redux state.
|
|
*/
|
|
function urlQueryReducer(action, location) {
|
|
var updateType = action && action.meta && action.meta.updateType;
|
|
|
|
switch (updateType) {
|
|
case _UrlUpdateTypes2.default.replaceIn:
|
|
return (0, _updateUrlQueryFromAction.replaceInUrlQueryFromAction)(action, location);
|
|
case _UrlUpdateTypes2.default.replace:
|
|
return (0, _updateUrlQueryFromAction.replaceUrlQueryFromAction)(action, location);
|
|
case _UrlUpdateTypes2.default.multiReplaceIn:
|
|
return (0, _updateUrlQueryFromAction.multiReplaceInUrlQueryFromAction)(action, location);
|
|
case _UrlUpdateTypes2.default.pushIn:
|
|
return (0, _updateUrlQueryFromAction.pushInUrlQueryFromAction)(action, location);
|
|
case _UrlUpdateTypes2.default.push:
|
|
return (0, _updateUrlQueryFromAction.pushUrlQueryFromAction)(action, location);
|
|
case _UrlUpdateTypes2.default.multiPushIn:
|
|
return (0, _updateUrlQueryFromAction.multiPushInUrlQueryFromAction)(action, location);
|
|
default:
|
|
break;
|
|
}
|
|
|
|
if (process.env.NODE_ENV === 'development') {
|
|
console.warn('urlQueryReducer encountered unhandled action.meta.updateType ' + updateType + '.', // eslint-disable-line no-console
|
|
'action =', action);
|
|
}
|
|
|
|
return undefined;
|
|
} |