{"version":3,"file":"scroll-restoration.cjs","sources":["../../src/scroll-restoration.tsx"],"sourcesContent":["import {\n  defaultGetScrollRestorationKey,\n  restoreScroll,\n  storageKey,\n} from '@tanstack/router-core'\nimport { useRouter } from './useRouter'\nimport { ScriptOnce } from './ScriptOnce'\n\nexport function ScrollRestoration() {\n  const router = useRouter()\n  if (!router.isScrollRestoring || !router.isServer) {\n    return null\n  }\n  if (typeof router.options.scrollRestoration === 'function') {\n    const shouldRestore = router.options.scrollRestoration({\n      location: router.latestLocation,\n    })\n    if (!shouldRestore) {\n      return null\n    }\n  }\n  const getKey =\n    router.options.getScrollRestorationKey || defaultGetScrollRestorationKey\n  const userKey = getKey(router.latestLocation)\n  const resolvedKey =\n    userKey !== defaultGetScrollRestorationKey(router.latestLocation)\n      ? userKey\n      : undefined\n\n  const restoreScrollOptions: Parameters<typeof restoreScroll>[0] = {\n    storageKey,\n    shouldScrollRestoration: true,\n  }\n  if (resolvedKey) {\n    restoreScrollOptions.key = resolvedKey\n  }\n\n  return (\n    <ScriptOnce\n      children={`(${restoreScroll.toString()})(${JSON.stringify(restoreScrollOptions)})`}\n    />\n  )\n}\n"],"names":["useRouter","defaultGetScrollRestorationKey","storageKey","jsx","ScriptOnce","restoreScroll"],"mappings":";;;;;;AAQO,SAAS,oBAAoB;AAClC,QAAM,SAASA,UAAAA,UAAA;AACf,MAAI,CAAC,OAAO,qBAAqB,CAAC,OAAO,UAAU;AACjD,WAAO;AAAA,EACT;AACA,MAAI,OAAO,OAAO,QAAQ,sBAAsB,YAAY;AAC1D,UAAM,gBAAgB,OAAO,QAAQ,kBAAkB;AAAA,MACrD,UAAU,OAAO;AAAA,IAAA,CAClB;AACD,QAAI,CAAC,eAAe;AAClB,aAAO;AAAA,IACT;AAAA,EACF;AACA,QAAM,SACJ,OAAO,QAAQ,2BAA2BC,WAAAA;AAC5C,QAAM,UAAU,OAAO,OAAO,cAAc;AAC5C,QAAM,cACJ,YAAYA,WAAAA,+BAA+B,OAAO,cAAc,IAC5D,UACA;AAEN,QAAM,uBAA4D;AAAA,IAAA,YAChEC,WAAAA;AAAAA,IACA,yBAAyB;AAAA,EAAA;AAE3B,MAAI,aAAa;AACf,yBAAqB,MAAM;AAAA,EAC7B;AAEA,SACEC,2BAAAA;AAAAA,IAACC,WAAAA;AAAAA,IAAA;AAAA,MACC,UAAU,IAAIC,WAAAA,cAAc,SAAA,CAAU,KAAK,KAAK,UAAU,oBAAoB,CAAC;AAAA,IAAA;AAAA,EAAA;AAGrF;;"}