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 _reactRouter = require("react-router");
|
15 |
|
16 | var _loggedFilter = _interopRequireDefault(require("./logged-filter"));
|
17 |
|
18 |
|
19 | var findMatch = function findMatch(routes, pathname, isLoggedIn) {
|
20 | var routesWithPlainPaths = routes.map(function (r) {
|
21 | return (0, _objectSpread2.default)({}, r, {
|
22 | path: typeof r.path === 'function' ? r.path() : r.path
|
23 | });
|
24 | });
|
25 | var accessibleRoutes = routesWithPlainPaths.filter(function (r) {
|
26 | return (0, _loggedFilter.default)(r, isLoggedIn);
|
27 | });
|
28 | var notFoundRoute = accessibleRoutes.find(function (_ref) {
|
29 | var path = _ref.path;
|
30 | return !path;
|
31 | });
|
32 |
|
33 | if (!notFoundRoute) {
|
34 | throw Error('You need a route without path to render a 404 page');
|
35 | }
|
36 |
|
37 | var match;
|
38 | var activeRoute = accessibleRoutes.find(function (route) {
|
39 | match = (0, _reactRouter.matchPath)(pathname, route);
|
40 | return match;
|
41 | }) || notFoundRoute;
|
42 | var path = activeRoute.path,
|
43 | exact = activeRoute.exact,
|
44 | route = (0, _objectWithoutProperties2.default)(activeRoute, ["path", "exact"]);
|
45 |
|
46 | return {
|
47 | match: match,
|
48 | route: route,
|
49 | routesWithPlainPaths: routesWithPlainPaths,
|
50 | accessibleRoutes: accessibleRoutes,
|
51 | notFoundRoute: notFoundRoute
|
52 | };
|
53 | };
|
54 |
|
55 | var _default = findMatch;
|
56 | exports.default = _default; |
\ | No newline at end of file |