preload-next
Version:
A Preload Link Component for Next.js to handle seamless page transitions
30 lines (29 loc) • 991 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.linkClicked = void 0;
var is_local_url_1 = require("next/dist/shared/lib/router/utils/is-local-url");
function isModifiedEvent(event) {
var target = event.currentTarget.target;
return ((target && target !== "_self") ||
event.metaKey ||
event.ctrlKey ||
event.shiftKey ||
event.altKey ||
(event.nativeEvent && event.nativeEvent.which === 2));
}
function linkClicked(e, router, href, as, replace, shallow, scroll, locale) {
var nodeName = e.currentTarget.nodeName;
if (nodeName === "A" && (isModifiedEvent(e) || !(0, is_local_url_1.isLocalURL)(href))) {
return;
}
e.preventDefault();
if (scroll == null && as.indexOf("#") >= 0) {
scroll = false;
}
router[replace ? "replace" : "push"](href, as, {
shallow: shallow,
locale: locale,
scroll: scroll,
});
}
exports.linkClicked = linkClicked;