UNPKG

react-url-query

Version:

A library for managing state through query parameters in the URL in React. Works well with or without Redux and React Router.

47 lines (38 loc) 1.9 kB
'use strict'; exports.__esModule = 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; }