react-router 5.0.0 → 5.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/react-router.js +102 -66
- package/cjs/react-router.js.map +1 -0
- package/cjs/react-router.min.js +2 -1
- package/cjs/react-router.min.js.map +1 -0
- package/esm/react-router.js +86 -52
- package/esm/react-router.js.map +1 -0
- package/modules/Lifecycle.js +21 -0
- package/modules/MemoryRouter.js +37 -0
- package/modules/Prompt.js +52 -0
- package/modules/Redirect.js +72 -0
- package/modules/Route.js +140 -0
- package/modules/Router.js +83 -0
- package/modules/RouterContext.js +12 -0
- package/modules/StaticRouter.js +102 -0
- package/modules/Switch.js +67 -0
- package/modules/generatePath.js +27 -0
- package/modules/hooks.js +54 -0
- package/modules/index.js +38 -0
- package/modules/matchPath.js +67 -0
- package/modules/withRouter.js +50 -0
- package/package.json +5 -30
- package/umd/react-router.js +580 -568
- package/umd/react-router.js.map +1 -0
- package/umd/react-router.min.js +2 -1
- package/umd/react-router.min.js.map +1 -0
package/cjs/react-router.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
6
4
|
|
|
7
|
-
var createContext = _interopDefault(require('create-react-context'));
|
|
8
5
|
var React = _interopDefault(require('react'));
|
|
9
6
|
var PropTypes = _interopDefault(require('prop-types'));
|
|
10
|
-
var warning = _interopDefault(require('tiny-warning'));
|
|
11
7
|
var history = require('history');
|
|
8
|
+
var warning = _interopDefault(require('tiny-warning'));
|
|
9
|
+
var createContext = _interopDefault(require('mini-create-react-context'));
|
|
12
10
|
var invariant = _interopDefault(require('tiny-invariant'));
|
|
13
11
|
var pathToRegexp = _interopDefault(require('path-to-regexp'));
|
|
14
12
|
var reactIs = require('react-is');
|
|
@@ -57,14 +55,13 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
|
57
55
|
|
|
58
56
|
var createNamedContext = function createNamedContext(name) {
|
|
59
57
|
var context = createContext();
|
|
60
|
-
context.
|
|
61
|
-
context.Consumer.displayName = name + ".Consumer";
|
|
58
|
+
context.displayName = name;
|
|
62
59
|
return context;
|
|
63
60
|
};
|
|
64
61
|
|
|
65
62
|
var context =
|
|
66
63
|
/*#__PURE__*/
|
|
67
|
-
createNamedContext(
|
|
64
|
+
createNamedContext("Router");
|
|
68
65
|
|
|
69
66
|
/**
|
|
70
67
|
* The public API for putting history on context.
|
|
@@ -153,7 +150,7 @@ function (_React$Component) {
|
|
|
153
150
|
};
|
|
154
151
|
|
|
155
152
|
Router.prototype.componentDidUpdate = function (prevProps) {
|
|
156
|
-
|
|
153
|
+
warning(prevProps.history === this.props.history, "You cannot change <Router history>") ;
|
|
157
154
|
};
|
|
158
155
|
}
|
|
159
156
|
|
|
@@ -200,7 +197,7 @@ function (_React$Component) {
|
|
|
200
197
|
};
|
|
201
198
|
|
|
202
199
|
MemoryRouter.prototype.componentDidMount = function () {
|
|
203
|
-
|
|
200
|
+
warning(!this.props.history, "<MemoryRouter> ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { MemoryRouter as Router }`.") ;
|
|
204
201
|
};
|
|
205
202
|
}
|
|
206
203
|
|
|
@@ -242,10 +239,10 @@ function Prompt(_ref) {
|
|
|
242
239
|
var message = _ref.message,
|
|
243
240
|
_ref$when = _ref.when,
|
|
244
241
|
when = _ref$when === void 0 ? true : _ref$when;
|
|
245
|
-
return React.createElement(context.Consumer, null, function (context
|
|
246
|
-
!context
|
|
247
|
-
if (!when || context
|
|
248
|
-
var method = context
|
|
242
|
+
return React.createElement(context.Consumer, null, function (context) {
|
|
243
|
+
!context ? invariant(false, "You should not use <Prompt> outside a <Router>") : void 0;
|
|
244
|
+
if (!when || context.staticContext) return null;
|
|
245
|
+
var method = context.history.block;
|
|
249
246
|
return React.createElement(Lifecycle, {
|
|
250
247
|
onMount: function onMount(self) {
|
|
251
248
|
self.release = method(message);
|
|
@@ -315,11 +312,11 @@ function Redirect(_ref) {
|
|
|
315
312
|
to = _ref.to,
|
|
316
313
|
_ref$push = _ref.push,
|
|
317
314
|
push = _ref$push === void 0 ? false : _ref$push;
|
|
318
|
-
return React.createElement(context.Consumer, null, function (context
|
|
319
|
-
!context
|
|
320
|
-
var history
|
|
321
|
-
staticContext = context
|
|
322
|
-
var method = push ? history
|
|
315
|
+
return React.createElement(context.Consumer, null, function (context) {
|
|
316
|
+
!context ? invariant(false, "You should not use <Redirect> outside a <Router>") : void 0;
|
|
317
|
+
var history$1 = context.history,
|
|
318
|
+
staticContext = context.staticContext;
|
|
319
|
+
var method = push ? history$1.push : history$1.replace;
|
|
323
320
|
var location = history.createLocation(computedMatch ? typeof to === "string" ? generatePath(to, computedMatch.params) : _extends({}, to, {
|
|
324
321
|
pathname: generatePath(to.pathname, computedMatch.params)
|
|
325
322
|
}) : to); // When rendering in a static context,
|
|
@@ -335,7 +332,11 @@ function Redirect(_ref) {
|
|
|
335
332
|
method(location);
|
|
336
333
|
},
|
|
337
334
|
onUpdate: function onUpdate(self, prevProps) {
|
|
338
|
-
|
|
335
|
+
var prevLocation = history.createLocation(prevProps.to);
|
|
336
|
+
|
|
337
|
+
if (!history.locationsAreEqual(prevLocation, _extends({}, location, {
|
|
338
|
+
key: prevLocation.key
|
|
339
|
+
}))) {
|
|
339
340
|
method(location);
|
|
340
341
|
}
|
|
341
342
|
},
|
|
@@ -384,9 +385,12 @@ function matchPath(pathname, options) {
|
|
|
384
385
|
options = {};
|
|
385
386
|
}
|
|
386
387
|
|
|
387
|
-
if (typeof options === "string"
|
|
388
|
-
|
|
389
|
-
|
|
388
|
+
if (typeof options === "string" || Array.isArray(options)) {
|
|
389
|
+
options = {
|
|
390
|
+
path: options
|
|
391
|
+
};
|
|
392
|
+
}
|
|
393
|
+
|
|
390
394
|
var _options = options,
|
|
391
395
|
path = _options.path,
|
|
392
396
|
_options$exact = _options.exact,
|
|
@@ -397,6 +401,7 @@ function matchPath(pathname, options) {
|
|
|
397
401
|
sensitive = _options$sensitive === void 0 ? false : _options$sensitive;
|
|
398
402
|
var paths = [].concat(path);
|
|
399
403
|
return paths.reduce(function (matched, path) {
|
|
404
|
+
if (!path && path !== "") return null;
|
|
400
405
|
if (matched) return matched;
|
|
401
406
|
|
|
402
407
|
var _compilePath = compilePath$1(path, {
|
|
@@ -431,6 +436,12 @@ function matchPath(pathname, options) {
|
|
|
431
436
|
function isEmptyChildren(children) {
|
|
432
437
|
return React.Children.count(children) === 0;
|
|
433
438
|
}
|
|
439
|
+
|
|
440
|
+
function evalChildrenDev(children, props, path) {
|
|
441
|
+
var value = children(props);
|
|
442
|
+
warning(value !== undefined, "You returned `undefined` from the `children` function of " + ("<Route" + (path ? " path=\"" + path + "\"" : "") + ">, but you ") + "should have returned a React element or `null`") ;
|
|
443
|
+
return value || null;
|
|
444
|
+
}
|
|
434
445
|
/**
|
|
435
446
|
* The public API for matching a single path and rendering.
|
|
436
447
|
*/
|
|
@@ -450,13 +461,13 @@ function (_React$Component) {
|
|
|
450
461
|
_proto.render = function render() {
|
|
451
462
|
var _this = this;
|
|
452
463
|
|
|
453
|
-
return React.createElement(context.Consumer, null, function (context
|
|
454
|
-
!context
|
|
455
|
-
var location = _this.props.location || context
|
|
464
|
+
return React.createElement(context.Consumer, null, function (context$1) {
|
|
465
|
+
!context$1 ? invariant(false, "You should not use <Route> outside a <Router>") : void 0;
|
|
466
|
+
var location = _this.props.location || context$1.location;
|
|
456
467
|
var match = _this.props.computedMatch ? _this.props.computedMatch // <Switch> already computed the match for us
|
|
457
|
-
: _this.props.path ? matchPath(location.pathname, _this.props) : context
|
|
468
|
+
: _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;
|
|
458
469
|
|
|
459
|
-
var props = _extends({}, context
|
|
470
|
+
var props = _extends({}, context$1, {
|
|
460
471
|
location: location,
|
|
461
472
|
match: match
|
|
462
473
|
});
|
|
@@ -471,22 +482,9 @@ function (_React$Component) {
|
|
|
471
482
|
children = null;
|
|
472
483
|
}
|
|
473
484
|
|
|
474
|
-
if (typeof children === "function") {
|
|
475
|
-
children = children(props);
|
|
476
|
-
|
|
477
|
-
if (children === undefined) {
|
|
478
|
-
{
|
|
479
|
-
var path = _this.props.path;
|
|
480
|
-
warning(false, "You returned `undefined` from the `children` function of " + ("<Route" + (path ? " path=\"" + path + "\"" : "") + ">, but you ") + "should have returned a React element or `null`");
|
|
481
|
-
}
|
|
482
|
-
|
|
483
|
-
children = null;
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
|
|
487
485
|
return React.createElement(context.Provider, {
|
|
488
486
|
value: props
|
|
489
|
-
},
|
|
487
|
+
}, props.match ? children ? typeof children === "function" ? evalChildrenDev(children, props, _this.props.path) : children : component ? React.createElement(component, props) : render ? render(props) : null : typeof children === "function" ? evalChildrenDev(children, props, _this.props.path) : null);
|
|
490
488
|
});
|
|
491
489
|
};
|
|
492
490
|
|
|
@@ -510,14 +508,14 @@ function (_React$Component) {
|
|
|
510
508
|
};
|
|
511
509
|
|
|
512
510
|
Route.prototype.componentDidMount = function () {
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
511
|
+
warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), "You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored") ;
|
|
512
|
+
warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), "You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored") ;
|
|
513
|
+
warning(!(this.props.component && this.props.render), "You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored") ;
|
|
516
514
|
};
|
|
517
515
|
|
|
518
516
|
Route.prototype.componentDidUpdate = function (prevProps) {
|
|
519
|
-
|
|
520
|
-
|
|
517
|
+
warning(!(this.props.location && !prevProps.location), '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') ;
|
|
518
|
+
warning(!(!this.props.location && prevProps.location), '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') ;
|
|
521
519
|
};
|
|
522
520
|
}
|
|
523
521
|
|
|
@@ -547,7 +545,7 @@ function createURL(location) {
|
|
|
547
545
|
|
|
548
546
|
function staticHandler(methodName) {
|
|
549
547
|
return function () {
|
|
550
|
-
|
|
548
|
+
invariant(false, "You cannot %s with <StaticRouter>", methodName) ;
|
|
551
549
|
};
|
|
552
550
|
}
|
|
553
551
|
|
|
@@ -599,7 +597,8 @@ function (_React$Component) {
|
|
|
599
597
|
var _this$props = this.props,
|
|
600
598
|
_this$props$basename = _this$props.basename,
|
|
601
599
|
basename = _this$props$basename === void 0 ? "" : _this$props$basename,
|
|
602
|
-
context = _this$props.context
|
|
600
|
+
_this$props$context = _this$props.context,
|
|
601
|
+
context = _this$props$context === void 0 ? {} : _this$props$context;
|
|
603
602
|
context.action = action;
|
|
604
603
|
context.location = addBasename(basename, history.createLocation(location));
|
|
605
604
|
context.url = createURL(context.location);
|
|
@@ -615,7 +614,7 @@ function (_React$Component) {
|
|
|
615
614
|
location = _this$props2$location === void 0 ? "/" : _this$props2$location,
|
|
616
615
|
rest = _objectWithoutPropertiesLoose(_this$props2, ["basename", "context", "location"]);
|
|
617
616
|
|
|
618
|
-
var history
|
|
617
|
+
var history$1 = {
|
|
619
618
|
createHref: function createHref(path) {
|
|
620
619
|
return addLeadingSlash(basename + createURL(path));
|
|
621
620
|
},
|
|
@@ -630,7 +629,7 @@ function (_React$Component) {
|
|
|
630
629
|
block: this.handleBlock
|
|
631
630
|
};
|
|
632
631
|
return React.createElement(Router, _extends({}, rest, {
|
|
633
|
-
history: history
|
|
632
|
+
history: history$1,
|
|
634
633
|
staticContext: context
|
|
635
634
|
}));
|
|
636
635
|
};
|
|
@@ -646,7 +645,7 @@ function (_React$Component) {
|
|
|
646
645
|
};
|
|
647
646
|
|
|
648
647
|
StaticRouter.prototype.componentDidMount = function () {
|
|
649
|
-
|
|
648
|
+
warning(!this.props.history, "<StaticRouter> ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { StaticRouter as Router }`.") ;
|
|
650
649
|
};
|
|
651
650
|
}
|
|
652
651
|
|
|
@@ -668,9 +667,9 @@ function (_React$Component) {
|
|
|
668
667
|
_proto.render = function render() {
|
|
669
668
|
var _this = this;
|
|
670
669
|
|
|
671
|
-
return React.createElement(context.Consumer, null, function (context
|
|
672
|
-
!context
|
|
673
|
-
var location = _this.props.location || context
|
|
670
|
+
return React.createElement(context.Consumer, null, function (context) {
|
|
671
|
+
!context ? invariant(false, "You should not use <Switch> outside a <Router>") : void 0;
|
|
672
|
+
var location = _this.props.location || context.location;
|
|
674
673
|
var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()
|
|
675
674
|
// here because toArray adds keys to all child elements and we do not want
|
|
676
675
|
// to trigger an unmount/remount for two <Route>s that render the same
|
|
@@ -682,7 +681,7 @@ function (_React$Component) {
|
|
|
682
681
|
var path = child.props.path || child.props.from;
|
|
683
682
|
match = path ? matchPath(location.pathname, _extends({}, child.props, {
|
|
684
683
|
path: path
|
|
685
|
-
})) : context
|
|
684
|
+
})) : context.match;
|
|
686
685
|
}
|
|
687
686
|
});
|
|
688
687
|
return match ? React.cloneElement(element, {
|
|
@@ -702,8 +701,8 @@ function (_React$Component) {
|
|
|
702
701
|
};
|
|
703
702
|
|
|
704
703
|
Switch.prototype.componentDidUpdate = function (prevProps) {
|
|
705
|
-
|
|
706
|
-
|
|
704
|
+
warning(!(this.props.location && !prevProps.location), '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') ;
|
|
705
|
+
warning(!(!this.props.location && prevProps.location), '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') ;
|
|
707
706
|
};
|
|
708
707
|
}
|
|
709
708
|
|
|
@@ -712,31 +711,63 @@ function (_React$Component) {
|
|
|
712
711
|
*/
|
|
713
712
|
|
|
714
713
|
function withRouter(Component) {
|
|
714
|
+
var displayName = "withRouter(" + (Component.displayName || Component.name) + ")";
|
|
715
|
+
|
|
715
716
|
var C = function C(props) {
|
|
716
717
|
var wrappedComponentRef = props.wrappedComponentRef,
|
|
717
718
|
remainingProps = _objectWithoutPropertiesLoose(props, ["wrappedComponentRef"]);
|
|
718
719
|
|
|
719
|
-
return React.createElement(
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
}
|
|
720
|
+
return React.createElement(context.Consumer, null, function (context) {
|
|
721
|
+
!context ? invariant(false, "You should not use <" + displayName + " /> outside a <Router>") : void 0;
|
|
722
|
+
return React.createElement(Component, _extends({}, remainingProps, context, {
|
|
723
|
+
ref: wrappedComponentRef
|
|
724
|
+
}));
|
|
725
725
|
});
|
|
726
726
|
};
|
|
727
727
|
|
|
728
|
-
C.displayName =
|
|
728
|
+
C.displayName = displayName;
|
|
729
729
|
C.WrappedComponent = Component;
|
|
730
730
|
|
|
731
731
|
{
|
|
732
732
|
C.propTypes = {
|
|
733
|
-
wrappedComponentRef: PropTypes.func
|
|
733
|
+
wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])
|
|
734
734
|
};
|
|
735
735
|
}
|
|
736
736
|
|
|
737
737
|
return hoistStatics(C, Component);
|
|
738
738
|
}
|
|
739
739
|
|
|
740
|
+
var useContext = React.useContext;
|
|
741
|
+
function useHistory() {
|
|
742
|
+
{
|
|
743
|
+
!(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useHistory()") : void 0;
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
return useContext(context).history;
|
|
747
|
+
}
|
|
748
|
+
function useLocation() {
|
|
749
|
+
{
|
|
750
|
+
!(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useLocation()") : void 0;
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
return useContext(context).location;
|
|
754
|
+
}
|
|
755
|
+
function useParams() {
|
|
756
|
+
{
|
|
757
|
+
!(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useParams()") : void 0;
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
var match = useContext(context).match;
|
|
761
|
+
return match ? match.params : {};
|
|
762
|
+
}
|
|
763
|
+
function useRouteMatch(path) {
|
|
764
|
+
{
|
|
765
|
+
!(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useRouteMatch()") : void 0;
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
return path ? matchPath(useLocation().pathname, path) : useContext(context).match;
|
|
769
|
+
}
|
|
770
|
+
|
|
740
771
|
{
|
|
741
772
|
if (typeof window !== "undefined") {
|
|
742
773
|
var global = window;
|
|
@@ -766,7 +797,12 @@ exports.Route = Route;
|
|
|
766
797
|
exports.Router = Router;
|
|
767
798
|
exports.StaticRouter = StaticRouter;
|
|
768
799
|
exports.Switch = Switch;
|
|
800
|
+
exports.__RouterContext = context;
|
|
769
801
|
exports.generatePath = generatePath;
|
|
770
802
|
exports.matchPath = matchPath;
|
|
803
|
+
exports.useHistory = useHistory;
|
|
804
|
+
exports.useLocation = useLocation;
|
|
805
|
+
exports.useParams = useParams;
|
|
806
|
+
exports.useRouteMatch = useRouteMatch;
|
|
771
807
|
exports.withRouter = withRouter;
|
|
772
|
-
|
|
808
|
+
//# sourceMappingURL=react-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-router.js","sources":["../modules/RouterContext.js","../modules/Router.js","../modules/MemoryRouter.js","../modules/Lifecycle.js","../modules/Prompt.js","../modules/generatePath.js","../modules/Redirect.js","../modules/matchPath.js","../modules/Route.js","../modules/StaticRouter.js","../modules/Switch.js","../modules/withRouter.js","../modules/hooks.js","../modules/index.js"],"sourcesContent":["// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any <Redirect>s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the <Router> is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n <RouterContext.Provider\n children={this.props.children || null}\n value={{\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }}\n />\n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change <Router history>\"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router\";\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<MemoryRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle\";\nimport RouterContext from \"./RouterContext\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Prompt> outside a <Router>\");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n <Lifecycle\n onMount={self => {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n </RouterContext.Consumer>\n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle\";\nimport RouterContext from \"./RouterContext\";\nimport generatePath from \"./generatePath\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Redirect> outside a <Router>\");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n <Lifecycle\n onMount={() => {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n </RouterContext.Consumer>\n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\nimport matchPath from \"./matchPath\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `<Route${path ? ` path=\"${path}\"` : \"\"}>, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Route> outside a <Router>\");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // <Switch> already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n <RouterContext.Provider value={props}>\n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n </RouterContext.Provider>\n );\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with <StaticRouter>\", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return <Router {...rest} history={history} staticContext={context} />;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<StaticRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\nimport matchPath from \"./matchPath\";\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Switch> outside a <Router>\");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two <Route>s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport RouterContext from \"./RouterContext\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a <Router>`\n );\n return (\n <Component\n {...remainingProps}\n {...context}\n ref={wrappedComponentRef}\n />\n );\n }}\n </RouterContext.Consumer>\n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(Context).history;\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n return path\n ? matchPath(useLocation().pathname, path)\n : useContext(Context).match;\n}\n","if (__DEV__) {\n if (typeof window !== \"undefined\") {\n const global = window;\n const key = \"__react_router_build__\";\n const buildNames = { cjs: \"CommonJS\", esm: \"ES modules\", umd: \"UMD\" };\n\n if (global[key] && global[key] !== process.env.BUILD_FORMAT) {\n const initialBuildName = buildNames[global[key]];\n const secondaryBuildName = buildNames[process.env.BUILD_FORMAT];\n\n // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n throw new Error(\n `You are loading the ${secondaryBuildName} build of React Router ` +\n `on a page that is already running the ${initialBuildName} ` +\n `build, so things won't work right.`\n );\n }\n\n global[key] = process.env.BUILD_FORMAT;\n }\n}\n\nexport { default as MemoryRouter } from \"./MemoryRouter\";\nexport { default as Prompt } from \"./Prompt\";\nexport { default as Redirect } from \"./Redirect\";\nexport { default as Route } from \"./Route\";\nexport { default as Router } from \"./Router\";\nexport { default as StaticRouter } from \"./StaticRouter\";\nexport { default as Switch } from \"./Switch\";\nexport { default as generatePath } from \"./generatePath\";\nexport { default as matchPath } from \"./matchPath\";\nexport { default as withRouter } from \"./withRouter\";\n\nimport { useHistory, useLocation, useParams, useRouteMatch } from \"./hooks.js\";\nexport { useHistory, useLocation, useParams, useRouteMatch };\n\nexport { default as __RouterContext } from \"./RouterContext\";\n"],"names":["createNamedContext","name","context","createContext","displayName","Router","computeRootMatch","pathname","path","url","params","isExact","props","state","location","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","setState","componentDidMount","componentWillUnmount","render","RouterContext","children","match","React","Component","propTypes","PropTypes","node","object","isRequired","prototype","componentDidUpdate","prevProps","warning","MemoryRouter","createHistory","initialEntries","array","initialIndex","number","getUserConfirmation","func","keyLength","Lifecycle","onMount","call","onUpdate","onUnmount","Prompt","message","when","invariant","method","block","self","release","messageType","oneOfType","string","bool","cache","cacheLimit","cacheCount","compilePath","generator","pathToRegexp","compile","generatePath","pretty","Redirect","computedMatch","to","push","replace","createLocation","prevLocation","locationsAreEqual","key","from","options","cacheKey","end","strict","sensitive","pathCache","keys","regexp","result","matchPath","Array","isArray","exact","paths","concat","reduce","matched","exec","values","memo","index","isEmptyChildren","Children","count","evalChildrenDev","value","undefined","Route","component","length","createElement","propName","isValidElementType","Error","arrayOf","addLeadingSlash","charAt","addBasename","basename","stripBasename","base","indexOf","substr","createURL","createPath","staticHandler","methodName","noop","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","action","rest","createHref","go","goBack","goForward","Switch","element","forEach","child","isValidElement","cloneElement","withRouter","C","wrappedComponentRef","remainingProps","WrappedComponent","hoistStatics","useContext","useHistory","Context","useLocation","useParams","useRouteMatch","window","global","buildNames","cjs","esm","umd","process","initialBuildName","secondaryBuildName"],"mappings":"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"}
|
package/cjs/react-router.min.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";function _interopDefault(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var
|
|
1
|
+
"use strict";function _interopDefault(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var React=_interopDefault(require("react"));require("prop-types");var history=require("history");require("tiny-warning");var createContext=_interopDefault(require("mini-create-react-context")),invariant=_interopDefault(require("tiny-invariant")),pathToRegexp=_interopDefault(require("path-to-regexp"));require("react-is");var hoistStatics=_interopDefault(require("hoist-non-react-statics"));function _extends(){return(_extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t}).apply(this,arguments)}function _inheritsLoose(t,e){t.prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e}function _objectWithoutPropertiesLoose(t,e){if(null==t)return{};var n,o,r={},a=Object.keys(t);for(o=0;o<a.length;o++)n=a[o],0<=e.indexOf(n)||(r[n]=t[n]);return r}var createNamedContext=function(t){var e=createContext();return e.displayName=t,e},context=createNamedContext("Router"),Router=function(n){function t(t){var e;return(e=n.call(this,t)||this).state={location:t.history.location},e._isMounted=!1,e._pendingLocation=null,t.staticContext||(e.unlisten=t.history.listen(function(t){e._isMounted?e.setState({location:t}):e._pendingLocation=t})),e}_inheritsLoose(t,n),t.computeRootMatch=function(t){return{path:"/",url:"/",params:{},isExact:"/"===t}};var e=t.prototype;return e.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},e.componentWillUnmount=function(){this.unlisten&&this.unlisten()},e.render=function(){return React.createElement(context.Provider,{children:this.props.children||null,value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}})},t}(React.Component),MemoryRouter=function(r){function t(){for(var t,e=arguments.length,n=new Array(e),o=0;o<e;o++)n[o]=arguments[o];return(t=r.call.apply(r,[this].concat(n))||this).history=history.createMemoryHistory(t.props),t}return _inheritsLoose(t,r),t.prototype.render=function(){return React.createElement(Router,{history:this.history,children:this.props.children})},t}(React.Component),Lifecycle=function(t){function e(){return t.apply(this,arguments)||this}_inheritsLoose(e,t);var n=e.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(t){this.props.onUpdate&&this.props.onUpdate.call(this,this,t)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},e}(React.Component);function Prompt(t){var o=t.message,e=t.when,r=void 0===e||e;return React.createElement(context.Consumer,null,function(t){if(t||invariant(!1),!r||t.staticContext)return null;var n=t.history.block;return React.createElement(Lifecycle,{onMount:function(t){t.release=n(o)},onUpdate:function(t,e){e.message!==o&&(t.release(),t.release=n(o))},onUnmount:function(t){t.release()},message:o})})}var cache={},cacheLimit=1e4,cacheCount=0;function compilePath(t){if(cache[t])return cache[t];var e=pathToRegexp.compile(t);return cacheCount<cacheLimit&&(cache[t]=e,cacheCount++),e}function generatePath(t,e){return void 0===t&&(t="/"),void 0===e&&(e={}),"/"===t?t:compilePath(t)(e,{pretty:!0})}function Redirect(t){var a=t.computedMatch,i=t.to,e=t.push,c=void 0!==e&&e;return React.createElement(context.Consumer,null,function(t){t||invariant(!1);var e=t.history,n=t.staticContext,o=c?e.push:e.replace,r=history.createLocation(a?"string"==typeof i?generatePath(i,a.params):_extends({},i,{pathname:generatePath(i.pathname,a.params)}):i);return n?(o(r),null):React.createElement(Lifecycle,{onMount:function(){o(r)},onUpdate:function(t,e){var n=history.createLocation(e.to);history.locationsAreEqual(n,_extends({},r,{key:n.key}))||o(r)},to:i})})}var cache$1={},cacheLimit$1=1e4,cacheCount$1=0;function compilePath$1(t,e){var n=""+e.end+e.strict+e.sensitive,o=cache$1[n]||(cache$1[n]={});if(o[t])return o[t];var r=[],a={regexp:pathToRegexp(t,r,e),keys:r};return cacheCount$1<cacheLimit$1&&(o[t]=a,cacheCount$1++),a}function matchPath(u,t){void 0===t&&(t={}),"string"!=typeof t&&!Array.isArray(t)||(t={path:t});var e=t,n=e.path,o=e.exact,p=void 0!==o&&o,r=e.strict,h=void 0!==r&&r,a=e.sensitive,l=void 0!==a&&a;return[].concat(n).reduce(function(t,e){if(!e&&""!==e)return null;if(t)return t;var n=compilePath$1(e,{end:p,strict:h,sensitive:l}),o=n.regexp,r=n.keys,a=o.exec(u);if(!a)return null;var i=a[0],c=a.slice(1),s=u===i;return p&&!s?null:{path:e,url:"/"===e&&""===i?"/":i,isExact:s,params:r.reduce(function(t,e,n){return t[e.name]=c[n],t},{})}},null)}var Route=function(t){function e(){return t.apply(this,arguments)||this}return _inheritsLoose(e,t),e.prototype.render=function(){var c=this;return React.createElement(context.Consumer,null,function(t){t||invariant(!1);var e=c.props.location||t.location,n=_extends({},t,{location:e,match:c.props.computedMatch?c.props.computedMatch:c.props.path?matchPath(e.pathname,c.props):t.match}),o=c.props,r=o.children,a=o.component,i=o.render;return Array.isArray(r)&&0===r.length&&(r=null),React.createElement(context.Provider,{value:n},n.match?r?"function"==typeof r?r(n):r:a?React.createElement(a,n):i?i(n):null:"function"==typeof r?r(n):null)})},e}(React.Component);function addLeadingSlash(t){return"/"===t.charAt(0)?t:"/"+t}function addBasename(t,e){return t?_extends({},e,{pathname:addLeadingSlash(t)+e.pathname}):e}function stripBasename(t,e){if(!t)return e;var n=addLeadingSlash(t);return 0!==e.pathname.indexOf(n)?e:_extends({},e,{pathname:e.pathname.substr(n.length)})}function createURL(t){return"string"==typeof t?t:history.createPath(t)}function staticHandler(t){return function(){invariant(!1)}}function noop(){}var StaticRouter=function(r){function t(){for(var e,t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return(e=r.call.apply(r,[this].concat(n))||this).handlePush=function(t){return e.navigateTo(t,"PUSH")},e.handleReplace=function(t){return e.navigateTo(t,"REPLACE")},e.handleListen=function(){return noop},e.handleBlock=function(){return noop},e}_inheritsLoose(t,r);var e=t.prototype;return e.navigateTo=function(t,e){var n=this.props,o=n.basename,r=void 0===o?"":o,a=n.context,i=void 0===a?{}:a;i.action=e,i.location=addBasename(r,history.createLocation(t)),i.url=createURL(i.location)},e.render=function(){var t=this.props,e=t.basename,n=void 0===e?"":e,o=t.context,r=void 0===o?{}:o,a=t.location,i=void 0===a?"/":a,c=_objectWithoutPropertiesLoose(t,["basename","context","location"]),s={createHref:function(t){return addLeadingSlash(n+createURL(t))},action:"POP",location:stripBasename(n,history.createLocation(i)),push:this.handlePush,replace:this.handleReplace,go:staticHandler(),goBack:staticHandler(),goForward:staticHandler(),listen:this.handleListen,block:this.handleBlock};return React.createElement(Router,_extends({},c,{history:s,staticContext:r}))},t}(React.Component),Switch=function(t){function e(){return t.apply(this,arguments)||this}return _inheritsLoose(e,t),e.prototype.render=function(){var t=this;return React.createElement(context.Consumer,null,function(n){n||invariant(!1);var o,r,a=t.props.location||n.location;return React.Children.forEach(t.props.children,function(t){if(null==r&&React.isValidElement(t)){var e=(o=t).props.path||t.props.from;r=e?matchPath(a.pathname,_extends({},t.props,{path:e})):n.match}}),r?React.cloneElement(o,{location:a,computedMatch:r}):null})},e}(React.Component);function withRouter(o){function t(t){var e=t.wrappedComponentRef,n=_objectWithoutPropertiesLoose(t,["wrappedComponentRef"]);return React.createElement(context.Consumer,null,function(t){return t||invariant(!1),React.createElement(o,_extends({},n,t,{ref:e}))})}var e="withRouter("+(o.displayName||o.name)+")";return t.displayName=e,t.WrappedComponent=o,hoistStatics(t,o)}var useContext=React.useContext;function useHistory(){return useContext(context).history}function useLocation(){return useContext(context).location}function useParams(){var t=useContext(context).match;return t?t.params:{}}function useRouteMatch(t){return t?matchPath(useLocation().pathname,t):useContext(context).match}exports.MemoryRouter=MemoryRouter,exports.Prompt=Prompt,exports.Redirect=Redirect,exports.Route=Route,exports.Router=Router,exports.StaticRouter=StaticRouter,exports.Switch=Switch,exports.__RouterContext=context,exports.generatePath=generatePath,exports.matchPath=matchPath,exports.useHistory=useHistory,exports.useLocation=useLocation,exports.useParams=useParams,exports.useRouteMatch=useRouteMatch,exports.withRouter=withRouter;
|
|
2
|
+
//# sourceMappingURL=react-router.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-router.min.js","sources":["../modules/RouterContext.js","../modules/Router.js","../modules/MemoryRouter.js","../modules/Lifecycle.js","../modules/Prompt.js","../modules/generatePath.js","../modules/Redirect.js","../modules/matchPath.js","../modules/Route.js","../modules/StaticRouter.js","../modules/Switch.js","../modules/withRouter.js","../modules/hooks.js"],"sourcesContent":["// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any <Redirect>s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the <Router> is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n <RouterContext.Provider\n children={this.props.children || null}\n value={{\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }}\n />\n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change <Router history>\"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router\";\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<MemoryRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle\";\nimport RouterContext from \"./RouterContext\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Prompt> outside a <Router>\");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n <Lifecycle\n onMount={self => {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n </RouterContext.Consumer>\n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle\";\nimport RouterContext from \"./RouterContext\";\nimport generatePath from \"./generatePath\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Redirect> outside a <Router>\");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n <Lifecycle\n onMount={() => {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n </RouterContext.Consumer>\n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\nimport matchPath from \"./matchPath\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `<Route${path ? ` path=\"${path}\"` : \"\"}>, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Route> outside a <Router>\");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // <Switch> already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n <RouterContext.Provider value={props}>\n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n </RouterContext.Provider>\n );\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with <StaticRouter>\", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return <Router {...rest} history={history} staticContext={context} />;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<StaticRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\nimport matchPath from \"./matchPath\";\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Switch> outside a <Router>\");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two <Route>s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport RouterContext from \"./RouterContext\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a <Router>`\n );\n return (\n <Component\n {...remainingProps}\n {...context}\n ref={wrappedComponentRef}\n />\n );\n }}\n </RouterContext.Consumer>\n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(Context).history;\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n return path\n ? matchPath(useLocation().pathname, path)\n : useContext(Context).match;\n}\n"],"names":["createNamedContext","name","context","createContext","displayName","Router","props","state","location","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","_this","setState","computeRootMatch","pathname","path","url","params","isExact","componentDidMount","this","componentWillUnmount","render","React","RouterContext","Provider","children","value","match","Component","MemoryRouter","createHistory","Lifecycle","onMount","call","componentDidUpdate","prevProps","onUpdate","onUnmount","Prompt","message","when","Consumer","invariant","method","block","self","release","cache","cacheLimit","cacheCount","compilePath","generator","pathToRegexp","compile","generatePath","pretty","Redirect","computedMatch","to","push","replace","createLocation","prevLocation","locationsAreEqual","key","options","cacheKey","end","strict","sensitive","pathCache","keys","result","regexp","matchPath","Array","isArray","exact","concat","reduce","matched","exec","values","memo","index","Route","component","length","createElement","addLeadingSlash","charAt","addBasename","basename","stripBasename","base","indexOf","substr","createURL","createPath","staticHandler","methodName","noop","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","action","rest","createHref","go","goBack","goForward","Switch","element","Children","forEach","child","isValidElement","from","cloneElement","withRouter","C","wrappedComponentRef","remainingProps","ref","WrappedComponent","hoistStatics","useContext","useHistory","Context","useLocation","useParams","useRouteMatch"],"mappings":"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"}
|