@tanstack/react-router
Version:
Modern and scalable routing for React applications
39 lines (38 loc) • 1.39 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const routerCore = require("@tanstack/router-core");
const useRouter = require("./useRouter.cjs");
const ScriptOnce = require("./ScriptOnce.cjs");
function ScrollRestoration() {
const router = useRouter.useRouter();
if (!router.isScrollRestoring || !router.isServer) {
return null;
}
if (typeof router.options.scrollRestoration === "function") {
const shouldRestore = router.options.scrollRestoration({
location: router.latestLocation
});
if (!shouldRestore) {
return null;
}
}
const getKey = router.options.getScrollRestorationKey || routerCore.defaultGetScrollRestorationKey;
const userKey = getKey(router.latestLocation);
const resolvedKey = userKey !== routerCore.defaultGetScrollRestorationKey(router.latestLocation) ? userKey : void 0;
const restoreScrollOptions = {
storageKey: routerCore.storageKey,
shouldScrollRestoration: true
};
if (resolvedKey) {
restoreScrollOptions.key = resolvedKey;
}
return /* @__PURE__ */ jsxRuntime.jsx(
ScriptOnce.ScriptOnce,
{
children: `(${routerCore.restoreScroll.toString()})(${JSON.stringify(restoreScrollOptions)})`
}
);
}
exports.ScrollRestoration = ScrollRestoration;
//# sourceMappingURL=scroll-restoration.cjs.map
;