UNPKG

@tanstack/react-router

Version:

Modern and scalable routing for React applications

39 lines (38 loc) 1.23 kB
import { jsx } from "react/jsx-runtime"; import { defaultGetScrollRestorationKey, restoreScroll, storageKey } from "@tanstack/router-core"; import { useRouter } from "./useRouter.js"; import { ScriptOnce } from "./ScriptOnce.js"; function ScrollRestoration() { const router = 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 || defaultGetScrollRestorationKey; const userKey = getKey(router.latestLocation); const resolvedKey = userKey !== defaultGetScrollRestorationKey(router.latestLocation) ? userKey : void 0; const restoreScrollOptions = { storageKey, shouldScrollRestoration: true }; if (resolvedKey) { restoreScrollOptions.key = resolvedKey; } return /* @__PURE__ */ jsx( ScriptOnce, { children: `(${restoreScroll.toString()})(${JSON.stringify(restoreScrollOptions)})` } ); } export { ScrollRestoration }; //# sourceMappingURL=scroll-restoration.js.map