UNPKG

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
"use strict"; 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"];