react-router
Version:
A complete routing library for React
37 lines (28 loc) • 1.66 kB
JavaScript
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
import { canUseMembrane } from './deprecateObjectProperties';
import warning from './routerWarning';
export default function makeStateWithLocation(state, location) {
if (process.env.NODE_ENV !== 'production' && canUseMembrane) {
var stateWithLocation = _extends({}, state);
// I don't use deprecateObjectProperties here because I want to keep the
// same code path between development and production, in that we just
// assign extra properties to the copy of the state object in both cases.
var _loop = function _loop(prop) {
if (!Object.prototype.hasOwnProperty.call(location, prop)) {
return 'continue';
}
Object.defineProperty(stateWithLocation, prop, {
get: function get() {
process.env.NODE_ENV !== 'production' ? warning(false, 'Accessing location properties directly from the first argument to `getComponent`, `getComponents`, `getChildRoutes`, and `getIndexRoute` is deprecated. That argument is now the router state (`nextState` or `partialNextState`) rather than the location. To access the location, use `nextState.location` or `partialNextState.location`.') : void 0;
return location[prop];
}
});
};
for (var prop in location) {
var _ret = _loop(prop);
if (_ret === 'continue') continue;
}
return stateWithLocation;
}
return _extends({}, state, location);
}