38 lines
1.5 KiB
JavaScript
38 lines
1.5 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "shouldHardNavigate", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return shouldHardNavigate;
|
|
}
|
|
});
|
|
const _matchsegments = require("../match-segments");
|
|
function shouldHardNavigate(flightSegmentPath, flightRouterState) {
|
|
const [segment, parallelRoutes] = flightRouterState;
|
|
// TODO-APP: Check if `as` can be replaced.
|
|
const [currentSegment, parallelRouteKey] = flightSegmentPath;
|
|
// Check if current segment matches the existing segment.
|
|
if (!(0, _matchsegments.matchSegment)(currentSegment, segment)) {
|
|
// If dynamic parameter in tree doesn't match up with segment path a hard navigation is triggered.
|
|
if (Array.isArray(currentSegment)) {
|
|
return true;
|
|
}
|
|
// If the existing segment did not match soft navigation is triggered.
|
|
return false;
|
|
}
|
|
const lastSegment = flightSegmentPath.length <= 2;
|
|
if (lastSegment) {
|
|
return false;
|
|
}
|
|
return shouldHardNavigate(flightSegmentPath.slice(2), parallelRoutes[parallelRouteKey]);
|
|
}
|
|
|
|
if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
|
|
Object.defineProperty(exports.default, '__esModule', { value: true });
|
|
Object.assign(exports.default, exports);
|
|
module.exports = exports.default;
|
|
}
|
|
|
|
//# sourceMappingURL=should-hard-navigate.js.map
|