@tanstack/router-core
Version:
Modern and scalable routing for React applications
22 lines (21 loc) • 1.27 kB
JavaScript
import { escapeHtml } from "../utils.js";
import { defaultGetScrollRestorationKey, storageKey } from "../scroll-restoration.js";
import scroll_restoration_inline_default from "../scroll-restoration-inline.js";
//#region src/scroll-restoration-script/server.ts
const defaultInlineScrollRestorationScript = `(${scroll_restoration_inline_default})(${escapeHtml(JSON.stringify(storageKey))})`;
function getScrollRestorationScript(key) {
if (key === void 0) return defaultInlineScrollRestorationScript;
return `(${scroll_restoration_inline_default})(${escapeHtml(JSON.stringify(storageKey))},${escapeHtml(JSON.stringify(key))})`;
}
function getScrollRestorationScriptForRouter(router) {
if (typeof router.options.scrollRestoration === "function" && !router.options.scrollRestoration({ location: router.latestLocation })) return null;
const getKey = router.options.getScrollRestorationKey;
if (!getKey) return defaultInlineScrollRestorationScript;
const location = router.latestLocation;
const userKey = getKey(location);
if (userKey === defaultGetScrollRestorationKey(location)) return defaultInlineScrollRestorationScript;
return getScrollRestorationScript(userKey);
}
//#endregion
export { getScrollRestorationScriptForRouter };
//# sourceMappingURL=server.js.map