react-router-4-compat
Version:
A wrapped version of react router 4 which compatible with react router 3
84 lines (65 loc) • 2.34 kB
JavaScript
;
exports.__esModule = true;
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _Switch = _interopRequireDefault(require("react-router/Switch"));
var _Router = _interopRequireDefault(require("react-router/Router"));
var _utils = require("./utils");
var _Route = require("./Route");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; }
var Router4Compat =
/*#__PURE__*/
function (_React$Component) {
function Router4Compat(props, context) {
var _this;
// noinspection JSCheckFunctionSignatures
_this = _React$Component.call(this, props, context) || this;
_this.routesUpdater = function (routes) {
_this.setState({
routes: routes
});
};
_this.state = {
routes: []
};
return _this;
}
var _proto = Router4Compat.prototype;
_proto.getChildContext = function getChildContext() {
return {
routesCompat: this.state.routes,
routesUpdater: this.routesUpdater
};
};
_proto.render = function render() {
var _this$props = this.props,
routes = _this$props.routes,
history = _this$props.history,
onError = _this$props.onError;
return _react.default.createElement(_Router.default, {
history: history
}, _react.default.createElement(_Switch.default, null, (0, _Route.createRoutes)((0, _utils.castArray)(routes), onError, [])));
};
_inheritsLoose(Router4Compat, _React$Component);
return Router4Compat;
}(_react.default.Component);
Router4Compat.propTypes = {
history: _propTypes.default.object.isRequired,
routes: _propTypes.default.oneOfType([_Route.RoutePropType, _propTypes.default.arrayOf(_Route.RoutePropType)]),
onError: _propTypes.default.func
};
Router4Compat.defaultProps = {
routes: [],
onError: function onError() {
return null;
}
};
Router4Compat.childContextTypes = {
routesCompat: _propTypes.default.arrayOf(_Route.RoutePropType),
routesUpdater: _propTypes.default.func
};
var _default = Router4Compat;
exports.default = _default;
module.exports = exports["default"];