UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

37 lines 1.38 kB
import { defaultGetScrollRestorationKey, getCssSelector, scrollRestorationCache, setupScrollRestoration, } from '@tanstack/router-core'; import { useRouter } from './useRouter'; function useScrollRestoration() { const router = useRouter(); setupScrollRestoration(router, true); } /** * @deprecated use createRouter's `scrollRestoration` option instead */ export function ScrollRestoration(_props) { useScrollRestoration(); if (process.env.NODE_ENV === 'development') { console.warn("The ScrollRestoration component is deprecated. Use createRouter's `scrollRestoration` option instead."); } return null; } export function useElementScrollRestoration(options) { useScrollRestoration(); const router = useRouter(); const getKey = options.getKey || defaultGetScrollRestorationKey; let elementSelector = ''; if (options.id) { elementSelector = `[data-scroll-restoration-id="${options.id}"]`; } else { const element = options.getElement?.(); if (!element) { return; } elementSelector = element instanceof Window ? 'window' : getCssSelector(element); } const restoreKey = getKey(router.latestLocation); const byKey = scrollRestorationCache?.state[restoreKey]; return byKey?.[elementSelector]; } //# sourceMappingURL=ScrollRestoration.jsx.map