1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
4 |
|
5 | Object.defineProperty(exports, "__esModule", {
|
6 | value: true
|
7 | });
|
8 | exports.default = void 0;
|
9 |
|
10 | var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectWithoutProperties"));
|
11 |
|
12 | var _objectSpread2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectSpread"));
|
13 |
|
14 | var _reactRouterDom = require("react-router-dom");
|
15 |
|
16 | var _loggedFilter = _interopRequireDefault(require("./logged-filter"));
|
17 |
|
18 |
|
19 | var findMatch = function findMatch(routesAndCmps, pathname, isLoggedIn) {
|
20 | var routesAndCmpsWithGoodPaths = routesAndCmps.map(function (rac) {
|
21 | return (0, _objectSpread2.default)({}, rac, {
|
22 | route: (0, _objectSpread2.default)({}, rac.route, {
|
23 | path: typeof rac.route.path === 'function' ? rac.route.path() : rac.route.path
|
24 | })
|
25 | });
|
26 | });
|
27 | var filteredRoutesAndCmps = routesAndCmpsWithGoodPaths.filter(function (_ref) {
|
28 | var route = _ref.route;
|
29 | return (0, _loggedFilter.default)(route, isLoggedIn);
|
30 | });
|
31 | var notFoundRouteAndCmp = filteredRoutesAndCmps.find(function (_ref2) {
|
32 | var route = _ref2.route;
|
33 | return !route.path;
|
34 | });
|
35 |
|
36 | if (!notFoundRouteAndCmp) {
|
37 | throw Error('You need a route without path to render a 404 page');
|
38 | }
|
39 |
|
40 | var match;
|
41 | var activeRouteAndCmp = filteredRoutesAndCmps.find(function (_ref3) {
|
42 | var route = _ref3.route;
|
43 | match = (0, _reactRouterDom.matchPath)(pathname, route);
|
44 | return match;
|
45 | }) || notFoundRouteAndCmp;
|
46 | var _activeRouteAndCmp$ro = activeRouteAndCmp.route,
|
47 | path = _activeRouteAndCmp$ro.path,
|
48 | exact = _activeRouteAndCmp$ro.exact,
|
49 | route = (0, _objectWithoutProperties2.default)(_activeRouteAndCmp$ro, ["path", "exact"]);
|
50 |
|
51 | return {
|
52 | match: match,
|
53 | route: route,
|
54 | Component: activeRouteAndCmp.component,
|
55 |
|
56 | routes: filteredRoutesAndCmps.map(function (rac) {
|
57 | return rac.route;
|
58 | })
|
59 | };
|
60 | };
|
61 |
|
62 | var _default = findMatch;
|
63 | exports.default = _default; |
\ | No newline at end of file |