[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-tanstack-data-loading":3,"mdc-8534d2-key":50,"related-org-tanstack-data-loading":7664,"related-repo-tanstack-data-loading":7806},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":45,"sourceUrl":48,"mdContent":49},"data-loading","manage data loading in TanStack Router","Route loader option, loaderDeps for cache keys, staleTime\u002FgcTime\u002F defaultPreloadStaleTime SWR caching, pendingComponent\u002FpendingMs\u002F pendingMinMs, errorComponent\u002FonError\u002FonCatch, beforeLoad, router context and createRootRouteWithContext DI pattern, router.invalidate, Await component, deferred data loading with unawaited promises.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"tanstack","TanStack","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftanstack.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Performance","performance","tag",{"name":17,"slug":18,"type":15},"TanStack Router","tanstack-router",{"name":20,"slug":21,"type":15},"Caching","caching",{"name":9,"slug":8,"type":15},14787,"https:\u002F\u002Fgithub.com\u002FTanStack\u002Frouter","2026-07-30T05:26:54.487943",null,1761,[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"framework","fullstack","javascript","react","route","router","routing","rpc","search","searchparams","server-functions","ssr","state-management","typesafe","typescript","url",{"repoUrl":24,"stars":23,"forks":27,"topics":46,"description":47},[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"🤖 A client-first, server-capable, fully type-safe router and full-stack framework for the web (React and more).","https:\u002F\u002Fgithub.com\u002FTanStack\u002Frouter\u002Ftree\u002FHEAD\u002Fpackages\u002Frouter-core\u002Fskills\u002Frouter-core\u002Fdata-loading","---\nname: data-loading\ndescription: >-\n  Route loader option, loaderDeps for cache keys, staleTime\u002FgcTime\u002F\n  defaultPreloadStaleTime SWR caching, pendingComponent\u002FpendingMs\u002F\n  pendingMinMs, errorComponent\u002FonError\u002FonCatch, beforeLoad, router\n  context and createRootRouteWithContext DI pattern, router.invalidate,\n  Await component, deferred data loading with unawaited promises.\nmetadata:\n  type: sub-skill\n  library: tanstack-router\n  library_version: '1.171.15'\nrequires:\n  - router-core\nsources:\n  - TanStack\u002Frouter:docs\u002Frouter\u002Fguide\u002Fdata-loading.md\n  - TanStack\u002Frouter:docs\u002Frouter\u002Fguide\u002Fdeferred-data-loading.md\n  - TanStack\u002Frouter:docs\u002Frouter\u002Fguide\u002Frouter-context.md\n  - TanStack\u002Frouter:docs\u002Frouter\u002Fguide\u002Fdata-mutations.md\n---\n\n# Data Loading\n\n## Setup\n\nBasic loader returning data, consumed via `useLoaderData`:\n\n```tsx\n\u002F\u002F src\u002Froutes\u002Fposts.tsx\nimport { createFileRoute } from '@tanstack\u002Freact-router'\n\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: () => fetchPosts(),\n  component: PostsComponent,\n})\n\nfunction PostsComponent() {\n  const posts = Route.useLoaderData()\n  return (\n    \u003Cul>\n      {posts.map((post) => (\n        \u003Cli key={post.id}>{post.title}\u003C\u002Fli>\n      ))}\n    \u003C\u002Ful>\n  )\n}\n```\n\nIn code-split components, use `getRouteApi` instead of importing Route:\n\n```tsx\nimport { getRouteApi } from '@tanstack\u002Freact-router'\n\nconst routeApi = getRouteApi('\u002Fposts')\n\nfunction PostsComponent() {\n  const posts = routeApi.useLoaderData()\n  return \u003Cul>{\u002F* ... *\u002F}\u003C\u002Ful>\n}\n```\n\n## Route Loading Lifecycle\n\nThe router executes this sequence on every URL\u002Fhistory update:\n\n1. **Route Matching** (top-down)\n   - `route.params.parse`\n   - `route.validateSearch`\n2. **Route Pre-Loading** (serial)\n   - `route.beforeLoad`\n   - `route.onError` → `route.errorComponent`\n3. **Route Loading** (parallel)\n   - `route.component.preload?`\n   - `route.loader`\n     - `route.pendingComponent` (optional)\n     - `route.component`\n   - `route.onError` → `route.errorComponent`\n\nKey: `beforeLoad` runs before `loader`. `beforeLoad` for a parent runs before its children's `beforeLoad`. Throwing in `beforeLoad` prevents all children from loading.\n\n## Core Patterns\n\n### loaderDeps for Search-Param-Driven Cache Keys\n\nLoaders don't receive search params directly. Use `loaderDeps` to declare which search params affect the cache key:\n\n```tsx\n\u002F\u002F src\u002Froutes\u002Fposts.tsx\nimport { createFileRoute } from '@tanstack\u002Freact-router'\n\nexport const Route = createFileRoute('\u002Fposts')({\n  validateSearch: (search) => ({\n    offset: Number(search.offset) || 0,\n    limit: Number(search.limit) || 10,\n  }),\n  loaderDeps: ({ search: { offset, limit } }) => ({ offset, limit }),\n  loader: ({ deps: { offset, limit } }) => fetchPosts({ offset, limit }),\n})\n```\n\nWhen deps change, the route reloads regardless of `staleTime`.\n\n### SWR Caching Configuration\n\nTanStack Router has built-in Stale-While-Revalidate caching keyed on the route's parsed pathname + `loaderDeps`.\n\nDefaults:\n\n- **`staleTime`: 0** — data is always considered stale, reloads in background on re-match\n- **`preloadStaleTime`: 30 seconds** — preloaded data won't be refetched for 30s\n- **`gcTime`: 30 minutes** — unused cache entries garbage collected after 30min\n\n```tsx\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: () => fetchPosts(),\n  staleTime: 10_000, \u002F\u002F 10s: data considered fresh for 10 seconds\n  gcTime: 5 * 60 * 1000, \u002F\u002F 5min: garbage collect after 5 minutes\n})\n```\n\nDisable SWR caching entirely:\n\n```tsx\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: () => fetchPosts(),\n  staleTime: Infinity,\n})\n```\n\nGlobally:\n\n```tsx\nconst router = createRouter({\n  routeTree,\n  defaultStaleTime: Infinity,\n})\n```\n\n### Pending States (pendingComponent \u002F pendingMs \u002F pendingMinMs)\n\nBy default, a pending component shows after 1 second (`pendingMs: 1000`) and stays for at least 500ms (`pendingMinMs: 500`) to avoid flash.\n\n```tsx\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: () => fetchPosts(),\n  pendingMs: 500,\n  pendingMinMs: 300,\n  pendingComponent: () => \u003Cdiv>Loading posts...\u003C\u002Fdiv>,\n  component: PostsComponent,\n})\n```\n\n### Router Context with createRootRouteWithContext (Factory Pattern)\n\n`createRootRouteWithContext` is a factory that returns a function. You must call it twice — the first call passes the generic type, the second passes route options:\n\n```tsx\n\u002F\u002F src\u002Froutes\u002F__root.tsx\nimport { createRootRouteWithContext, Outlet } from '@tanstack\u002Freact-router'\n\ninterface MyRouterContext {\n  auth: { userId: string }\n  fetchPosts: () => Promise\u003CPost[]>\n}\n\n\u002F\u002F NOTE: double call — createRootRouteWithContext\u003CType>()({...})\nexport const Route = createRootRouteWithContext\u003CMyRouterContext>()({\n  component: () => \u003COutlet \u002F>,\n})\n```\n\nSupply the context when creating the router:\n\n```tsx\n\u002F\u002F src\u002Frouter.tsx\nimport { createRouter } from '@tanstack\u002Freact-router'\nimport { routeTree } from '.\u002FrouteTree.gen'\n\nconst router = createRouter({\n  routeTree,\n  context: {\n    auth: { userId: '123' },\n    fetchPosts,\n  },\n})\n```\n\nConsume in loaders and beforeLoad:\n\n```tsx\n\u002F\u002F src\u002Froutes\u002Fposts.tsx\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: ({ context: { fetchPosts } }) => fetchPosts(),\n})\n```\n\nTo pass React hook values into the router context, call the hook above `RouterProvider` and inject via the `context` prop:\n\n```tsx\nimport { RouterProvider } from '@tanstack\u002Freact-router'\n\nfunction InnerApp() {\n  const auth = useAuth()\n  return \u003CRouterProvider router={router} context={{ auth }} \u002F>\n}\n\nfunction App() {\n  return (\n    \u003CAuthProvider>\n      \u003CInnerApp \u002F>\n    \u003C\u002FAuthProvider>\n  )\n}\n```\n\nRoute-level context via `beforeLoad`:\n\n```tsx\nexport const Route = createFileRoute('\u002Fposts')({\n  beforeLoad: ({ context }) => ({\n    fetchPosts: context.fetchPosts,\n  }),\n  loader: ({ context: { fetchPosts } }) => fetchPosts(),\n})\n```\n\nKeep the implementation SSR-safe when the router is used by TanStack Start. A relative `fetch('\u002Fapi\u002Fposts')` works in a browser event handler, but Node and many server runtimes require an absolute URL during SSR. For app-internal data in Start, call a server function from the loader:\n\n```tsx\nimport { createServerFn } from '@tanstack\u002Freact-start'\n\nconst getPosts = createServerFn({ method: 'GET' }).handler(() => {\n  return db.posts.findMany()\n})\n\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: () => getPosts(),\n})\n```\n\nUse a server route plus an origin-derived absolute URL only when the HTTP boundary itself is required. Do not hard-code the production origin.\n\n### Deferred Data Loading\n\nReturn unawaited promises from the loader for non-critical data. Use the `Await` component to render them:\n\n```tsx\nimport { createFileRoute, Await } from '@tanstack\u002Freact-router'\n\nexport const Route = createFileRoute('\u002Fposts\u002F$postId')({\n  loader: async ({ params: { postId } }) => {\n    \u002F\u002F Slow data — do NOT await\n    const slowDataPromise = fetchComments(postId)\n    \u002F\u002F Fast data — await\n    const post = await fetchPost(postId)\n\n    return { post, deferredComments: slowDataPromise }\n  },\n  component: PostComponent,\n})\n\nfunction PostComponent() {\n  const { post, deferredComments } = Route.useLoaderData()\n\n  return (\n    \u003Cdiv>\n      \u003Ch1>{post.title}\u003C\u002Fh1>\n      \u003CAwait\n        promise={deferredComments}\n        fallback={\u003Cdiv>Loading comments...\u003C\u002Fdiv>}\n      >\n        {(comments) => (\n          \u003Cul>\n            {comments.map((c) => (\n              \u003Cli key={c.id}>{c.body}\u003C\u002Fli>\n            ))}\n          \u003C\u002Ful>\n        )}\n      \u003C\u002FAwait>\n    \u003C\u002Fdiv>\n  )\n}\n```\n\n### Invalidation After Mutations\n\n`router.invalidate()` forces all active route loaders to re-run and marks all cached data as stale:\n\n```tsx\nimport { useRouter } from '@tanstack\u002Freact-router'\n\nfunction AddPostButton() {\n  const router = useRouter()\n\n  const handleAdd = async () => {\n    await createPost({ title: 'New post' })\n    await router.invalidate({ sync: true })\n  }\n\n  return \u003Cbutton onClick={handleAdd}>Add Post\u003C\u002Fbutton>\n}\n```\n\nUse `await router.invalidate({ sync: true })` when the next step requires refreshed loader data.\n\nTreat the mutation and invalidation as one workflow. The mutation must persist before invalidation starts, and the loader must read from the same authoritative store. Verify create, update, and delete through the rendered route, including a fresh reload; local component state can hide a stale loader or non-persistent write.\n\n### Error Handling\n\n```tsx\nimport {\n  createFileRoute,\n  ErrorComponent,\n  useRouter,\n} from '@tanstack\u002Freact-router'\n\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: () => fetchPosts(),\n  errorComponent: ({ error, reset }) => {\n    const router = useRouter()\n\n    if (error instanceof CustomError) {\n      return \u003Cdiv>{error.message}\u003C\u002Fdiv>\n    }\n\n    return (\n      \u003Cdiv>\n        \u003CErrorComponent error={error} \u002F>\n        \u003Cbutton\n          onClick={() => {\n            \u002F\u002F For loader errors, invalidate to re-run loader + reset boundary\n            router.invalidate()\n          }}\n        >\n          Retry\n        \u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n    )\n  },\n})\n```\n\n### Loader Parameters\n\nThe `loader` function receives:\n\n- `params` — parsed path params\n- `deps` — object from `loaderDeps`\n- `context` — merged parent + beforeLoad context\n- `abortController` — cancelled when route unloads or becomes stale\n- `cause` — `'enter'`, `'stay'`, or `'preload'`\n- `preload` — `true` during preloading\n- `location` — current location object\n- `parentMatchPromise` — promise of parent route match\n- `route` — the route object itself\n\n```tsx\nexport const Route = createFileRoute('\u002Fposts\u002F$postId')({\n  loader: ({ params: { postId }, abortController }) =>\n    fetchPost(postId, { signal: abortController.signal }),\n})\n```\n\n## Common Mistakes\n\n### CRITICAL: Assuming loaders only run on the server\n\nTanStack Router is **client-first**. Loaders run on the **client** by default. They also run on the server when using TanStack Start for SSR, but the default mental model is client-side execution.\n\n```tsx\n\u002F\u002F WRONG — this will crash in the browser\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: async () => {\n    const fs = await import('fs') \u002F\u002F Node.js only!\n    return JSON.parse(fs.readFileSync('...')) \u002F\u002F fails in browser\n  },\n})\n\n\u002F\u002F CORRECT for an SPA — use a client-safe API helper\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: () => fetchPosts(),\n})\n```\n\nDo NOT put database queries, filesystem access, or server-only code directly in loaders. In TanStack Start, put that work in a server function and call the function from the loader. Do not use a relative `fetch('\u002Fapi\u002F...')` in an SSR loader.\n\n### MEDIUM: Not understanding staleTime default is 0\n\nDefault `staleTime` is `0`. This means data reloads in the background on every route re-match. This is intentional — it ensures fresh data. But if your data is expensive or static, set `staleTime`:\n\n```tsx\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: () => fetchPosts(),\n  staleTime: 60_000, \u002F\u002F Consider fresh for 1 minute\n})\n```\n\n### HIGH: Using reset() instead of router.invalidate() in error components\n\n`reset()` only resets the error boundary UI. It does NOT re-run the loader. For loader errors, use `router.invalidate()` which re-runs loaders and resets the boundary:\n\n```tsx\n\u002F\u002F WRONG — resets boundary but loader still has stale error\nfunction PostErrorComponent({ error, reset }) {\n  return \u003Cbutton onClick={reset}>Retry\u003C\u002Fbutton>\n}\n\n\u002F\u002F CORRECT — re-runs loader and resets the error boundary\nfunction PostErrorComponent({ error }) {\n  const router = useRouter()\n  return \u003Cbutton onClick={() => router.invalidate()}>Retry\u003C\u002Fbutton>\n}\n```\n\n### HIGH: Missing double parentheses on createRootRouteWithContext\n\n`createRootRouteWithContext\u003CType>()` is a factory — it returns a function. Must call twice:\n\n```tsx\n\u002F\u002F WRONG — missing second call, passes options to the factory\nconst rootRoute = createRootRouteWithContext\u003C{ auth: AuthState }>({\n  component: RootComponent,\n})\n\n\u002F\u002F CORRECT — factory()({options})\nconst rootRoute = createRootRouteWithContext\u003C{ auth: AuthState }>()({\n  component: RootComponent,\n})\n```\n\n### HIGH: Using React hooks in beforeLoad or loader\n\n`beforeLoad` and `loader` are NOT React components. You cannot call hooks inside them. Use router context to inject values from hooks:\n\n```tsx\n\u002F\u002F WRONG — hooks cannot be called outside React components\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: () => {\n    const auth = useAuth() \u002F\u002F This will crash!\n    return fetchPosts(auth.userId)\n  },\n})\n\n\u002F\u002F CORRECT — inject hook values via router context\n\u002F\u002F In your App component:\nfunction InnerApp() {\n  const auth = useAuth()\n  return \u003CRouterProvider router={router} context={{ auth }} \u002F>\n}\n\n\u002F\u002F In your route:\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: ({ context: { auth } }) => fetchPosts(auth.userId),\n})\n```\n\n### HIGH: Property order affects TypeScript inference\n\nRouter infers types from earlier properties into later ones. Declaring `beforeLoad` after `loader` means context from `beforeLoad` is unknown in the loader:\n\n```tsx\n\u002F\u002F WRONG — context.user is unknown because beforeLoad declared after loader\nexport const Route = createFileRoute('\u002Fadmin')({\n  loader: ({ context }) => fetchData(context.user),\n  beforeLoad: () => ({ user: getUser() }),\n})\n\n\u002F\u002F CORRECT — validateSearch → loaderDeps → beforeLoad → loader\nexport const Route = createFileRoute('\u002Fadmin')({\n  beforeLoad: () => ({ user: getUser() }),\n  loader: ({ context }) => fetchData(context.user),\n})\n```\n\n### HIGH: Returning entire search object from loaderDeps\n\n```tsx\n\u002F\u002F WRONG — loader re-runs on ANY search param change\nloaderDeps: ({ search }) => search\n\n\u002F\u002F CORRECT — only re-run when page changes\nloaderDeps: ({ search }) => ({ page: search.page })\n```\n\nReturning the whole `search` object means unrelated param changes (e.g., `sortDirection`, `viewMode`) trigger unnecessary reloads because deep equality fails on the entire object.\n\n## Tensions\n\n- **Client-first loaders vs SSR expectations**: Loaders run on the client by default. When using SSR (TanStack Start), they run on both client and server. Browser-only APIs work by default but break under SSR. Server-only APIs (fs, db) break by default but work under Start server functions. See **router-core\u002Fssr\u002FSKILL.md**.\n- **Built-in SWR cache vs external cache coordination**: Router has built-in caching. When using TanStack Query, set `defaultPreloadStaleTime: 0` to avoid double-caching. See **compositions\u002Frouter-query\u002FSKILL.md**.\n\n---\n\n## Cross-References\n\n- See also: **router-core\u002Fsearch-params\u002FSKILL.md** — `loaderDeps` consumes validated search params as cache keys\n- See also: **compositions\u002Frouter-query\u002FSKILL.md** — for external cache coordination with TanStack Query\n",{"data":51,"body":62},{"name":4,"description":6,"metadata":52,"requires":55,"sources":57},{"type":53,"library":18,"library_version":54},"sub-skill","1.171.15",[56],"router-core",[58,59,60,61],"TanStack\u002Frouter:docs\u002Frouter\u002Fguide\u002Fdata-loading.md","TanStack\u002Frouter:docs\u002Frouter\u002Fguide\u002Fdeferred-data-loading.md","TanStack\u002Frouter:docs\u002Frouter\u002Fguide\u002Frouter-context.md","TanStack\u002Frouter:docs\u002Frouter\u002Fguide\u002Fdata-mutations.md",{"type":63,"children":64},"root",[65,73,80,95,577,590,784,790,795,938,980,986,993,1006,1441,1453,1459,1470,1475,1525,1692,1697,1809,1814,1889,1895,1916,2126,2132,2143,2418,2423,2644,2649,2777,2798,3053,3064,3263,3276,3551,3556,3562,3575,4380,4386,4397,4705,4718,4723,4729,5256,5262,5274,5408,5578,5584,5590,5609,5936,5949,5955,5981,6102,6108,6126,6369,6375,6386,6575,6581,6598,7020,7026,7052,7408,7414,7541,7568,7574,7617,7621,7627,7658],{"type":66,"tag":67,"props":68,"children":69},"element","h1",{"id":4},[70],{"type":71,"value":72},"text","Data Loading",{"type":66,"tag":74,"props":75,"children":77},"h2",{"id":76},"setup",[78],{"type":71,"value":79},"Setup",{"type":66,"tag":81,"props":82,"children":83},"p",{},[84,86,93],{"type":71,"value":85},"Basic loader returning data, consumed via ",{"type":66,"tag":87,"props":88,"children":90},"code",{"className":89},[],[91],{"type":71,"value":92},"useLoaderData",{"type":71,"value":94},":",{"type":66,"tag":96,"props":97,"children":102},"pre",{"className":98,"code":99,"language":100,"meta":101,"style":101},"language-tsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F src\u002Froutes\u002Fposts.tsx\nimport { createFileRoute } from '@tanstack\u002Freact-router'\n\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: () => fetchPosts(),\n  component: PostsComponent,\n})\n\nfunction PostsComponent() {\n  const posts = Route.useLoaderData()\n  return (\n    \u003Cul>\n      {posts.map((post) => (\n        \u003Cli key={post.id}>{post.title}\u003C\u002Fli>\n      ))}\n    \u003C\u002Ful>\n  )\n}\n","tsx","",[103],{"type":66,"tag":87,"props":104,"children":105},{"__ignoreMap":101},[106,118,166,176,235,273,296,310,318,340,378,392,411,461,529,543,560,569],{"type":66,"tag":107,"props":108,"children":111},"span",{"class":109,"line":110},"line",1,[112],{"type":66,"tag":107,"props":113,"children":115},{"style":114},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[116],{"type":71,"value":117},"\u002F\u002F src\u002Froutes\u002Fposts.tsx\n",{"type":66,"tag":107,"props":119,"children":121},{"class":109,"line":120},2,[122,128,134,140,145,150,155,161],{"type":66,"tag":107,"props":123,"children":125},{"style":124},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[126],{"type":71,"value":127},"import",{"type":66,"tag":107,"props":129,"children":131},{"style":130},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[132],{"type":71,"value":133}," {",{"type":66,"tag":107,"props":135,"children":137},{"style":136},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[138],{"type":71,"value":139}," createFileRoute",{"type":66,"tag":107,"props":141,"children":142},{"style":130},[143],{"type":71,"value":144}," }",{"type":66,"tag":107,"props":146,"children":147},{"style":124},[148],{"type":71,"value":149}," from",{"type":66,"tag":107,"props":151,"children":152},{"style":130},[153],{"type":71,"value":154}," '",{"type":66,"tag":107,"props":156,"children":158},{"style":157},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[159],{"type":71,"value":160},"@tanstack\u002Freact-router",{"type":66,"tag":107,"props":162,"children":163},{"style":130},[164],{"type":71,"value":165},"'\n",{"type":66,"tag":107,"props":167,"children":169},{"class":109,"line":168},3,[170],{"type":66,"tag":107,"props":171,"children":173},{"emptyLinePlaceholder":172},true,[174],{"type":71,"value":175},"\n",{"type":66,"tag":107,"props":177,"children":179},{"class":109,"line":178},4,[180,185,191,196,201,206,211,216,221,225,230],{"type":66,"tag":107,"props":181,"children":182},{"style":124},[183],{"type":71,"value":184},"export",{"type":66,"tag":107,"props":186,"children":188},{"style":187},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[189],{"type":71,"value":190}," const",{"type":66,"tag":107,"props":192,"children":193},{"style":136},[194],{"type":71,"value":195}," Route ",{"type":66,"tag":107,"props":197,"children":198},{"style":130},[199],{"type":71,"value":200},"=",{"type":66,"tag":107,"props":202,"children":204},{"style":203},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[205],{"type":71,"value":139},{"type":66,"tag":107,"props":207,"children":208},{"style":136},[209],{"type":71,"value":210},"(",{"type":66,"tag":107,"props":212,"children":213},{"style":130},[214],{"type":71,"value":215},"'",{"type":66,"tag":107,"props":217,"children":218},{"style":157},[219],{"type":71,"value":220},"\u002Fposts",{"type":66,"tag":107,"props":222,"children":223},{"style":130},[224],{"type":71,"value":215},{"type":66,"tag":107,"props":226,"children":227},{"style":136},[228],{"type":71,"value":229},")(",{"type":66,"tag":107,"props":231,"children":232},{"style":130},[233],{"type":71,"value":234},"{\n",{"type":66,"tag":107,"props":236,"children":238},{"class":109,"line":237},5,[239,244,248,253,258,263,268],{"type":66,"tag":107,"props":240,"children":241},{"style":203},[242],{"type":71,"value":243},"  loader",{"type":66,"tag":107,"props":245,"children":246},{"style":130},[247],{"type":71,"value":94},{"type":66,"tag":107,"props":249,"children":250},{"style":130},[251],{"type":71,"value":252}," ()",{"type":66,"tag":107,"props":254,"children":255},{"style":187},[256],{"type":71,"value":257}," =>",{"type":66,"tag":107,"props":259,"children":260},{"style":203},[261],{"type":71,"value":262}," fetchPosts",{"type":66,"tag":107,"props":264,"children":265},{"style":136},[266],{"type":71,"value":267},"()",{"type":66,"tag":107,"props":269,"children":270},{"style":130},[271],{"type":71,"value":272},",\n",{"type":66,"tag":107,"props":274,"children":276},{"class":109,"line":275},6,[277,283,287,292],{"type":66,"tag":107,"props":278,"children":280},{"style":279},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[281],{"type":71,"value":282},"  component",{"type":66,"tag":107,"props":284,"children":285},{"style":130},[286],{"type":71,"value":94},{"type":66,"tag":107,"props":288,"children":289},{"style":136},[290],{"type":71,"value":291}," PostsComponent",{"type":66,"tag":107,"props":293,"children":294},{"style":130},[295],{"type":71,"value":272},{"type":66,"tag":107,"props":297,"children":299},{"class":109,"line":298},7,[300,305],{"type":66,"tag":107,"props":301,"children":302},{"style":130},[303],{"type":71,"value":304},"}",{"type":66,"tag":107,"props":306,"children":307},{"style":136},[308],{"type":71,"value":309},")\n",{"type":66,"tag":107,"props":311,"children":313},{"class":109,"line":312},8,[314],{"type":66,"tag":107,"props":315,"children":316},{"emptyLinePlaceholder":172},[317],{"type":71,"value":175},{"type":66,"tag":107,"props":319,"children":321},{"class":109,"line":320},9,[322,327,331,335],{"type":66,"tag":107,"props":323,"children":324},{"style":187},[325],{"type":71,"value":326},"function",{"type":66,"tag":107,"props":328,"children":329},{"style":203},[330],{"type":71,"value":291},{"type":66,"tag":107,"props":332,"children":333},{"style":130},[334],{"type":71,"value":267},{"type":66,"tag":107,"props":336,"children":337},{"style":130},[338],{"type":71,"value":339}," {\n",{"type":66,"tag":107,"props":341,"children":343},{"class":109,"line":342},10,[344,349,354,359,364,369,373],{"type":66,"tag":107,"props":345,"children":346},{"style":187},[347],{"type":71,"value":348},"  const",{"type":66,"tag":107,"props":350,"children":351},{"style":136},[352],{"type":71,"value":353}," posts",{"type":66,"tag":107,"props":355,"children":356},{"style":130},[357],{"type":71,"value":358}," =",{"type":66,"tag":107,"props":360,"children":361},{"style":136},[362],{"type":71,"value":363}," Route",{"type":66,"tag":107,"props":365,"children":366},{"style":130},[367],{"type":71,"value":368},".",{"type":66,"tag":107,"props":370,"children":371},{"style":203},[372],{"type":71,"value":92},{"type":66,"tag":107,"props":374,"children":375},{"style":279},[376],{"type":71,"value":377},"()\n",{"type":66,"tag":107,"props":379,"children":381},{"class":109,"line":380},11,[382,387],{"type":66,"tag":107,"props":383,"children":384},{"style":124},[385],{"type":71,"value":386},"  return",{"type":66,"tag":107,"props":388,"children":389},{"style":279},[390],{"type":71,"value":391}," (\n",{"type":66,"tag":107,"props":393,"children":395},{"class":109,"line":394},12,[396,401,406],{"type":66,"tag":107,"props":397,"children":398},{"style":130},[399],{"type":71,"value":400},"    \u003C",{"type":66,"tag":107,"props":402,"children":403},{"style":279},[404],{"type":71,"value":405},"ul",{"type":66,"tag":107,"props":407,"children":408},{"style":130},[409],{"type":71,"value":410},">\n",{"type":66,"tag":107,"props":412,"children":414},{"class":109,"line":413},13,[415,420,425,429,434,438,442,448,453,457],{"type":66,"tag":107,"props":416,"children":417},{"style":130},[418],{"type":71,"value":419},"      {",{"type":66,"tag":107,"props":421,"children":422},{"style":136},[423],{"type":71,"value":424},"posts",{"type":66,"tag":107,"props":426,"children":427},{"style":130},[428],{"type":71,"value":368},{"type":66,"tag":107,"props":430,"children":431},{"style":203},[432],{"type":71,"value":433},"map",{"type":66,"tag":107,"props":435,"children":436},{"style":136},[437],{"type":71,"value":210},{"type":66,"tag":107,"props":439,"children":440},{"style":130},[441],{"type":71,"value":210},{"type":66,"tag":107,"props":443,"children":445},{"style":444},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[446],{"type":71,"value":447},"post",{"type":66,"tag":107,"props":449,"children":450},{"style":130},[451],{"type":71,"value":452},")",{"type":66,"tag":107,"props":454,"children":455},{"style":187},[456],{"type":71,"value":257},{"type":66,"tag":107,"props":458,"children":459},{"style":136},[460],{"type":71,"value":391},{"type":66,"tag":107,"props":462,"children":464},{"class":109,"line":463},14,[465,470,475,480,485,489,493,498,503,507,511,516,521,525],{"type":66,"tag":107,"props":466,"children":467},{"style":130},[468],{"type":71,"value":469},"        \u003C",{"type":66,"tag":107,"props":471,"children":472},{"style":279},[473],{"type":71,"value":474},"li",{"type":66,"tag":107,"props":476,"children":477},{"style":187},[478],{"type":71,"value":479}," key",{"type":66,"tag":107,"props":481,"children":482},{"style":130},[483],{"type":71,"value":484},"={",{"type":66,"tag":107,"props":486,"children":487},{"style":136},[488],{"type":71,"value":447},{"type":66,"tag":107,"props":490,"children":491},{"style":130},[492],{"type":71,"value":368},{"type":66,"tag":107,"props":494,"children":495},{"style":136},[496],{"type":71,"value":497},"id",{"type":66,"tag":107,"props":499,"children":500},{"style":130},[501],{"type":71,"value":502},"}>{",{"type":66,"tag":107,"props":504,"children":505},{"style":136},[506],{"type":71,"value":447},{"type":66,"tag":107,"props":508,"children":509},{"style":130},[510],{"type":71,"value":368},{"type":66,"tag":107,"props":512,"children":513},{"style":136},[514],{"type":71,"value":515},"title",{"type":66,"tag":107,"props":517,"children":518},{"style":130},[519],{"type":71,"value":520},"}\u003C\u002F",{"type":66,"tag":107,"props":522,"children":523},{"style":279},[524],{"type":71,"value":474},{"type":66,"tag":107,"props":526,"children":527},{"style":130},[528],{"type":71,"value":410},{"type":66,"tag":107,"props":530,"children":532},{"class":109,"line":531},15,[533,538],{"type":66,"tag":107,"props":534,"children":535},{"style":136},[536],{"type":71,"value":537},"      ))",{"type":66,"tag":107,"props":539,"children":540},{"style":130},[541],{"type":71,"value":542},"}\n",{"type":66,"tag":107,"props":544,"children":546},{"class":109,"line":545},16,[547,552,556],{"type":66,"tag":107,"props":548,"children":549},{"style":130},[550],{"type":71,"value":551},"    \u003C\u002F",{"type":66,"tag":107,"props":553,"children":554},{"style":279},[555],{"type":71,"value":405},{"type":66,"tag":107,"props":557,"children":558},{"style":130},[559],{"type":71,"value":410},{"type":66,"tag":107,"props":561,"children":563},{"class":109,"line":562},17,[564],{"type":66,"tag":107,"props":565,"children":566},{"style":279},[567],{"type":71,"value":568},"  )\n",{"type":66,"tag":107,"props":570,"children":572},{"class":109,"line":571},18,[573],{"type":66,"tag":107,"props":574,"children":575},{"style":130},[576],{"type":71,"value":542},{"type":66,"tag":81,"props":578,"children":579},{},[580,582,588],{"type":71,"value":581},"In code-split components, use ",{"type":66,"tag":87,"props":583,"children":585},{"className":584},[],[586],{"type":71,"value":587},"getRouteApi",{"type":71,"value":589}," instead of importing Route:",{"type":66,"tag":96,"props":591,"children":593},{"className":98,"code":592,"language":100,"meta":101,"style":101},"import { getRouteApi } from '@tanstack\u002Freact-router'\n\nconst routeApi = getRouteApi('\u002Fposts')\n\nfunction PostsComponent() {\n  const posts = routeApi.useLoaderData()\n  return \u003Cul>{\u002F* ... *\u002F}\u003C\u002Ful>\n}\n",[594],{"type":66,"tag":87,"props":595,"children":596},{"__ignoreMap":101},[597,633,640,681,688,707,739,777],{"type":66,"tag":107,"props":598,"children":599},{"class":109,"line":110},[600,604,608,613,617,621,625,629],{"type":66,"tag":107,"props":601,"children":602},{"style":124},[603],{"type":71,"value":127},{"type":66,"tag":107,"props":605,"children":606},{"style":130},[607],{"type":71,"value":133},{"type":66,"tag":107,"props":609,"children":610},{"style":136},[611],{"type":71,"value":612}," getRouteApi",{"type":66,"tag":107,"props":614,"children":615},{"style":130},[616],{"type":71,"value":144},{"type":66,"tag":107,"props":618,"children":619},{"style":124},[620],{"type":71,"value":149},{"type":66,"tag":107,"props":622,"children":623},{"style":130},[624],{"type":71,"value":154},{"type":66,"tag":107,"props":626,"children":627},{"style":157},[628],{"type":71,"value":160},{"type":66,"tag":107,"props":630,"children":631},{"style":130},[632],{"type":71,"value":165},{"type":66,"tag":107,"props":634,"children":635},{"class":109,"line":120},[636],{"type":66,"tag":107,"props":637,"children":638},{"emptyLinePlaceholder":172},[639],{"type":71,"value":175},{"type":66,"tag":107,"props":641,"children":642},{"class":109,"line":168},[643,648,653,657,661,665,669,673,677],{"type":66,"tag":107,"props":644,"children":645},{"style":187},[646],{"type":71,"value":647},"const",{"type":66,"tag":107,"props":649,"children":650},{"style":136},[651],{"type":71,"value":652}," routeApi ",{"type":66,"tag":107,"props":654,"children":655},{"style":130},[656],{"type":71,"value":200},{"type":66,"tag":107,"props":658,"children":659},{"style":203},[660],{"type":71,"value":612},{"type":66,"tag":107,"props":662,"children":663},{"style":136},[664],{"type":71,"value":210},{"type":66,"tag":107,"props":666,"children":667},{"style":130},[668],{"type":71,"value":215},{"type":66,"tag":107,"props":670,"children":671},{"style":157},[672],{"type":71,"value":220},{"type":66,"tag":107,"props":674,"children":675},{"style":130},[676],{"type":71,"value":215},{"type":66,"tag":107,"props":678,"children":679},{"style":136},[680],{"type":71,"value":309},{"type":66,"tag":107,"props":682,"children":683},{"class":109,"line":178},[684],{"type":66,"tag":107,"props":685,"children":686},{"emptyLinePlaceholder":172},[687],{"type":71,"value":175},{"type":66,"tag":107,"props":689,"children":690},{"class":109,"line":237},[691,695,699,703],{"type":66,"tag":107,"props":692,"children":693},{"style":187},[694],{"type":71,"value":326},{"type":66,"tag":107,"props":696,"children":697},{"style":203},[698],{"type":71,"value":291},{"type":66,"tag":107,"props":700,"children":701},{"style":130},[702],{"type":71,"value":267},{"type":66,"tag":107,"props":704,"children":705},{"style":130},[706],{"type":71,"value":339},{"type":66,"tag":107,"props":708,"children":709},{"class":109,"line":275},[710,714,718,722,727,731,735],{"type":66,"tag":107,"props":711,"children":712},{"style":187},[713],{"type":71,"value":348},{"type":66,"tag":107,"props":715,"children":716},{"style":136},[717],{"type":71,"value":353},{"type":66,"tag":107,"props":719,"children":720},{"style":130},[721],{"type":71,"value":358},{"type":66,"tag":107,"props":723,"children":724},{"style":136},[725],{"type":71,"value":726}," routeApi",{"type":66,"tag":107,"props":728,"children":729},{"style":130},[730],{"type":71,"value":368},{"type":66,"tag":107,"props":732,"children":733},{"style":203},[734],{"type":71,"value":92},{"type":66,"tag":107,"props":736,"children":737},{"style":279},[738],{"type":71,"value":377},{"type":66,"tag":107,"props":740,"children":741},{"class":109,"line":298},[742,746,751,755,760,765,769,773],{"type":66,"tag":107,"props":743,"children":744},{"style":124},[745],{"type":71,"value":386},{"type":66,"tag":107,"props":747,"children":748},{"style":130},[749],{"type":71,"value":750}," \u003C",{"type":66,"tag":107,"props":752,"children":753},{"style":279},[754],{"type":71,"value":405},{"type":66,"tag":107,"props":756,"children":757},{"style":130},[758],{"type":71,"value":759},">{",{"type":66,"tag":107,"props":761,"children":762},{"style":114},[763],{"type":71,"value":764},"\u002F* ... *\u002F",{"type":66,"tag":107,"props":766,"children":767},{"style":130},[768],{"type":71,"value":520},{"type":66,"tag":107,"props":770,"children":771},{"style":279},[772],{"type":71,"value":405},{"type":66,"tag":107,"props":774,"children":775},{"style":130},[776],{"type":71,"value":410},{"type":66,"tag":107,"props":778,"children":779},{"class":109,"line":312},[780],{"type":66,"tag":107,"props":781,"children":782},{"style":130},[783],{"type":71,"value":542},{"type":66,"tag":74,"props":785,"children":787},{"id":786},"route-loading-lifecycle",[788],{"type":71,"value":789},"Route Loading Lifecycle",{"type":66,"tag":81,"props":791,"children":792},{},[793],{"type":71,"value":794},"The router executes this sequence on every URL\u002Fhistory update:",{"type":66,"tag":796,"props":797,"children":798},"ol",{},[799,831,870],{"type":66,"tag":474,"props":800,"children":801},{},[802,808,810],{"type":66,"tag":803,"props":804,"children":805},"strong",{},[806],{"type":71,"value":807},"Route Matching",{"type":71,"value":809}," (top-down)\n",{"type":66,"tag":405,"props":811,"children":812},{},[813,822],{"type":66,"tag":474,"props":814,"children":815},{},[816],{"type":66,"tag":87,"props":817,"children":819},{"className":818},[],[820],{"type":71,"value":821},"route.params.parse",{"type":66,"tag":474,"props":823,"children":824},{},[825],{"type":66,"tag":87,"props":826,"children":828},{"className":827},[],[829],{"type":71,"value":830},"route.validateSearch",{"type":66,"tag":474,"props":832,"children":833},{},[834,839,841],{"type":66,"tag":803,"props":835,"children":836},{},[837],{"type":71,"value":838},"Route Pre-Loading",{"type":71,"value":840}," (serial)\n",{"type":66,"tag":405,"props":842,"children":843},{},[844,853],{"type":66,"tag":474,"props":845,"children":846},{},[847],{"type":66,"tag":87,"props":848,"children":850},{"className":849},[],[851],{"type":71,"value":852},"route.beforeLoad",{"type":66,"tag":474,"props":854,"children":855},{},[856,862,864],{"type":66,"tag":87,"props":857,"children":859},{"className":858},[],[860],{"type":71,"value":861},"route.onError",{"type":71,"value":863}," → ",{"type":66,"tag":87,"props":865,"children":867},{"className":866},[],[868],{"type":71,"value":869},"route.errorComponent",{"type":66,"tag":474,"props":871,"children":872},{},[873,878,880],{"type":66,"tag":803,"props":874,"children":875},{},[876],{"type":71,"value":877},"Route Loading",{"type":71,"value":879}," (parallel)\n",{"type":66,"tag":405,"props":881,"children":882},{},[883,892,924],{"type":66,"tag":474,"props":884,"children":885},{},[886],{"type":66,"tag":87,"props":887,"children":889},{"className":888},[],[890],{"type":71,"value":891},"route.component.preload?",{"type":66,"tag":474,"props":893,"children":894},{},[895,901],{"type":66,"tag":87,"props":896,"children":898},{"className":897},[],[899],{"type":71,"value":900},"route.loader",{"type":66,"tag":405,"props":902,"children":903},{},[904,915],{"type":66,"tag":474,"props":905,"children":906},{},[907,913],{"type":66,"tag":87,"props":908,"children":910},{"className":909},[],[911],{"type":71,"value":912},"route.pendingComponent",{"type":71,"value":914}," (optional)",{"type":66,"tag":474,"props":916,"children":917},{},[918],{"type":66,"tag":87,"props":919,"children":921},{"className":920},[],[922],{"type":71,"value":923},"route.component",{"type":66,"tag":474,"props":925,"children":926},{},[927,932,933],{"type":66,"tag":87,"props":928,"children":930},{"className":929},[],[931],{"type":71,"value":861},{"type":71,"value":863},{"type":66,"tag":87,"props":934,"children":936},{"className":935},[],[937],{"type":71,"value":869},{"type":66,"tag":81,"props":939,"children":940},{},[941,943,949,951,957,959,964,966,971,973,978],{"type":71,"value":942},"Key: ",{"type":66,"tag":87,"props":944,"children":946},{"className":945},[],[947],{"type":71,"value":948},"beforeLoad",{"type":71,"value":950}," runs before ",{"type":66,"tag":87,"props":952,"children":954},{"className":953},[],[955],{"type":71,"value":956},"loader",{"type":71,"value":958},". ",{"type":66,"tag":87,"props":960,"children":962},{"className":961},[],[963],{"type":71,"value":948},{"type":71,"value":965}," for a parent runs before its children's ",{"type":66,"tag":87,"props":967,"children":969},{"className":968},[],[970],{"type":71,"value":948},{"type":71,"value":972},". Throwing in ",{"type":66,"tag":87,"props":974,"children":976},{"className":975},[],[977],{"type":71,"value":948},{"type":71,"value":979}," prevents all children from loading.",{"type":66,"tag":74,"props":981,"children":983},{"id":982},"core-patterns",[984],{"type":71,"value":985},"Core Patterns",{"type":66,"tag":987,"props":988,"children":990},"h3",{"id":989},"loaderdeps-for-search-param-driven-cache-keys",[991],{"type":71,"value":992},"loaderDeps for Search-Param-Driven Cache Keys",{"type":66,"tag":81,"props":994,"children":995},{},[996,998,1004],{"type":71,"value":997},"Loaders don't receive search params directly. Use ",{"type":66,"tag":87,"props":999,"children":1001},{"className":1000},[],[1002],{"type":71,"value":1003},"loaderDeps",{"type":71,"value":1005}," to declare which search params affect the cache key:",{"type":66,"tag":96,"props":1007,"children":1009},{"className":98,"code":1008,"language":100,"meta":101,"style":101},"\u002F\u002F src\u002Froutes\u002Fposts.tsx\nimport { createFileRoute } from '@tanstack\u002Freact-router'\n\nexport const Route = createFileRoute('\u002Fposts')({\n  validateSearch: (search) => ({\n    offset: Number(search.offset) || 0,\n    limit: Number(search.limit) || 10,\n  }),\n  loaderDeps: ({ search: { offset, limit } }) => ({ offset, limit }),\n  loader: ({ deps: { offset, limit } }) => fetchPosts({ offset, limit }),\n})\n",[1010],{"type":66,"tag":87,"props":1011,"children":1012},{"__ignoreMap":101},[1013,1020,1055,1062,1109,1146,1192,1234,1250,1342,1430],{"type":66,"tag":107,"props":1014,"children":1015},{"class":109,"line":110},[1016],{"type":66,"tag":107,"props":1017,"children":1018},{"style":114},[1019],{"type":71,"value":117},{"type":66,"tag":107,"props":1021,"children":1022},{"class":109,"line":120},[1023,1027,1031,1035,1039,1043,1047,1051],{"type":66,"tag":107,"props":1024,"children":1025},{"style":124},[1026],{"type":71,"value":127},{"type":66,"tag":107,"props":1028,"children":1029},{"style":130},[1030],{"type":71,"value":133},{"type":66,"tag":107,"props":1032,"children":1033},{"style":136},[1034],{"type":71,"value":139},{"type":66,"tag":107,"props":1036,"children":1037},{"style":130},[1038],{"type":71,"value":144},{"type":66,"tag":107,"props":1040,"children":1041},{"style":124},[1042],{"type":71,"value":149},{"type":66,"tag":107,"props":1044,"children":1045},{"style":130},[1046],{"type":71,"value":154},{"type":66,"tag":107,"props":1048,"children":1049},{"style":157},[1050],{"type":71,"value":160},{"type":66,"tag":107,"props":1052,"children":1053},{"style":130},[1054],{"type":71,"value":165},{"type":66,"tag":107,"props":1056,"children":1057},{"class":109,"line":168},[1058],{"type":66,"tag":107,"props":1059,"children":1060},{"emptyLinePlaceholder":172},[1061],{"type":71,"value":175},{"type":66,"tag":107,"props":1063,"children":1064},{"class":109,"line":178},[1065,1069,1073,1077,1081,1085,1089,1093,1097,1101,1105],{"type":66,"tag":107,"props":1066,"children":1067},{"style":124},[1068],{"type":71,"value":184},{"type":66,"tag":107,"props":1070,"children":1071},{"style":187},[1072],{"type":71,"value":190},{"type":66,"tag":107,"props":1074,"children":1075},{"style":136},[1076],{"type":71,"value":195},{"type":66,"tag":107,"props":1078,"children":1079},{"style":130},[1080],{"type":71,"value":200},{"type":66,"tag":107,"props":1082,"children":1083},{"style":203},[1084],{"type":71,"value":139},{"type":66,"tag":107,"props":1086,"children":1087},{"style":136},[1088],{"type":71,"value":210},{"type":66,"tag":107,"props":1090,"children":1091},{"style":130},[1092],{"type":71,"value":215},{"type":66,"tag":107,"props":1094,"children":1095},{"style":157},[1096],{"type":71,"value":220},{"type":66,"tag":107,"props":1098,"children":1099},{"style":130},[1100],{"type":71,"value":215},{"type":66,"tag":107,"props":1102,"children":1103},{"style":136},[1104],{"type":71,"value":229},{"type":66,"tag":107,"props":1106,"children":1107},{"style":130},[1108],{"type":71,"value":234},{"type":66,"tag":107,"props":1110,"children":1111},{"class":109,"line":237},[1112,1117,1121,1126,1130,1134,1138,1142],{"type":66,"tag":107,"props":1113,"children":1114},{"style":203},[1115],{"type":71,"value":1116},"  validateSearch",{"type":66,"tag":107,"props":1118,"children":1119},{"style":130},[1120],{"type":71,"value":94},{"type":66,"tag":107,"props":1122,"children":1123},{"style":130},[1124],{"type":71,"value":1125}," (",{"type":66,"tag":107,"props":1127,"children":1128},{"style":444},[1129],{"type":71,"value":37},{"type":66,"tag":107,"props":1131,"children":1132},{"style":130},[1133],{"type":71,"value":452},{"type":66,"tag":107,"props":1135,"children":1136},{"style":187},[1137],{"type":71,"value":257},{"type":66,"tag":107,"props":1139,"children":1140},{"style":136},[1141],{"type":71,"value":1125},{"type":66,"tag":107,"props":1143,"children":1144},{"style":130},[1145],{"type":71,"value":234},{"type":66,"tag":107,"props":1147,"children":1148},{"class":109,"line":275},[1149,1154,1158,1163,1168,1172,1177,1182,1188],{"type":66,"tag":107,"props":1150,"children":1151},{"style":279},[1152],{"type":71,"value":1153},"    offset",{"type":66,"tag":107,"props":1155,"children":1156},{"style":130},[1157],{"type":71,"value":94},{"type":66,"tag":107,"props":1159,"children":1160},{"style":203},[1161],{"type":71,"value":1162}," Number",{"type":66,"tag":107,"props":1164,"children":1165},{"style":136},[1166],{"type":71,"value":1167},"(search",{"type":66,"tag":107,"props":1169,"children":1170},{"style":130},[1171],{"type":71,"value":368},{"type":66,"tag":107,"props":1173,"children":1174},{"style":136},[1175],{"type":71,"value":1176},"offset) ",{"type":66,"tag":107,"props":1178,"children":1179},{"style":130},[1180],{"type":71,"value":1181},"||",{"type":66,"tag":107,"props":1183,"children":1185},{"style":1184},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1186],{"type":71,"value":1187}," 0",{"type":66,"tag":107,"props":1189,"children":1190},{"style":130},[1191],{"type":71,"value":272},{"type":66,"tag":107,"props":1193,"children":1194},{"class":109,"line":298},[1195,1200,1204,1208,1212,1216,1221,1225,1230],{"type":66,"tag":107,"props":1196,"children":1197},{"style":279},[1198],{"type":71,"value":1199},"    limit",{"type":66,"tag":107,"props":1201,"children":1202},{"style":130},[1203],{"type":71,"value":94},{"type":66,"tag":107,"props":1205,"children":1206},{"style":203},[1207],{"type":71,"value":1162},{"type":66,"tag":107,"props":1209,"children":1210},{"style":136},[1211],{"type":71,"value":1167},{"type":66,"tag":107,"props":1213,"children":1214},{"style":130},[1215],{"type":71,"value":368},{"type":66,"tag":107,"props":1217,"children":1218},{"style":136},[1219],{"type":71,"value":1220},"limit) ",{"type":66,"tag":107,"props":1222,"children":1223},{"style":130},[1224],{"type":71,"value":1181},{"type":66,"tag":107,"props":1226,"children":1227},{"style":1184},[1228],{"type":71,"value":1229}," 10",{"type":66,"tag":107,"props":1231,"children":1232},{"style":130},[1233],{"type":71,"value":272},{"type":66,"tag":107,"props":1235,"children":1236},{"class":109,"line":312},[1237,1242,1246],{"type":66,"tag":107,"props":1238,"children":1239},{"style":130},[1240],{"type":71,"value":1241},"  }",{"type":66,"tag":107,"props":1243,"children":1244},{"style":136},[1245],{"type":71,"value":452},{"type":66,"tag":107,"props":1247,"children":1248},{"style":130},[1249],{"type":71,"value":272},{"type":66,"tag":107,"props":1251,"children":1252},{"class":109,"line":320},[1253,1258,1262,1267,1272,1276,1280,1285,1290,1295,1299,1304,1308,1312,1317,1321,1325,1330,1334,1338],{"type":66,"tag":107,"props":1254,"children":1255},{"style":203},[1256],{"type":71,"value":1257},"  loaderDeps",{"type":66,"tag":107,"props":1259,"children":1260},{"style":130},[1261],{"type":71,"value":94},{"type":66,"tag":107,"props":1263,"children":1264},{"style":130},[1265],{"type":71,"value":1266}," ({",{"type":66,"tag":107,"props":1268,"children":1269},{"style":279},[1270],{"type":71,"value":1271}," search",{"type":66,"tag":107,"props":1273,"children":1274},{"style":130},[1275],{"type":71,"value":94},{"type":66,"tag":107,"props":1277,"children":1278},{"style":130},[1279],{"type":71,"value":133},{"type":66,"tag":107,"props":1281,"children":1282},{"style":444},[1283],{"type":71,"value":1284}," offset",{"type":66,"tag":107,"props":1286,"children":1287},{"style":130},[1288],{"type":71,"value":1289},",",{"type":66,"tag":107,"props":1291,"children":1292},{"style":444},[1293],{"type":71,"value":1294}," limit",{"type":66,"tag":107,"props":1296,"children":1297},{"style":130},[1298],{"type":71,"value":144},{"type":66,"tag":107,"props":1300,"children":1301},{"style":130},[1302],{"type":71,"value":1303}," })",{"type":66,"tag":107,"props":1305,"children":1306},{"style":187},[1307],{"type":71,"value":257},{"type":66,"tag":107,"props":1309,"children":1310},{"style":136},[1311],{"type":71,"value":1125},{"type":66,"tag":107,"props":1313,"children":1314},{"style":130},[1315],{"type":71,"value":1316},"{",{"type":66,"tag":107,"props":1318,"children":1319},{"style":136},[1320],{"type":71,"value":1284},{"type":66,"tag":107,"props":1322,"children":1323},{"style":130},[1324],{"type":71,"value":1289},{"type":66,"tag":107,"props":1326,"children":1327},{"style":136},[1328],{"type":71,"value":1329}," limit ",{"type":66,"tag":107,"props":1331,"children":1332},{"style":130},[1333],{"type":71,"value":304},{"type":66,"tag":107,"props":1335,"children":1336},{"style":136},[1337],{"type":71,"value":452},{"type":66,"tag":107,"props":1339,"children":1340},{"style":130},[1341],{"type":71,"value":272},{"type":66,"tag":107,"props":1343,"children":1344},{"class":109,"line":342},[1345,1349,1353,1357,1362,1366,1370,1374,1378,1382,1386,1390,1394,1398,1402,1406,1410,1414,1418,1422,1426],{"type":66,"tag":107,"props":1346,"children":1347},{"style":203},[1348],{"type":71,"value":243},{"type":66,"tag":107,"props":1350,"children":1351},{"style":130},[1352],{"type":71,"value":94},{"type":66,"tag":107,"props":1354,"children":1355},{"style":130},[1356],{"type":71,"value":1266},{"type":66,"tag":107,"props":1358,"children":1359},{"style":279},[1360],{"type":71,"value":1361}," deps",{"type":66,"tag":107,"props":1363,"children":1364},{"style":130},[1365],{"type":71,"value":94},{"type":66,"tag":107,"props":1367,"children":1368},{"style":130},[1369],{"type":71,"value":133},{"type":66,"tag":107,"props":1371,"children":1372},{"style":444},[1373],{"type":71,"value":1284},{"type":66,"tag":107,"props":1375,"children":1376},{"style":130},[1377],{"type":71,"value":1289},{"type":66,"tag":107,"props":1379,"children":1380},{"style":444},[1381],{"type":71,"value":1294},{"type":66,"tag":107,"props":1383,"children":1384},{"style":130},[1385],{"type":71,"value":144},{"type":66,"tag":107,"props":1387,"children":1388},{"style":130},[1389],{"type":71,"value":1303},{"type":66,"tag":107,"props":1391,"children":1392},{"style":187},[1393],{"type":71,"value":257},{"type":66,"tag":107,"props":1395,"children":1396},{"style":203},[1397],{"type":71,"value":262},{"type":66,"tag":107,"props":1399,"children":1400},{"style":136},[1401],{"type":71,"value":210},{"type":66,"tag":107,"props":1403,"children":1404},{"style":130},[1405],{"type":71,"value":1316},{"type":66,"tag":107,"props":1407,"children":1408},{"style":136},[1409],{"type":71,"value":1284},{"type":66,"tag":107,"props":1411,"children":1412},{"style":130},[1413],{"type":71,"value":1289},{"type":66,"tag":107,"props":1415,"children":1416},{"style":136},[1417],{"type":71,"value":1329},{"type":66,"tag":107,"props":1419,"children":1420},{"style":130},[1421],{"type":71,"value":304},{"type":66,"tag":107,"props":1423,"children":1424},{"style":136},[1425],{"type":71,"value":452},{"type":66,"tag":107,"props":1427,"children":1428},{"style":130},[1429],{"type":71,"value":272},{"type":66,"tag":107,"props":1431,"children":1432},{"class":109,"line":380},[1433,1437],{"type":66,"tag":107,"props":1434,"children":1435},{"style":130},[1436],{"type":71,"value":304},{"type":66,"tag":107,"props":1438,"children":1439},{"style":136},[1440],{"type":71,"value":309},{"type":66,"tag":81,"props":1442,"children":1443},{},[1444,1446,1452],{"type":71,"value":1445},"When deps change, the route reloads regardless of ",{"type":66,"tag":87,"props":1447,"children":1449},{"className":1448},[],[1450],{"type":71,"value":1451},"staleTime",{"type":71,"value":368},{"type":66,"tag":987,"props":1454,"children":1456},{"id":1455},"swr-caching-configuration",[1457],{"type":71,"value":1458},"SWR Caching Configuration",{"type":66,"tag":81,"props":1460,"children":1461},{},[1462,1464,1469],{"type":71,"value":1463},"TanStack Router has built-in Stale-While-Revalidate caching keyed on the route's parsed pathname + ",{"type":66,"tag":87,"props":1465,"children":1467},{"className":1466},[],[1468],{"type":71,"value":1003},{"type":71,"value":368},{"type":66,"tag":81,"props":1471,"children":1472},{},[1473],{"type":71,"value":1474},"Defaults:",{"type":66,"tag":405,"props":1476,"children":1477},{},[1478,1493,1509],{"type":66,"tag":474,"props":1479,"children":1480},{},[1481,1491],{"type":66,"tag":803,"props":1482,"children":1483},{},[1484,1489],{"type":66,"tag":87,"props":1485,"children":1487},{"className":1486},[],[1488],{"type":71,"value":1451},{"type":71,"value":1490},": 0",{"type":71,"value":1492}," — data is always considered stale, reloads in background on re-match",{"type":66,"tag":474,"props":1494,"children":1495},{},[1496,1507],{"type":66,"tag":803,"props":1497,"children":1498},{},[1499,1505],{"type":66,"tag":87,"props":1500,"children":1502},{"className":1501},[],[1503],{"type":71,"value":1504},"preloadStaleTime",{"type":71,"value":1506},": 30 seconds",{"type":71,"value":1508}," — preloaded data won't be refetched for 30s",{"type":66,"tag":474,"props":1510,"children":1511},{},[1512,1523],{"type":66,"tag":803,"props":1513,"children":1514},{},[1515,1521],{"type":66,"tag":87,"props":1516,"children":1518},{"className":1517},[],[1519],{"type":71,"value":1520},"gcTime",{"type":71,"value":1522},": 30 minutes",{"type":71,"value":1524}," — unused cache entries garbage collected after 30min",{"type":66,"tag":96,"props":1526,"children":1528},{"className":98,"code":1527,"language":100,"meta":101,"style":101},"export const Route = createFileRoute('\u002Fposts')({\n  loader: () => fetchPosts(),\n  staleTime: 10_000, \u002F\u002F 10s: data considered fresh for 10 seconds\n  gcTime: 5 * 60 * 1000, \u002F\u002F 5min: garbage collect after 5 minutes\n})\n",[1529],{"type":66,"tag":87,"props":1530,"children":1531},{"__ignoreMap":101},[1532,1579,1610,1636,1681],{"type":66,"tag":107,"props":1533,"children":1534},{"class":109,"line":110},[1535,1539,1543,1547,1551,1555,1559,1563,1567,1571,1575],{"type":66,"tag":107,"props":1536,"children":1537},{"style":124},[1538],{"type":71,"value":184},{"type":66,"tag":107,"props":1540,"children":1541},{"style":187},[1542],{"type":71,"value":190},{"type":66,"tag":107,"props":1544,"children":1545},{"style":136},[1546],{"type":71,"value":195},{"type":66,"tag":107,"props":1548,"children":1549},{"style":130},[1550],{"type":71,"value":200},{"type":66,"tag":107,"props":1552,"children":1553},{"style":203},[1554],{"type":71,"value":139},{"type":66,"tag":107,"props":1556,"children":1557},{"style":136},[1558],{"type":71,"value":210},{"type":66,"tag":107,"props":1560,"children":1561},{"style":130},[1562],{"type":71,"value":215},{"type":66,"tag":107,"props":1564,"children":1565},{"style":157},[1566],{"type":71,"value":220},{"type":66,"tag":107,"props":1568,"children":1569},{"style":130},[1570],{"type":71,"value":215},{"type":66,"tag":107,"props":1572,"children":1573},{"style":136},[1574],{"type":71,"value":229},{"type":66,"tag":107,"props":1576,"children":1577},{"style":130},[1578],{"type":71,"value":234},{"type":66,"tag":107,"props":1580,"children":1581},{"class":109,"line":120},[1582,1586,1590,1594,1598,1602,1606],{"type":66,"tag":107,"props":1583,"children":1584},{"style":203},[1585],{"type":71,"value":243},{"type":66,"tag":107,"props":1587,"children":1588},{"style":130},[1589],{"type":71,"value":94},{"type":66,"tag":107,"props":1591,"children":1592},{"style":130},[1593],{"type":71,"value":252},{"type":66,"tag":107,"props":1595,"children":1596},{"style":187},[1597],{"type":71,"value":257},{"type":66,"tag":107,"props":1599,"children":1600},{"style":203},[1601],{"type":71,"value":262},{"type":66,"tag":107,"props":1603,"children":1604},{"style":136},[1605],{"type":71,"value":267},{"type":66,"tag":107,"props":1607,"children":1608},{"style":130},[1609],{"type":71,"value":272},{"type":66,"tag":107,"props":1611,"children":1612},{"class":109,"line":168},[1613,1618,1622,1627,1631],{"type":66,"tag":107,"props":1614,"children":1615},{"style":279},[1616],{"type":71,"value":1617},"  staleTime",{"type":66,"tag":107,"props":1619,"children":1620},{"style":130},[1621],{"type":71,"value":94},{"type":66,"tag":107,"props":1623,"children":1624},{"style":1184},[1625],{"type":71,"value":1626}," 10_000",{"type":66,"tag":107,"props":1628,"children":1629},{"style":130},[1630],{"type":71,"value":1289},{"type":66,"tag":107,"props":1632,"children":1633},{"style":114},[1634],{"type":71,"value":1635}," \u002F\u002F 10s: data considered fresh for 10 seconds\n",{"type":66,"tag":107,"props":1637,"children":1638},{"class":109,"line":178},[1639,1644,1648,1653,1658,1663,1667,1672,1676],{"type":66,"tag":107,"props":1640,"children":1641},{"style":279},[1642],{"type":71,"value":1643},"  gcTime",{"type":66,"tag":107,"props":1645,"children":1646},{"style":130},[1647],{"type":71,"value":94},{"type":66,"tag":107,"props":1649,"children":1650},{"style":1184},[1651],{"type":71,"value":1652}," 5",{"type":66,"tag":107,"props":1654,"children":1655},{"style":130},[1656],{"type":71,"value":1657}," *",{"type":66,"tag":107,"props":1659,"children":1660},{"style":1184},[1661],{"type":71,"value":1662}," 60",{"type":66,"tag":107,"props":1664,"children":1665},{"style":130},[1666],{"type":71,"value":1657},{"type":66,"tag":107,"props":1668,"children":1669},{"style":1184},[1670],{"type":71,"value":1671}," 1000",{"type":66,"tag":107,"props":1673,"children":1674},{"style":130},[1675],{"type":71,"value":1289},{"type":66,"tag":107,"props":1677,"children":1678},{"style":114},[1679],{"type":71,"value":1680}," \u002F\u002F 5min: garbage collect after 5 minutes\n",{"type":66,"tag":107,"props":1682,"children":1683},{"class":109,"line":237},[1684,1688],{"type":66,"tag":107,"props":1685,"children":1686},{"style":130},[1687],{"type":71,"value":304},{"type":66,"tag":107,"props":1689,"children":1690},{"style":136},[1691],{"type":71,"value":309},{"type":66,"tag":81,"props":1693,"children":1694},{},[1695],{"type":71,"value":1696},"Disable SWR caching entirely:",{"type":66,"tag":96,"props":1698,"children":1700},{"className":98,"code":1699,"language":100,"meta":101,"style":101},"export const Route = createFileRoute('\u002Fposts')({\n  loader: () => fetchPosts(),\n  staleTime: Infinity,\n})\n",[1701],{"type":66,"tag":87,"props":1702,"children":1703},{"__ignoreMap":101},[1704,1751,1782,1798],{"type":66,"tag":107,"props":1705,"children":1706},{"class":109,"line":110},[1707,1711,1715,1719,1723,1727,1731,1735,1739,1743,1747],{"type":66,"tag":107,"props":1708,"children":1709},{"style":124},[1710],{"type":71,"value":184},{"type":66,"tag":107,"props":1712,"children":1713},{"style":187},[1714],{"type":71,"value":190},{"type":66,"tag":107,"props":1716,"children":1717},{"style":136},[1718],{"type":71,"value":195},{"type":66,"tag":107,"props":1720,"children":1721},{"style":130},[1722],{"type":71,"value":200},{"type":66,"tag":107,"props":1724,"children":1725},{"style":203},[1726],{"type":71,"value":139},{"type":66,"tag":107,"props":1728,"children":1729},{"style":136},[1730],{"type":71,"value":210},{"type":66,"tag":107,"props":1732,"children":1733},{"style":130},[1734],{"type":71,"value":215},{"type":66,"tag":107,"props":1736,"children":1737},{"style":157},[1738],{"type":71,"value":220},{"type":66,"tag":107,"props":1740,"children":1741},{"style":130},[1742],{"type":71,"value":215},{"type":66,"tag":107,"props":1744,"children":1745},{"style":136},[1746],{"type":71,"value":229},{"type":66,"tag":107,"props":1748,"children":1749},{"style":130},[1750],{"type":71,"value":234},{"type":66,"tag":107,"props":1752,"children":1753},{"class":109,"line":120},[1754,1758,1762,1766,1770,1774,1778],{"type":66,"tag":107,"props":1755,"children":1756},{"style":203},[1757],{"type":71,"value":243},{"type":66,"tag":107,"props":1759,"children":1760},{"style":130},[1761],{"type":71,"value":94},{"type":66,"tag":107,"props":1763,"children":1764},{"style":130},[1765],{"type":71,"value":252},{"type":66,"tag":107,"props":1767,"children":1768},{"style":187},[1769],{"type":71,"value":257},{"type":66,"tag":107,"props":1771,"children":1772},{"style":203},[1773],{"type":71,"value":262},{"type":66,"tag":107,"props":1775,"children":1776},{"style":136},[1777],{"type":71,"value":267},{"type":66,"tag":107,"props":1779,"children":1780},{"style":130},[1781],{"type":71,"value":272},{"type":66,"tag":107,"props":1783,"children":1784},{"class":109,"line":168},[1785,1789,1793],{"type":66,"tag":107,"props":1786,"children":1787},{"style":279},[1788],{"type":71,"value":1617},{"type":66,"tag":107,"props":1790,"children":1791},{"style":130},[1792],{"type":71,"value":94},{"type":66,"tag":107,"props":1794,"children":1795},{"style":130},[1796],{"type":71,"value":1797}," Infinity,\n",{"type":66,"tag":107,"props":1799,"children":1800},{"class":109,"line":178},[1801,1805],{"type":66,"tag":107,"props":1802,"children":1803},{"style":130},[1804],{"type":71,"value":304},{"type":66,"tag":107,"props":1806,"children":1807},{"style":136},[1808],{"type":71,"value":309},{"type":66,"tag":81,"props":1810,"children":1811},{},[1812],{"type":71,"value":1813},"Globally:",{"type":66,"tag":96,"props":1815,"children":1817},{"className":98,"code":1816,"language":100,"meta":101,"style":101},"const router = createRouter({\n  routeTree,\n  defaultStaleTime: Infinity,\n})\n",[1818],{"type":66,"tag":87,"props":1819,"children":1820},{"__ignoreMap":101},[1821,1850,1862,1878],{"type":66,"tag":107,"props":1822,"children":1823},{"class":109,"line":110},[1824,1828,1833,1837,1842,1846],{"type":66,"tag":107,"props":1825,"children":1826},{"style":187},[1827],{"type":71,"value":647},{"type":66,"tag":107,"props":1829,"children":1830},{"style":136},[1831],{"type":71,"value":1832}," router ",{"type":66,"tag":107,"props":1834,"children":1835},{"style":130},[1836],{"type":71,"value":200},{"type":66,"tag":107,"props":1838,"children":1839},{"style":203},[1840],{"type":71,"value":1841}," createRouter",{"type":66,"tag":107,"props":1843,"children":1844},{"style":136},[1845],{"type":71,"value":210},{"type":66,"tag":107,"props":1847,"children":1848},{"style":130},[1849],{"type":71,"value":234},{"type":66,"tag":107,"props":1851,"children":1852},{"class":109,"line":120},[1853,1858],{"type":66,"tag":107,"props":1854,"children":1855},{"style":136},[1856],{"type":71,"value":1857},"  routeTree",{"type":66,"tag":107,"props":1859,"children":1860},{"style":130},[1861],{"type":71,"value":272},{"type":66,"tag":107,"props":1863,"children":1864},{"class":109,"line":168},[1865,1870,1874],{"type":66,"tag":107,"props":1866,"children":1867},{"style":279},[1868],{"type":71,"value":1869},"  defaultStaleTime",{"type":66,"tag":107,"props":1871,"children":1872},{"style":130},[1873],{"type":71,"value":94},{"type":66,"tag":107,"props":1875,"children":1876},{"style":130},[1877],{"type":71,"value":1797},{"type":66,"tag":107,"props":1879,"children":1880},{"class":109,"line":178},[1881,1885],{"type":66,"tag":107,"props":1882,"children":1883},{"style":130},[1884],{"type":71,"value":304},{"type":66,"tag":107,"props":1886,"children":1887},{"style":136},[1888],{"type":71,"value":309},{"type":66,"tag":987,"props":1890,"children":1892},{"id":1891},"pending-states-pendingcomponent-pendingms-pendingminms",[1893],{"type":71,"value":1894},"Pending States (pendingComponent \u002F pendingMs \u002F pendingMinMs)",{"type":66,"tag":81,"props":1896,"children":1897},{},[1898,1900,1906,1908,1914],{"type":71,"value":1899},"By default, a pending component shows after 1 second (",{"type":66,"tag":87,"props":1901,"children":1903},{"className":1902},[],[1904],{"type":71,"value":1905},"pendingMs: 1000",{"type":71,"value":1907},") and stays for at least 500ms (",{"type":66,"tag":87,"props":1909,"children":1911},{"className":1910},[],[1912],{"type":71,"value":1913},"pendingMinMs: 500",{"type":71,"value":1915},") to avoid flash.",{"type":66,"tag":96,"props":1917,"children":1919},{"className":98,"code":1918,"language":100,"meta":101,"style":101},"export const Route = createFileRoute('\u002Fposts')({\n  loader: () => fetchPosts(),\n  pendingMs: 500,\n  pendingMinMs: 300,\n  pendingComponent: () => \u003Cdiv>Loading posts...\u003C\u002Fdiv>,\n  component: PostsComponent,\n})\n",[1920],{"type":66,"tag":87,"props":1921,"children":1922},{"__ignoreMap":101},[1923,1970,2001,2022,2043,2096,2115],{"type":66,"tag":107,"props":1924,"children":1925},{"class":109,"line":110},[1926,1930,1934,1938,1942,1946,1950,1954,1958,1962,1966],{"type":66,"tag":107,"props":1927,"children":1928},{"style":124},[1929],{"type":71,"value":184},{"type":66,"tag":107,"props":1931,"children":1932},{"style":187},[1933],{"type":71,"value":190},{"type":66,"tag":107,"props":1935,"children":1936},{"style":136},[1937],{"type":71,"value":195},{"type":66,"tag":107,"props":1939,"children":1940},{"style":130},[1941],{"type":71,"value":200},{"type":66,"tag":107,"props":1943,"children":1944},{"style":203},[1945],{"type":71,"value":139},{"type":66,"tag":107,"props":1947,"children":1948},{"style":136},[1949],{"type":71,"value":210},{"type":66,"tag":107,"props":1951,"children":1952},{"style":130},[1953],{"type":71,"value":215},{"type":66,"tag":107,"props":1955,"children":1956},{"style":157},[1957],{"type":71,"value":220},{"type":66,"tag":107,"props":1959,"children":1960},{"style":130},[1961],{"type":71,"value":215},{"type":66,"tag":107,"props":1963,"children":1964},{"style":136},[1965],{"type":71,"value":229},{"type":66,"tag":107,"props":1967,"children":1968},{"style":130},[1969],{"type":71,"value":234},{"type":66,"tag":107,"props":1971,"children":1972},{"class":109,"line":120},[1973,1977,1981,1985,1989,1993,1997],{"type":66,"tag":107,"props":1974,"children":1975},{"style":203},[1976],{"type":71,"value":243},{"type":66,"tag":107,"props":1978,"children":1979},{"style":130},[1980],{"type":71,"value":94},{"type":66,"tag":107,"props":1982,"children":1983},{"style":130},[1984],{"type":71,"value":252},{"type":66,"tag":107,"props":1986,"children":1987},{"style":187},[1988],{"type":71,"value":257},{"type":66,"tag":107,"props":1990,"children":1991},{"style":203},[1992],{"type":71,"value":262},{"type":66,"tag":107,"props":1994,"children":1995},{"style":136},[1996],{"type":71,"value":267},{"type":66,"tag":107,"props":1998,"children":1999},{"style":130},[2000],{"type":71,"value":272},{"type":66,"tag":107,"props":2002,"children":2003},{"class":109,"line":168},[2004,2009,2013,2018],{"type":66,"tag":107,"props":2005,"children":2006},{"style":279},[2007],{"type":71,"value":2008},"  pendingMs",{"type":66,"tag":107,"props":2010,"children":2011},{"style":130},[2012],{"type":71,"value":94},{"type":66,"tag":107,"props":2014,"children":2015},{"style":1184},[2016],{"type":71,"value":2017}," 500",{"type":66,"tag":107,"props":2019,"children":2020},{"style":130},[2021],{"type":71,"value":272},{"type":66,"tag":107,"props":2023,"children":2024},{"class":109,"line":178},[2025,2030,2034,2039],{"type":66,"tag":107,"props":2026,"children":2027},{"style":279},[2028],{"type":71,"value":2029},"  pendingMinMs",{"type":66,"tag":107,"props":2031,"children":2032},{"style":130},[2033],{"type":71,"value":94},{"type":66,"tag":107,"props":2035,"children":2036},{"style":1184},[2037],{"type":71,"value":2038}," 300",{"type":66,"tag":107,"props":2040,"children":2041},{"style":130},[2042],{"type":71,"value":272},{"type":66,"tag":107,"props":2044,"children":2045},{"class":109,"line":237},[2046,2051,2055,2059,2063,2067,2072,2077,2082,2087,2091],{"type":66,"tag":107,"props":2047,"children":2048},{"style":203},[2049],{"type":71,"value":2050},"  pendingComponent",{"type":66,"tag":107,"props":2052,"children":2053},{"style":130},[2054],{"type":71,"value":94},{"type":66,"tag":107,"props":2056,"children":2057},{"style":130},[2058],{"type":71,"value":252},{"type":66,"tag":107,"props":2060,"children":2061},{"style":187},[2062],{"type":71,"value":257},{"type":66,"tag":107,"props":2064,"children":2065},{"style":130},[2066],{"type":71,"value":750},{"type":66,"tag":107,"props":2068,"children":2069},{"style":279},[2070],{"type":71,"value":2071},"div",{"type":66,"tag":107,"props":2073,"children":2074},{"style":130},[2075],{"type":71,"value":2076},">",{"type":66,"tag":107,"props":2078,"children":2079},{"style":136},[2080],{"type":71,"value":2081},"Loading posts...",{"type":66,"tag":107,"props":2083,"children":2084},{"style":130},[2085],{"type":71,"value":2086},"\u003C\u002F",{"type":66,"tag":107,"props":2088,"children":2089},{"style":279},[2090],{"type":71,"value":2071},{"type":66,"tag":107,"props":2092,"children":2093},{"style":130},[2094],{"type":71,"value":2095},">,\n",{"type":66,"tag":107,"props":2097,"children":2098},{"class":109,"line":275},[2099,2103,2107,2111],{"type":66,"tag":107,"props":2100,"children":2101},{"style":279},[2102],{"type":71,"value":282},{"type":66,"tag":107,"props":2104,"children":2105},{"style":130},[2106],{"type":71,"value":94},{"type":66,"tag":107,"props":2108,"children":2109},{"style":136},[2110],{"type":71,"value":291},{"type":66,"tag":107,"props":2112,"children":2113},{"style":130},[2114],{"type":71,"value":272},{"type":66,"tag":107,"props":2116,"children":2117},{"class":109,"line":298},[2118,2122],{"type":66,"tag":107,"props":2119,"children":2120},{"style":130},[2121],{"type":71,"value":304},{"type":66,"tag":107,"props":2123,"children":2124},{"style":136},[2125],{"type":71,"value":309},{"type":66,"tag":987,"props":2127,"children":2129},{"id":2128},"router-context-with-createrootroutewithcontext-factory-pattern",[2130],{"type":71,"value":2131},"Router Context with createRootRouteWithContext (Factory Pattern)",{"type":66,"tag":81,"props":2133,"children":2134},{},[2135,2141],{"type":66,"tag":87,"props":2136,"children":2138},{"className":2137},[],[2139],{"type":71,"value":2140},"createRootRouteWithContext",{"type":71,"value":2142}," is a factory that returns a function. You must call it twice — the first call passes the generic type, the second passes route options:",{"type":66,"tag":96,"props":2144,"children":2146},{"className":98,"code":2145,"language":100,"meta":101,"style":101},"\u002F\u002F src\u002Froutes\u002F__root.tsx\nimport { createRootRouteWithContext, Outlet } from '@tanstack\u002Freact-router'\n\ninterface MyRouterContext {\n  auth: { userId: string }\n  fetchPosts: () => Promise\u003CPost[]>\n}\n\n\u002F\u002F NOTE: double call — createRootRouteWithContext\u003CType>()({...})\nexport const Route = createRootRouteWithContext\u003CMyRouterContext>()({\n  component: () => \u003COutlet \u002F>,\n})\n",[2147],{"type":66,"tag":87,"props":2148,"children":2149},{"__ignoreMap":101},[2150,2158,2203,2210,2228,2263,2307,2314,2321,2329,2374,2407],{"type":66,"tag":107,"props":2151,"children":2152},{"class":109,"line":110},[2153],{"type":66,"tag":107,"props":2154,"children":2155},{"style":114},[2156],{"type":71,"value":2157},"\u002F\u002F src\u002Froutes\u002F__root.tsx\n",{"type":66,"tag":107,"props":2159,"children":2160},{"class":109,"line":120},[2161,2165,2169,2174,2178,2183,2187,2191,2195,2199],{"type":66,"tag":107,"props":2162,"children":2163},{"style":124},[2164],{"type":71,"value":127},{"type":66,"tag":107,"props":2166,"children":2167},{"style":130},[2168],{"type":71,"value":133},{"type":66,"tag":107,"props":2170,"children":2171},{"style":136},[2172],{"type":71,"value":2173}," createRootRouteWithContext",{"type":66,"tag":107,"props":2175,"children":2176},{"style":130},[2177],{"type":71,"value":1289},{"type":66,"tag":107,"props":2179,"children":2180},{"style":136},[2181],{"type":71,"value":2182}," Outlet",{"type":66,"tag":107,"props":2184,"children":2185},{"style":130},[2186],{"type":71,"value":144},{"type":66,"tag":107,"props":2188,"children":2189},{"style":124},[2190],{"type":71,"value":149},{"type":66,"tag":107,"props":2192,"children":2193},{"style":130},[2194],{"type":71,"value":154},{"type":66,"tag":107,"props":2196,"children":2197},{"style":157},[2198],{"type":71,"value":160},{"type":66,"tag":107,"props":2200,"children":2201},{"style":130},[2202],{"type":71,"value":165},{"type":66,"tag":107,"props":2204,"children":2205},{"class":109,"line":168},[2206],{"type":66,"tag":107,"props":2207,"children":2208},{"emptyLinePlaceholder":172},[2209],{"type":71,"value":175},{"type":66,"tag":107,"props":2211,"children":2212},{"class":109,"line":178},[2213,2218,2224],{"type":66,"tag":107,"props":2214,"children":2215},{"style":187},[2216],{"type":71,"value":2217},"interface",{"type":66,"tag":107,"props":2219,"children":2221},{"style":2220},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[2222],{"type":71,"value":2223}," MyRouterContext",{"type":66,"tag":107,"props":2225,"children":2226},{"style":130},[2227],{"type":71,"value":339},{"type":66,"tag":107,"props":2229,"children":2230},{"class":109,"line":237},[2231,2236,2240,2244,2249,2253,2258],{"type":66,"tag":107,"props":2232,"children":2233},{"style":279},[2234],{"type":71,"value":2235},"  auth",{"type":66,"tag":107,"props":2237,"children":2238},{"style":130},[2239],{"type":71,"value":94},{"type":66,"tag":107,"props":2241,"children":2242},{"style":130},[2243],{"type":71,"value":133},{"type":66,"tag":107,"props":2245,"children":2246},{"style":279},[2247],{"type":71,"value":2248}," userId",{"type":66,"tag":107,"props":2250,"children":2251},{"style":130},[2252],{"type":71,"value":94},{"type":66,"tag":107,"props":2254,"children":2255},{"style":2220},[2256],{"type":71,"value":2257}," string",{"type":66,"tag":107,"props":2259,"children":2260},{"style":130},[2261],{"type":71,"value":2262}," }\n",{"type":66,"tag":107,"props":2264,"children":2265},{"class":109,"line":275},[2266,2271,2275,2279,2283,2288,2293,2298,2303],{"type":66,"tag":107,"props":2267,"children":2268},{"style":279},[2269],{"type":71,"value":2270},"  fetchPosts",{"type":66,"tag":107,"props":2272,"children":2273},{"style":130},[2274],{"type":71,"value":94},{"type":66,"tag":107,"props":2276,"children":2277},{"style":130},[2278],{"type":71,"value":252},{"type":66,"tag":107,"props":2280,"children":2281},{"style":187},[2282],{"type":71,"value":257},{"type":66,"tag":107,"props":2284,"children":2285},{"style":2220},[2286],{"type":71,"value":2287}," Promise",{"type":66,"tag":107,"props":2289,"children":2290},{"style":130},[2291],{"type":71,"value":2292},"\u003C",{"type":66,"tag":107,"props":2294,"children":2295},{"style":2220},[2296],{"type":71,"value":2297},"Post",{"type":66,"tag":107,"props":2299,"children":2300},{"style":136},[2301],{"type":71,"value":2302},"[]",{"type":66,"tag":107,"props":2304,"children":2305},{"style":130},[2306],{"type":71,"value":410},{"type":66,"tag":107,"props":2308,"children":2309},{"class":109,"line":298},[2310],{"type":66,"tag":107,"props":2311,"children":2312},{"style":130},[2313],{"type":71,"value":542},{"type":66,"tag":107,"props":2315,"children":2316},{"class":109,"line":312},[2317],{"type":66,"tag":107,"props":2318,"children":2319},{"emptyLinePlaceholder":172},[2320],{"type":71,"value":175},{"type":66,"tag":107,"props":2322,"children":2323},{"class":109,"line":320},[2324],{"type":66,"tag":107,"props":2325,"children":2326},{"style":114},[2327],{"type":71,"value":2328},"\u002F\u002F NOTE: double call — createRootRouteWithContext\u003CType>()({...})\n",{"type":66,"tag":107,"props":2330,"children":2331},{"class":109,"line":342},[2332,2336,2340,2344,2348,2352,2356,2361,2365,2370],{"type":66,"tag":107,"props":2333,"children":2334},{"style":124},[2335],{"type":71,"value":184},{"type":66,"tag":107,"props":2337,"children":2338},{"style":187},[2339],{"type":71,"value":190},{"type":66,"tag":107,"props":2341,"children":2342},{"style":136},[2343],{"type":71,"value":195},{"type":66,"tag":107,"props":2345,"children":2346},{"style":130},[2347],{"type":71,"value":200},{"type":66,"tag":107,"props":2349,"children":2350},{"style":203},[2351],{"type":71,"value":2173},{"type":66,"tag":107,"props":2353,"children":2354},{"style":130},[2355],{"type":71,"value":2292},{"type":66,"tag":107,"props":2357,"children":2358},{"style":2220},[2359],{"type":71,"value":2360},"MyRouterContext",{"type":66,"tag":107,"props":2362,"children":2363},{"style":130},[2364],{"type":71,"value":2076},{"type":66,"tag":107,"props":2366,"children":2367},{"style":136},[2368],{"type":71,"value":2369},"()(",{"type":66,"tag":107,"props":2371,"children":2372},{"style":130},[2373],{"type":71,"value":234},{"type":66,"tag":107,"props":2375,"children":2376},{"class":109,"line":380},[2377,2381,2385,2389,2393,2397,2402],{"type":66,"tag":107,"props":2378,"children":2379},{"style":203},[2380],{"type":71,"value":282},{"type":66,"tag":107,"props":2382,"children":2383},{"style":130},[2384],{"type":71,"value":94},{"type":66,"tag":107,"props":2386,"children":2387},{"style":130},[2388],{"type":71,"value":252},{"type":66,"tag":107,"props":2390,"children":2391},{"style":187},[2392],{"type":71,"value":257},{"type":66,"tag":107,"props":2394,"children":2395},{"style":130},[2396],{"type":71,"value":750},{"type":66,"tag":107,"props":2398,"children":2399},{"style":2220},[2400],{"type":71,"value":2401},"Outlet",{"type":66,"tag":107,"props":2403,"children":2404},{"style":130},[2405],{"type":71,"value":2406}," \u002F>,\n",{"type":66,"tag":107,"props":2408,"children":2409},{"class":109,"line":394},[2410,2414],{"type":66,"tag":107,"props":2411,"children":2412},{"style":130},[2413],{"type":71,"value":304},{"type":66,"tag":107,"props":2415,"children":2416},{"style":136},[2417],{"type":71,"value":309},{"type":66,"tag":81,"props":2419,"children":2420},{},[2421],{"type":71,"value":2422},"Supply the context when creating the router:",{"type":66,"tag":96,"props":2424,"children":2426},{"className":98,"code":2425,"language":100,"meta":101,"style":101},"\u002F\u002F src\u002Frouter.tsx\nimport { createRouter } from '@tanstack\u002Freact-router'\nimport { routeTree } from '.\u002FrouteTree.gen'\n\nconst router = createRouter({\n  routeTree,\n  context: {\n    auth: { userId: '123' },\n    fetchPosts,\n  },\n})\n",[2427],{"type":66,"tag":87,"props":2428,"children":2429},{"__ignoreMap":101},[2430,2438,2473,2510,2517,2544,2555,2571,2613,2625,2633],{"type":66,"tag":107,"props":2431,"children":2432},{"class":109,"line":110},[2433],{"type":66,"tag":107,"props":2434,"children":2435},{"style":114},[2436],{"type":71,"value":2437},"\u002F\u002F src\u002Frouter.tsx\n",{"type":66,"tag":107,"props":2439,"children":2440},{"class":109,"line":120},[2441,2445,2449,2453,2457,2461,2465,2469],{"type":66,"tag":107,"props":2442,"children":2443},{"style":124},[2444],{"type":71,"value":127},{"type":66,"tag":107,"props":2446,"children":2447},{"style":130},[2448],{"type":71,"value":133},{"type":66,"tag":107,"props":2450,"children":2451},{"style":136},[2452],{"type":71,"value":1841},{"type":66,"tag":107,"props":2454,"children":2455},{"style":130},[2456],{"type":71,"value":144},{"type":66,"tag":107,"props":2458,"children":2459},{"style":124},[2460],{"type":71,"value":149},{"type":66,"tag":107,"props":2462,"children":2463},{"style":130},[2464],{"type":71,"value":154},{"type":66,"tag":107,"props":2466,"children":2467},{"style":157},[2468],{"type":71,"value":160},{"type":66,"tag":107,"props":2470,"children":2471},{"style":130},[2472],{"type":71,"value":165},{"type":66,"tag":107,"props":2474,"children":2475},{"class":109,"line":168},[2476,2480,2484,2489,2493,2497,2501,2506],{"type":66,"tag":107,"props":2477,"children":2478},{"style":124},[2479],{"type":71,"value":127},{"type":66,"tag":107,"props":2481,"children":2482},{"style":130},[2483],{"type":71,"value":133},{"type":66,"tag":107,"props":2485,"children":2486},{"style":136},[2487],{"type":71,"value":2488}," routeTree",{"type":66,"tag":107,"props":2490,"children":2491},{"style":130},[2492],{"type":71,"value":144},{"type":66,"tag":107,"props":2494,"children":2495},{"style":124},[2496],{"type":71,"value":149},{"type":66,"tag":107,"props":2498,"children":2499},{"style":130},[2500],{"type":71,"value":154},{"type":66,"tag":107,"props":2502,"children":2503},{"style":157},[2504],{"type":71,"value":2505},".\u002FrouteTree.gen",{"type":66,"tag":107,"props":2507,"children":2508},{"style":130},[2509],{"type":71,"value":165},{"type":66,"tag":107,"props":2511,"children":2512},{"class":109,"line":178},[2513],{"type":66,"tag":107,"props":2514,"children":2515},{"emptyLinePlaceholder":172},[2516],{"type":71,"value":175},{"type":66,"tag":107,"props":2518,"children":2519},{"class":109,"line":237},[2520,2524,2528,2532,2536,2540],{"type":66,"tag":107,"props":2521,"children":2522},{"style":187},[2523],{"type":71,"value":647},{"type":66,"tag":107,"props":2525,"children":2526},{"style":136},[2527],{"type":71,"value":1832},{"type":66,"tag":107,"props":2529,"children":2530},{"style":130},[2531],{"type":71,"value":200},{"type":66,"tag":107,"props":2533,"children":2534},{"style":203},[2535],{"type":71,"value":1841},{"type":66,"tag":107,"props":2537,"children":2538},{"style":136},[2539],{"type":71,"value":210},{"type":66,"tag":107,"props":2541,"children":2542},{"style":130},[2543],{"type":71,"value":234},{"type":66,"tag":107,"props":2545,"children":2546},{"class":109,"line":275},[2547,2551],{"type":66,"tag":107,"props":2548,"children":2549},{"style":136},[2550],{"type":71,"value":1857},{"type":66,"tag":107,"props":2552,"children":2553},{"style":130},[2554],{"type":71,"value":272},{"type":66,"tag":107,"props":2556,"children":2557},{"class":109,"line":298},[2558,2563,2567],{"type":66,"tag":107,"props":2559,"children":2560},{"style":279},[2561],{"type":71,"value":2562},"  context",{"type":66,"tag":107,"props":2564,"children":2565},{"style":130},[2566],{"type":71,"value":94},{"type":66,"tag":107,"props":2568,"children":2569},{"style":130},[2570],{"type":71,"value":339},{"type":66,"tag":107,"props":2572,"children":2573},{"class":109,"line":312},[2574,2579,2583,2587,2591,2595,2599,2604,2608],{"type":66,"tag":107,"props":2575,"children":2576},{"style":279},[2577],{"type":71,"value":2578},"    auth",{"type":66,"tag":107,"props":2580,"children":2581},{"style":130},[2582],{"type":71,"value":94},{"type":66,"tag":107,"props":2584,"children":2585},{"style":130},[2586],{"type":71,"value":133},{"type":66,"tag":107,"props":2588,"children":2589},{"style":279},[2590],{"type":71,"value":2248},{"type":66,"tag":107,"props":2592,"children":2593},{"style":130},[2594],{"type":71,"value":94},{"type":66,"tag":107,"props":2596,"children":2597},{"style":130},[2598],{"type":71,"value":154},{"type":66,"tag":107,"props":2600,"children":2601},{"style":157},[2602],{"type":71,"value":2603},"123",{"type":66,"tag":107,"props":2605,"children":2606},{"style":130},[2607],{"type":71,"value":215},{"type":66,"tag":107,"props":2609,"children":2610},{"style":130},[2611],{"type":71,"value":2612}," },\n",{"type":66,"tag":107,"props":2614,"children":2615},{"class":109,"line":320},[2616,2621],{"type":66,"tag":107,"props":2617,"children":2618},{"style":136},[2619],{"type":71,"value":2620},"    fetchPosts",{"type":66,"tag":107,"props":2622,"children":2623},{"style":130},[2624],{"type":71,"value":272},{"type":66,"tag":107,"props":2626,"children":2627},{"class":109,"line":342},[2628],{"type":66,"tag":107,"props":2629,"children":2630},{"style":130},[2631],{"type":71,"value":2632},"  },\n",{"type":66,"tag":107,"props":2634,"children":2635},{"class":109,"line":380},[2636,2640],{"type":66,"tag":107,"props":2637,"children":2638},{"style":130},[2639],{"type":71,"value":304},{"type":66,"tag":107,"props":2641,"children":2642},{"style":136},[2643],{"type":71,"value":309},{"type":66,"tag":81,"props":2645,"children":2646},{},[2647],{"type":71,"value":2648},"Consume in loaders and beforeLoad:",{"type":66,"tag":96,"props":2650,"children":2652},{"className":98,"code":2651,"language":100,"meta":101,"style":101},"\u002F\u002F src\u002Froutes\u002Fposts.tsx\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: ({ context: { fetchPosts } }) => fetchPosts(),\n})\n",[2653],{"type":66,"tag":87,"props":2654,"children":2655},{"__ignoreMap":101},[2656,2663,2710,2766],{"type":66,"tag":107,"props":2657,"children":2658},{"class":109,"line":110},[2659],{"type":66,"tag":107,"props":2660,"children":2661},{"style":114},[2662],{"type":71,"value":117},{"type":66,"tag":107,"props":2664,"children":2665},{"class":109,"line":120},[2666,2670,2674,2678,2682,2686,2690,2694,2698,2702,2706],{"type":66,"tag":107,"props":2667,"children":2668},{"style":124},[2669],{"type":71,"value":184},{"type":66,"tag":107,"props":2671,"children":2672},{"style":187},[2673],{"type":71,"value":190},{"type":66,"tag":107,"props":2675,"children":2676},{"style":136},[2677],{"type":71,"value":195},{"type":66,"tag":107,"props":2679,"children":2680},{"style":130},[2681],{"type":71,"value":200},{"type":66,"tag":107,"props":2683,"children":2684},{"style":203},[2685],{"type":71,"value":139},{"type":66,"tag":107,"props":2687,"children":2688},{"style":136},[2689],{"type":71,"value":210},{"type":66,"tag":107,"props":2691,"children":2692},{"style":130},[2693],{"type":71,"value":215},{"type":66,"tag":107,"props":2695,"children":2696},{"style":157},[2697],{"type":71,"value":220},{"type":66,"tag":107,"props":2699,"children":2700},{"style":130},[2701],{"type":71,"value":215},{"type":66,"tag":107,"props":2703,"children":2704},{"style":136},[2705],{"type":71,"value":229},{"type":66,"tag":107,"props":2707,"children":2708},{"style":130},[2709],{"type":71,"value":234},{"type":66,"tag":107,"props":2711,"children":2712},{"class":109,"line":168},[2713,2717,2721,2725,2730,2734,2738,2742,2746,2750,2754,2758,2762],{"type":66,"tag":107,"props":2714,"children":2715},{"style":203},[2716],{"type":71,"value":243},{"type":66,"tag":107,"props":2718,"children":2719},{"style":130},[2720],{"type":71,"value":94},{"type":66,"tag":107,"props":2722,"children":2723},{"style":130},[2724],{"type":71,"value":1266},{"type":66,"tag":107,"props":2726,"children":2727},{"style":279},[2728],{"type":71,"value":2729}," context",{"type":66,"tag":107,"props":2731,"children":2732},{"style":130},[2733],{"type":71,"value":94},{"type":66,"tag":107,"props":2735,"children":2736},{"style":130},[2737],{"type":71,"value":133},{"type":66,"tag":107,"props":2739,"children":2740},{"style":444},[2741],{"type":71,"value":262},{"type":66,"tag":107,"props":2743,"children":2744},{"style":130},[2745],{"type":71,"value":144},{"type":66,"tag":107,"props":2747,"children":2748},{"style":130},[2749],{"type":71,"value":1303},{"type":66,"tag":107,"props":2751,"children":2752},{"style":187},[2753],{"type":71,"value":257},{"type":66,"tag":107,"props":2755,"children":2756},{"style":203},[2757],{"type":71,"value":262},{"type":66,"tag":107,"props":2759,"children":2760},{"style":136},[2761],{"type":71,"value":267},{"type":66,"tag":107,"props":2763,"children":2764},{"style":130},[2765],{"type":71,"value":272},{"type":66,"tag":107,"props":2767,"children":2768},{"class":109,"line":178},[2769,2773],{"type":66,"tag":107,"props":2770,"children":2771},{"style":130},[2772],{"type":71,"value":304},{"type":66,"tag":107,"props":2774,"children":2775},{"style":136},[2776],{"type":71,"value":309},{"type":66,"tag":81,"props":2778,"children":2779},{},[2780,2782,2788,2790,2796],{"type":71,"value":2781},"To pass React hook values into the router context, call the hook above ",{"type":66,"tag":87,"props":2783,"children":2785},{"className":2784},[],[2786],{"type":71,"value":2787},"RouterProvider",{"type":71,"value":2789}," and inject via the ",{"type":66,"tag":87,"props":2791,"children":2793},{"className":2792},[],[2794],{"type":71,"value":2795},"context",{"type":71,"value":2797}," prop:",{"type":66,"tag":96,"props":2799,"children":2801},{"className":98,"code":2800,"language":100,"meta":101,"style":101},"import { RouterProvider } from '@tanstack\u002Freact-router'\n\nfunction InnerApp() {\n  const auth = useAuth()\n  return \u003CRouterProvider router={router} context={{ auth }} \u002F>\n}\n\nfunction App() {\n  return (\n    \u003CAuthProvider>\n      \u003CInnerApp \u002F>\n    \u003C\u002FAuthProvider>\n  )\n}\n",[2802],{"type":66,"tag":87,"props":2803,"children":2804},{"__ignoreMap":101},[2805,2841,2848,2868,2893,2945,2952,2959,2979,2990,3006,3024,3039,3046],{"type":66,"tag":107,"props":2806,"children":2807},{"class":109,"line":110},[2808,2812,2816,2821,2825,2829,2833,2837],{"type":66,"tag":107,"props":2809,"children":2810},{"style":124},[2811],{"type":71,"value":127},{"type":66,"tag":107,"props":2813,"children":2814},{"style":130},[2815],{"type":71,"value":133},{"type":66,"tag":107,"props":2817,"children":2818},{"style":136},[2819],{"type":71,"value":2820}," RouterProvider",{"type":66,"tag":107,"props":2822,"children":2823},{"style":130},[2824],{"type":71,"value":144},{"type":66,"tag":107,"props":2826,"children":2827},{"style":124},[2828],{"type":71,"value":149},{"type":66,"tag":107,"props":2830,"children":2831},{"style":130},[2832],{"type":71,"value":154},{"type":66,"tag":107,"props":2834,"children":2835},{"style":157},[2836],{"type":71,"value":160},{"type":66,"tag":107,"props":2838,"children":2839},{"style":130},[2840],{"type":71,"value":165},{"type":66,"tag":107,"props":2842,"children":2843},{"class":109,"line":120},[2844],{"type":66,"tag":107,"props":2845,"children":2846},{"emptyLinePlaceholder":172},[2847],{"type":71,"value":175},{"type":66,"tag":107,"props":2849,"children":2850},{"class":109,"line":168},[2851,2855,2860,2864],{"type":66,"tag":107,"props":2852,"children":2853},{"style":187},[2854],{"type":71,"value":326},{"type":66,"tag":107,"props":2856,"children":2857},{"style":203},[2858],{"type":71,"value":2859}," InnerApp",{"type":66,"tag":107,"props":2861,"children":2862},{"style":130},[2863],{"type":71,"value":267},{"type":66,"tag":107,"props":2865,"children":2866},{"style":130},[2867],{"type":71,"value":339},{"type":66,"tag":107,"props":2869,"children":2870},{"class":109,"line":178},[2871,2875,2880,2884,2889],{"type":66,"tag":107,"props":2872,"children":2873},{"style":187},[2874],{"type":71,"value":348},{"type":66,"tag":107,"props":2876,"children":2877},{"style":136},[2878],{"type":71,"value":2879}," auth",{"type":66,"tag":107,"props":2881,"children":2882},{"style":130},[2883],{"type":71,"value":358},{"type":66,"tag":107,"props":2885,"children":2886},{"style":203},[2887],{"type":71,"value":2888}," useAuth",{"type":66,"tag":107,"props":2890,"children":2891},{"style":279},[2892],{"type":71,"value":377},{"type":66,"tag":107,"props":2894,"children":2895},{"class":109,"line":237},[2896,2900,2904,2908,2913,2917,2921,2926,2930,2935,2940],{"type":66,"tag":107,"props":2897,"children":2898},{"style":124},[2899],{"type":71,"value":386},{"type":66,"tag":107,"props":2901,"children":2902},{"style":130},[2903],{"type":71,"value":750},{"type":66,"tag":107,"props":2905,"children":2906},{"style":2220},[2907],{"type":71,"value":2787},{"type":66,"tag":107,"props":2909,"children":2910},{"style":187},[2911],{"type":71,"value":2912}," router",{"type":66,"tag":107,"props":2914,"children":2915},{"style":130},[2916],{"type":71,"value":484},{"type":66,"tag":107,"props":2918,"children":2919},{"style":136},[2920],{"type":71,"value":34},{"type":66,"tag":107,"props":2922,"children":2923},{"style":130},[2924],{"type":71,"value":2925},"} ",{"type":66,"tag":107,"props":2927,"children":2928},{"style":187},[2929],{"type":71,"value":2795},{"type":66,"tag":107,"props":2931,"children":2932},{"style":130},[2933],{"type":71,"value":2934},"={{",{"type":66,"tag":107,"props":2936,"children":2937},{"style":136},[2938],{"type":71,"value":2939}," auth ",{"type":66,"tag":107,"props":2941,"children":2942},{"style":130},[2943],{"type":71,"value":2944},"}} \u002F>\n",{"type":66,"tag":107,"props":2946,"children":2947},{"class":109,"line":275},[2948],{"type":66,"tag":107,"props":2949,"children":2950},{"style":130},[2951],{"type":71,"value":542},{"type":66,"tag":107,"props":2953,"children":2954},{"class":109,"line":298},[2955],{"type":66,"tag":107,"props":2956,"children":2957},{"emptyLinePlaceholder":172},[2958],{"type":71,"value":175},{"type":66,"tag":107,"props":2960,"children":2961},{"class":109,"line":312},[2962,2966,2971,2975],{"type":66,"tag":107,"props":2963,"children":2964},{"style":187},[2965],{"type":71,"value":326},{"type":66,"tag":107,"props":2967,"children":2968},{"style":203},[2969],{"type":71,"value":2970}," App",{"type":66,"tag":107,"props":2972,"children":2973},{"style":130},[2974],{"type":71,"value":267},{"type":66,"tag":107,"props":2976,"children":2977},{"style":130},[2978],{"type":71,"value":339},{"type":66,"tag":107,"props":2980,"children":2981},{"class":109,"line":320},[2982,2986],{"type":66,"tag":107,"props":2983,"children":2984},{"style":124},[2985],{"type":71,"value":386},{"type":66,"tag":107,"props":2987,"children":2988},{"style":279},[2989],{"type":71,"value":391},{"type":66,"tag":107,"props":2991,"children":2992},{"class":109,"line":342},[2993,2997,3002],{"type":66,"tag":107,"props":2994,"children":2995},{"style":130},[2996],{"type":71,"value":400},{"type":66,"tag":107,"props":2998,"children":2999},{"style":2220},[3000],{"type":71,"value":3001},"AuthProvider",{"type":66,"tag":107,"props":3003,"children":3004},{"style":130},[3005],{"type":71,"value":410},{"type":66,"tag":107,"props":3007,"children":3008},{"class":109,"line":380},[3009,3014,3019],{"type":66,"tag":107,"props":3010,"children":3011},{"style":130},[3012],{"type":71,"value":3013},"      \u003C",{"type":66,"tag":107,"props":3015,"children":3016},{"style":2220},[3017],{"type":71,"value":3018},"InnerApp",{"type":66,"tag":107,"props":3020,"children":3021},{"style":130},[3022],{"type":71,"value":3023}," \u002F>\n",{"type":66,"tag":107,"props":3025,"children":3026},{"class":109,"line":394},[3027,3031,3035],{"type":66,"tag":107,"props":3028,"children":3029},{"style":130},[3030],{"type":71,"value":551},{"type":66,"tag":107,"props":3032,"children":3033},{"style":2220},[3034],{"type":71,"value":3001},{"type":66,"tag":107,"props":3036,"children":3037},{"style":130},[3038],{"type":71,"value":410},{"type":66,"tag":107,"props":3040,"children":3041},{"class":109,"line":413},[3042],{"type":66,"tag":107,"props":3043,"children":3044},{"style":279},[3045],{"type":71,"value":568},{"type":66,"tag":107,"props":3047,"children":3048},{"class":109,"line":463},[3049],{"type":66,"tag":107,"props":3050,"children":3051},{"style":130},[3052],{"type":71,"value":542},{"type":66,"tag":81,"props":3054,"children":3055},{},[3056,3058,3063],{"type":71,"value":3057},"Route-level context via ",{"type":66,"tag":87,"props":3059,"children":3061},{"className":3060},[],[3062],{"type":71,"value":948},{"type":71,"value":94},{"type":66,"tag":96,"props":3065,"children":3067},{"className":98,"code":3066,"language":100,"meta":101,"style":101},"export const Route = createFileRoute('\u002Fposts')({\n  beforeLoad: ({ context }) => ({\n    fetchPosts: context.fetchPosts,\n  }),\n  loader: ({ context: { fetchPosts } }) => fetchPosts(),\n})\n",[3068],{"type":66,"tag":87,"props":3069,"children":3070},{"__ignoreMap":101},[3071,3118,3154,3182,3197,3252],{"type":66,"tag":107,"props":3072,"children":3073},{"class":109,"line":110},[3074,3078,3082,3086,3090,3094,3098,3102,3106,3110,3114],{"type":66,"tag":107,"props":3075,"children":3076},{"style":124},[3077],{"type":71,"value":184},{"type":66,"tag":107,"props":3079,"children":3080},{"style":187},[3081],{"type":71,"value":190},{"type":66,"tag":107,"props":3083,"children":3084},{"style":136},[3085],{"type":71,"value":195},{"type":66,"tag":107,"props":3087,"children":3088},{"style":130},[3089],{"type":71,"value":200},{"type":66,"tag":107,"props":3091,"children":3092},{"style":203},[3093],{"type":71,"value":139},{"type":66,"tag":107,"props":3095,"children":3096},{"style":136},[3097],{"type":71,"value":210},{"type":66,"tag":107,"props":3099,"children":3100},{"style":130},[3101],{"type":71,"value":215},{"type":66,"tag":107,"props":3103,"children":3104},{"style":157},[3105],{"type":71,"value":220},{"type":66,"tag":107,"props":3107,"children":3108},{"style":130},[3109],{"type":71,"value":215},{"type":66,"tag":107,"props":3111,"children":3112},{"style":136},[3113],{"type":71,"value":229},{"type":66,"tag":107,"props":3115,"children":3116},{"style":130},[3117],{"type":71,"value":234},{"type":66,"tag":107,"props":3119,"children":3120},{"class":109,"line":120},[3121,3126,3130,3134,3138,3142,3146,3150],{"type":66,"tag":107,"props":3122,"children":3123},{"style":203},[3124],{"type":71,"value":3125},"  beforeLoad",{"type":66,"tag":107,"props":3127,"children":3128},{"style":130},[3129],{"type":71,"value":94},{"type":66,"tag":107,"props":3131,"children":3132},{"style":130},[3133],{"type":71,"value":1266},{"type":66,"tag":107,"props":3135,"children":3136},{"style":444},[3137],{"type":71,"value":2729},{"type":66,"tag":107,"props":3139,"children":3140},{"style":130},[3141],{"type":71,"value":1303},{"type":66,"tag":107,"props":3143,"children":3144},{"style":187},[3145],{"type":71,"value":257},{"type":66,"tag":107,"props":3147,"children":3148},{"style":136},[3149],{"type":71,"value":1125},{"type":66,"tag":107,"props":3151,"children":3152},{"style":130},[3153],{"type":71,"value":234},{"type":66,"tag":107,"props":3155,"children":3156},{"class":109,"line":168},[3157,3161,3165,3169,3173,3178],{"type":66,"tag":107,"props":3158,"children":3159},{"style":279},[3160],{"type":71,"value":2620},{"type":66,"tag":107,"props":3162,"children":3163},{"style":130},[3164],{"type":71,"value":94},{"type":66,"tag":107,"props":3166,"children":3167},{"style":136},[3168],{"type":71,"value":2729},{"type":66,"tag":107,"props":3170,"children":3171},{"style":130},[3172],{"type":71,"value":368},{"type":66,"tag":107,"props":3174,"children":3175},{"style":136},[3176],{"type":71,"value":3177},"fetchPosts",{"type":66,"tag":107,"props":3179,"children":3180},{"style":130},[3181],{"type":71,"value":272},{"type":66,"tag":107,"props":3183,"children":3184},{"class":109,"line":178},[3185,3189,3193],{"type":66,"tag":107,"props":3186,"children":3187},{"style":130},[3188],{"type":71,"value":1241},{"type":66,"tag":107,"props":3190,"children":3191},{"style":136},[3192],{"type":71,"value":452},{"type":66,"tag":107,"props":3194,"children":3195},{"style":130},[3196],{"type":71,"value":272},{"type":66,"tag":107,"props":3198,"children":3199},{"class":109,"line":237},[3200,3204,3208,3212,3216,3220,3224,3228,3232,3236,3240,3244,3248],{"type":66,"tag":107,"props":3201,"children":3202},{"style":203},[3203],{"type":71,"value":243},{"type":66,"tag":107,"props":3205,"children":3206},{"style":130},[3207],{"type":71,"value":94},{"type":66,"tag":107,"props":3209,"children":3210},{"style":130},[3211],{"type":71,"value":1266},{"type":66,"tag":107,"props":3213,"children":3214},{"style":279},[3215],{"type":71,"value":2729},{"type":66,"tag":107,"props":3217,"children":3218},{"style":130},[3219],{"type":71,"value":94},{"type":66,"tag":107,"props":3221,"children":3222},{"style":130},[3223],{"type":71,"value":133},{"type":66,"tag":107,"props":3225,"children":3226},{"style":444},[3227],{"type":71,"value":262},{"type":66,"tag":107,"props":3229,"children":3230},{"style":130},[3231],{"type":71,"value":144},{"type":66,"tag":107,"props":3233,"children":3234},{"style":130},[3235],{"type":71,"value":1303},{"type":66,"tag":107,"props":3237,"children":3238},{"style":187},[3239],{"type":71,"value":257},{"type":66,"tag":107,"props":3241,"children":3242},{"style":203},[3243],{"type":71,"value":262},{"type":66,"tag":107,"props":3245,"children":3246},{"style":136},[3247],{"type":71,"value":267},{"type":66,"tag":107,"props":3249,"children":3250},{"style":130},[3251],{"type":71,"value":272},{"type":66,"tag":107,"props":3253,"children":3254},{"class":109,"line":275},[3255,3259],{"type":66,"tag":107,"props":3256,"children":3257},{"style":130},[3258],{"type":71,"value":304},{"type":66,"tag":107,"props":3260,"children":3261},{"style":136},[3262],{"type":71,"value":309},{"type":66,"tag":81,"props":3264,"children":3265},{},[3266,3268,3274],{"type":71,"value":3267},"Keep the implementation SSR-safe when the router is used by TanStack Start. A relative ",{"type":66,"tag":87,"props":3269,"children":3271},{"className":3270},[],[3272],{"type":71,"value":3273},"fetch('\u002Fapi\u002Fposts')",{"type":71,"value":3275}," works in a browser event handler, but Node and many server runtimes require an absolute URL during SSR. For app-internal data in Start, call a server function from the loader:",{"type":66,"tag":96,"props":3277,"children":3279},{"className":98,"code":3278,"language":100,"meta":101,"style":101},"import { createServerFn } from '@tanstack\u002Freact-start'\n\nconst getPosts = createServerFn({ method: 'GET' }).handler(() => {\n  return db.posts.findMany()\n})\n\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: () => getPosts(),\n})\n",[3280],{"type":66,"tag":87,"props":3281,"children":3282},{"__ignoreMap":101},[3283,3320,3327,3410,3443,3454,3461,3508,3540],{"type":66,"tag":107,"props":3284,"children":3285},{"class":109,"line":110},[3286,3290,3294,3299,3303,3307,3311,3316],{"type":66,"tag":107,"props":3287,"children":3288},{"style":124},[3289],{"type":71,"value":127},{"type":66,"tag":107,"props":3291,"children":3292},{"style":130},[3293],{"type":71,"value":133},{"type":66,"tag":107,"props":3295,"children":3296},{"style":136},[3297],{"type":71,"value":3298}," createServerFn",{"type":66,"tag":107,"props":3300,"children":3301},{"style":130},[3302],{"type":71,"value":144},{"type":66,"tag":107,"props":3304,"children":3305},{"style":124},[3306],{"type":71,"value":149},{"type":66,"tag":107,"props":3308,"children":3309},{"style":130},[3310],{"type":71,"value":154},{"type":66,"tag":107,"props":3312,"children":3313},{"style":157},[3314],{"type":71,"value":3315},"@tanstack\u002Freact-start",{"type":66,"tag":107,"props":3317,"children":3318},{"style":130},[3319],{"type":71,"value":165},{"type":66,"tag":107,"props":3321,"children":3322},{"class":109,"line":120},[3323],{"type":66,"tag":107,"props":3324,"children":3325},{"emptyLinePlaceholder":172},[3326],{"type":71,"value":175},{"type":66,"tag":107,"props":3328,"children":3329},{"class":109,"line":168},[3330,3334,3339,3343,3347,3351,3355,3360,3364,3368,3373,3377,3381,3385,3389,3394,3398,3402,3406],{"type":66,"tag":107,"props":3331,"children":3332},{"style":187},[3333],{"type":71,"value":647},{"type":66,"tag":107,"props":3335,"children":3336},{"style":136},[3337],{"type":71,"value":3338}," getPosts ",{"type":66,"tag":107,"props":3340,"children":3341},{"style":130},[3342],{"type":71,"value":200},{"type":66,"tag":107,"props":3344,"children":3345},{"style":203},[3346],{"type":71,"value":3298},{"type":66,"tag":107,"props":3348,"children":3349},{"style":136},[3350],{"type":71,"value":210},{"type":66,"tag":107,"props":3352,"children":3353},{"style":130},[3354],{"type":71,"value":1316},{"type":66,"tag":107,"props":3356,"children":3357},{"style":279},[3358],{"type":71,"value":3359}," method",{"type":66,"tag":107,"props":3361,"children":3362},{"style":130},[3363],{"type":71,"value":94},{"type":66,"tag":107,"props":3365,"children":3366},{"style":130},[3367],{"type":71,"value":154},{"type":66,"tag":107,"props":3369,"children":3370},{"style":157},[3371],{"type":71,"value":3372},"GET",{"type":66,"tag":107,"props":3374,"children":3375},{"style":130},[3376],{"type":71,"value":215},{"type":66,"tag":107,"props":3378,"children":3379},{"style":130},[3380],{"type":71,"value":144},{"type":66,"tag":107,"props":3382,"children":3383},{"style":136},[3384],{"type":71,"value":452},{"type":66,"tag":107,"props":3386,"children":3387},{"style":130},[3388],{"type":71,"value":368},{"type":66,"tag":107,"props":3390,"children":3391},{"style":203},[3392],{"type":71,"value":3393},"handler",{"type":66,"tag":107,"props":3395,"children":3396},{"style":136},[3397],{"type":71,"value":210},{"type":66,"tag":107,"props":3399,"children":3400},{"style":130},[3401],{"type":71,"value":267},{"type":66,"tag":107,"props":3403,"children":3404},{"style":187},[3405],{"type":71,"value":257},{"type":66,"tag":107,"props":3407,"children":3408},{"style":130},[3409],{"type":71,"value":339},{"type":66,"tag":107,"props":3411,"children":3412},{"class":109,"line":178},[3413,3417,3422,3426,3430,3434,3439],{"type":66,"tag":107,"props":3414,"children":3415},{"style":124},[3416],{"type":71,"value":386},{"type":66,"tag":107,"props":3418,"children":3419},{"style":136},[3420],{"type":71,"value":3421}," db",{"type":66,"tag":107,"props":3423,"children":3424},{"style":130},[3425],{"type":71,"value":368},{"type":66,"tag":107,"props":3427,"children":3428},{"style":136},[3429],{"type":71,"value":424},{"type":66,"tag":107,"props":3431,"children":3432},{"style":130},[3433],{"type":71,"value":368},{"type":66,"tag":107,"props":3435,"children":3436},{"style":203},[3437],{"type":71,"value":3438},"findMany",{"type":66,"tag":107,"props":3440,"children":3441},{"style":279},[3442],{"type":71,"value":377},{"type":66,"tag":107,"props":3444,"children":3445},{"class":109,"line":237},[3446,3450],{"type":66,"tag":107,"props":3447,"children":3448},{"style":130},[3449],{"type":71,"value":304},{"type":66,"tag":107,"props":3451,"children":3452},{"style":136},[3453],{"type":71,"value":309},{"type":66,"tag":107,"props":3455,"children":3456},{"class":109,"line":275},[3457],{"type":66,"tag":107,"props":3458,"children":3459},{"emptyLinePlaceholder":172},[3460],{"type":71,"value":175},{"type":66,"tag":107,"props":3462,"children":3463},{"class":109,"line":298},[3464,3468,3472,3476,3480,3484,3488,3492,3496,3500,3504],{"type":66,"tag":107,"props":3465,"children":3466},{"style":124},[3467],{"type":71,"value":184},{"type":66,"tag":107,"props":3469,"children":3470},{"style":187},[3471],{"type":71,"value":190},{"type":66,"tag":107,"props":3473,"children":3474},{"style":136},[3475],{"type":71,"value":195},{"type":66,"tag":107,"props":3477,"children":3478},{"style":130},[3479],{"type":71,"value":200},{"type":66,"tag":107,"props":3481,"children":3482},{"style":203},[3483],{"type":71,"value":139},{"type":66,"tag":107,"props":3485,"children":3486},{"style":136},[3487],{"type":71,"value":210},{"type":66,"tag":107,"props":3489,"children":3490},{"style":130},[3491],{"type":71,"value":215},{"type":66,"tag":107,"props":3493,"children":3494},{"style":157},[3495],{"type":71,"value":220},{"type":66,"tag":107,"props":3497,"children":3498},{"style":130},[3499],{"type":71,"value":215},{"type":66,"tag":107,"props":3501,"children":3502},{"style":136},[3503],{"type":71,"value":229},{"type":66,"tag":107,"props":3505,"children":3506},{"style":130},[3507],{"type":71,"value":234},{"type":66,"tag":107,"props":3509,"children":3510},{"class":109,"line":312},[3511,3515,3519,3523,3527,3532,3536],{"type":66,"tag":107,"props":3512,"children":3513},{"style":203},[3514],{"type":71,"value":243},{"type":66,"tag":107,"props":3516,"children":3517},{"style":130},[3518],{"type":71,"value":94},{"type":66,"tag":107,"props":3520,"children":3521},{"style":130},[3522],{"type":71,"value":252},{"type":66,"tag":107,"props":3524,"children":3525},{"style":187},[3526],{"type":71,"value":257},{"type":66,"tag":107,"props":3528,"children":3529},{"style":203},[3530],{"type":71,"value":3531}," getPosts",{"type":66,"tag":107,"props":3533,"children":3534},{"style":136},[3535],{"type":71,"value":267},{"type":66,"tag":107,"props":3537,"children":3538},{"style":130},[3539],{"type":71,"value":272},{"type":66,"tag":107,"props":3541,"children":3542},{"class":109,"line":320},[3543,3547],{"type":66,"tag":107,"props":3544,"children":3545},{"style":130},[3546],{"type":71,"value":304},{"type":66,"tag":107,"props":3548,"children":3549},{"style":136},[3550],{"type":71,"value":309},{"type":66,"tag":81,"props":3552,"children":3553},{},[3554],{"type":71,"value":3555},"Use a server route plus an origin-derived absolute URL only when the HTTP boundary itself is required. Do not hard-code the production origin.",{"type":66,"tag":987,"props":3557,"children":3559},{"id":3558},"deferred-data-loading",[3560],{"type":71,"value":3561},"Deferred Data Loading",{"type":66,"tag":81,"props":3563,"children":3564},{},[3565,3567,3573],{"type":71,"value":3566},"Return unawaited promises from the loader for non-critical data. Use the ",{"type":66,"tag":87,"props":3568,"children":3570},{"className":3569},[],[3571],{"type":71,"value":3572},"Await",{"type":71,"value":3574}," component to render them:",{"type":66,"tag":96,"props":3576,"children":3578},{"className":98,"code":3577,"language":100,"meta":101,"style":101},"import { createFileRoute, Await } from '@tanstack\u002Freact-router'\n\nexport const Route = createFileRoute('\u002Fposts\u002F$postId')({\n  loader: async ({ params: { postId } }) => {\n    \u002F\u002F Slow data — do NOT await\n    const slowDataPromise = fetchComments(postId)\n    \u002F\u002F Fast data — await\n    const post = await fetchPost(postId)\n\n    return { post, deferredComments: slowDataPromise }\n  },\n  component: PostComponent,\n})\n\nfunction PostComponent() {\n  const { post, deferredComments } = Route.useLoaderData()\n\n  return (\n    \u003Cdiv>\n      \u003Ch1>{post.title}\u003C\u002Fh1>\n      \u003CAwait\n        promise={deferredComments}\n        fallback={\u003Cdiv>Loading comments...\u003C\u002Fdiv>}\n      >\n        {(comments) => (\n          \u003Cul>\n            {comments.map((c) => (\n              \u003Cli key={c.id}>{c.body}\u003C\u002Fli>\n            ))}\n          \u003C\u002Ful>\n        )}\n      \u003C\u002FAwait>\n    \u003C\u002Fdiv>\n  )\n}\n",[3579],{"type":66,"tag":87,"props":3580,"children":3581},{"__ignoreMap":101},[3582,3626,3633,3681,3735,3743,3778,3786,3824,3831,3868,3875,3895,3906,3913,3932,3979,3986,3997,4013,4053,4066,4088,4128,4137,4163,4180,4226,4288,4301,4318,4331,4348,4364,4372],{"type":66,"tag":107,"props":3583,"children":3584},{"class":109,"line":110},[3585,3589,3593,3597,3601,3606,3610,3614,3618,3622],{"type":66,"tag":107,"props":3586,"children":3587},{"style":124},[3588],{"type":71,"value":127},{"type":66,"tag":107,"props":3590,"children":3591},{"style":130},[3592],{"type":71,"value":133},{"type":66,"tag":107,"props":3594,"children":3595},{"style":136},[3596],{"type":71,"value":139},{"type":66,"tag":107,"props":3598,"children":3599},{"style":130},[3600],{"type":71,"value":1289},{"type":66,"tag":107,"props":3602,"children":3603},{"style":136},[3604],{"type":71,"value":3605}," Await",{"type":66,"tag":107,"props":3607,"children":3608},{"style":130},[3609],{"type":71,"value":144},{"type":66,"tag":107,"props":3611,"children":3612},{"style":124},[3613],{"type":71,"value":149},{"type":66,"tag":107,"props":3615,"children":3616},{"style":130},[3617],{"type":71,"value":154},{"type":66,"tag":107,"props":3619,"children":3620},{"style":157},[3621],{"type":71,"value":160},{"type":66,"tag":107,"props":3623,"children":3624},{"style":130},[3625],{"type":71,"value":165},{"type":66,"tag":107,"props":3627,"children":3628},{"class":109,"line":120},[3629],{"type":66,"tag":107,"props":3630,"children":3631},{"emptyLinePlaceholder":172},[3632],{"type":71,"value":175},{"type":66,"tag":107,"props":3634,"children":3635},{"class":109,"line":168},[3636,3640,3644,3648,3652,3656,3660,3664,3669,3673,3677],{"type":66,"tag":107,"props":3637,"children":3638},{"style":124},[3639],{"type":71,"value":184},{"type":66,"tag":107,"props":3641,"children":3642},{"style":187},[3643],{"type":71,"value":190},{"type":66,"tag":107,"props":3645,"children":3646},{"style":136},[3647],{"type":71,"value":195},{"type":66,"tag":107,"props":3649,"children":3650},{"style":130},[3651],{"type":71,"value":200},{"type":66,"tag":107,"props":3653,"children":3654},{"style":203},[3655],{"type":71,"value":139},{"type":66,"tag":107,"props":3657,"children":3658},{"style":136},[3659],{"type":71,"value":210},{"type":66,"tag":107,"props":3661,"children":3662},{"style":130},[3663],{"type":71,"value":215},{"type":66,"tag":107,"props":3665,"children":3666},{"style":157},[3667],{"type":71,"value":3668},"\u002Fposts\u002F$postId",{"type":66,"tag":107,"props":3670,"children":3671},{"style":130},[3672],{"type":71,"value":215},{"type":66,"tag":107,"props":3674,"children":3675},{"style":136},[3676],{"type":71,"value":229},{"type":66,"tag":107,"props":3678,"children":3679},{"style":130},[3680],{"type":71,"value":234},{"type":66,"tag":107,"props":3682,"children":3683},{"class":109,"line":178},[3684,3688,3692,3697,3701,3706,3710,3714,3719,3723,3727,3731],{"type":66,"tag":107,"props":3685,"children":3686},{"style":203},[3687],{"type":71,"value":243},{"type":66,"tag":107,"props":3689,"children":3690},{"style":130},[3691],{"type":71,"value":94},{"type":66,"tag":107,"props":3693,"children":3694},{"style":187},[3695],{"type":71,"value":3696}," async",{"type":66,"tag":107,"props":3698,"children":3699},{"style":130},[3700],{"type":71,"value":1266},{"type":66,"tag":107,"props":3702,"children":3703},{"style":279},[3704],{"type":71,"value":3705}," params",{"type":66,"tag":107,"props":3707,"children":3708},{"style":130},[3709],{"type":71,"value":94},{"type":66,"tag":107,"props":3711,"children":3712},{"style":130},[3713],{"type":71,"value":133},{"type":66,"tag":107,"props":3715,"children":3716},{"style":444},[3717],{"type":71,"value":3718}," postId",{"type":66,"tag":107,"props":3720,"children":3721},{"style":130},[3722],{"type":71,"value":144},{"type":66,"tag":107,"props":3724,"children":3725},{"style":130},[3726],{"type":71,"value":1303},{"type":66,"tag":107,"props":3728,"children":3729},{"style":187},[3730],{"type":71,"value":257},{"type":66,"tag":107,"props":3732,"children":3733},{"style":130},[3734],{"type":71,"value":339},{"type":66,"tag":107,"props":3736,"children":3737},{"class":109,"line":237},[3738],{"type":66,"tag":107,"props":3739,"children":3740},{"style":114},[3741],{"type":71,"value":3742},"    \u002F\u002F Slow data — do NOT await\n",{"type":66,"tag":107,"props":3744,"children":3745},{"class":109,"line":275},[3746,3751,3756,3760,3765,3769,3774],{"type":66,"tag":107,"props":3747,"children":3748},{"style":187},[3749],{"type":71,"value":3750},"    const",{"type":66,"tag":107,"props":3752,"children":3753},{"style":136},[3754],{"type":71,"value":3755}," slowDataPromise",{"type":66,"tag":107,"props":3757,"children":3758},{"style":130},[3759],{"type":71,"value":358},{"type":66,"tag":107,"props":3761,"children":3762},{"style":203},[3763],{"type":71,"value":3764}," fetchComments",{"type":66,"tag":107,"props":3766,"children":3767},{"style":279},[3768],{"type":71,"value":210},{"type":66,"tag":107,"props":3770,"children":3771},{"style":136},[3772],{"type":71,"value":3773},"postId",{"type":66,"tag":107,"props":3775,"children":3776},{"style":279},[3777],{"type":71,"value":309},{"type":66,"tag":107,"props":3779,"children":3780},{"class":109,"line":298},[3781],{"type":66,"tag":107,"props":3782,"children":3783},{"style":114},[3784],{"type":71,"value":3785},"    \u002F\u002F Fast data — await\n",{"type":66,"tag":107,"props":3787,"children":3788},{"class":109,"line":312},[3789,3793,3798,3802,3807,3812,3816,3820],{"type":66,"tag":107,"props":3790,"children":3791},{"style":187},[3792],{"type":71,"value":3750},{"type":66,"tag":107,"props":3794,"children":3795},{"style":136},[3796],{"type":71,"value":3797}," post",{"type":66,"tag":107,"props":3799,"children":3800},{"style":130},[3801],{"type":71,"value":358},{"type":66,"tag":107,"props":3803,"children":3804},{"style":124},[3805],{"type":71,"value":3806}," await",{"type":66,"tag":107,"props":3808,"children":3809},{"style":203},[3810],{"type":71,"value":3811}," fetchPost",{"type":66,"tag":107,"props":3813,"children":3814},{"style":279},[3815],{"type":71,"value":210},{"type":66,"tag":107,"props":3817,"children":3818},{"style":136},[3819],{"type":71,"value":3773},{"type":66,"tag":107,"props":3821,"children":3822},{"style":279},[3823],{"type":71,"value":309},{"type":66,"tag":107,"props":3825,"children":3826},{"class":109,"line":320},[3827],{"type":66,"tag":107,"props":3828,"children":3829},{"emptyLinePlaceholder":172},[3830],{"type":71,"value":175},{"type":66,"tag":107,"props":3832,"children":3833},{"class":109,"line":342},[3834,3839,3843,3847,3851,3856,3860,3864],{"type":66,"tag":107,"props":3835,"children":3836},{"style":124},[3837],{"type":71,"value":3838},"    return",{"type":66,"tag":107,"props":3840,"children":3841},{"style":130},[3842],{"type":71,"value":133},{"type":66,"tag":107,"props":3844,"children":3845},{"style":136},[3846],{"type":71,"value":3797},{"type":66,"tag":107,"props":3848,"children":3849},{"style":130},[3850],{"type":71,"value":1289},{"type":66,"tag":107,"props":3852,"children":3853},{"style":279},[3854],{"type":71,"value":3855}," deferredComments",{"type":66,"tag":107,"props":3857,"children":3858},{"style":130},[3859],{"type":71,"value":94},{"type":66,"tag":107,"props":3861,"children":3862},{"style":136},[3863],{"type":71,"value":3755},{"type":66,"tag":107,"props":3865,"children":3866},{"style":130},[3867],{"type":71,"value":2262},{"type":66,"tag":107,"props":3869,"children":3870},{"class":109,"line":380},[3871],{"type":66,"tag":107,"props":3872,"children":3873},{"style":130},[3874],{"type":71,"value":2632},{"type":66,"tag":107,"props":3876,"children":3877},{"class":109,"line":394},[3878,3882,3886,3891],{"type":66,"tag":107,"props":3879,"children":3880},{"style":279},[3881],{"type":71,"value":282},{"type":66,"tag":107,"props":3883,"children":3884},{"style":130},[3885],{"type":71,"value":94},{"type":66,"tag":107,"props":3887,"children":3888},{"style":136},[3889],{"type":71,"value":3890}," PostComponent",{"type":66,"tag":107,"props":3892,"children":3893},{"style":130},[3894],{"type":71,"value":272},{"type":66,"tag":107,"props":3896,"children":3897},{"class":109,"line":413},[3898,3902],{"type":66,"tag":107,"props":3899,"children":3900},{"style":130},[3901],{"type":71,"value":304},{"type":66,"tag":107,"props":3903,"children":3904},{"style":136},[3905],{"type":71,"value":309},{"type":66,"tag":107,"props":3907,"children":3908},{"class":109,"line":463},[3909],{"type":66,"tag":107,"props":3910,"children":3911},{"emptyLinePlaceholder":172},[3912],{"type":71,"value":175},{"type":66,"tag":107,"props":3914,"children":3915},{"class":109,"line":531},[3916,3920,3924,3928],{"type":66,"tag":107,"props":3917,"children":3918},{"style":187},[3919],{"type":71,"value":326},{"type":66,"tag":107,"props":3921,"children":3922},{"style":203},[3923],{"type":71,"value":3890},{"type":66,"tag":107,"props":3925,"children":3926},{"style":130},[3927],{"type":71,"value":267},{"type":66,"tag":107,"props":3929,"children":3930},{"style":130},[3931],{"type":71,"value":339},{"type":66,"tag":107,"props":3933,"children":3934},{"class":109,"line":545},[3935,3939,3943,3947,3951,3955,3959,3963,3967,3971,3975],{"type":66,"tag":107,"props":3936,"children":3937},{"style":187},[3938],{"type":71,"value":348},{"type":66,"tag":107,"props":3940,"children":3941},{"style":130},[3942],{"type":71,"value":133},{"type":66,"tag":107,"props":3944,"children":3945},{"style":136},[3946],{"type":71,"value":3797},{"type":66,"tag":107,"props":3948,"children":3949},{"style":130},[3950],{"type":71,"value":1289},{"type":66,"tag":107,"props":3952,"children":3953},{"style":136},[3954],{"type":71,"value":3855},{"type":66,"tag":107,"props":3956,"children":3957},{"style":130},[3958],{"type":71,"value":144},{"type":66,"tag":107,"props":3960,"children":3961},{"style":130},[3962],{"type":71,"value":358},{"type":66,"tag":107,"props":3964,"children":3965},{"style":136},[3966],{"type":71,"value":363},{"type":66,"tag":107,"props":3968,"children":3969},{"style":130},[3970],{"type":71,"value":368},{"type":66,"tag":107,"props":3972,"children":3973},{"style":203},[3974],{"type":71,"value":92},{"type":66,"tag":107,"props":3976,"children":3977},{"style":279},[3978],{"type":71,"value":377},{"type":66,"tag":107,"props":3980,"children":3981},{"class":109,"line":562},[3982],{"type":66,"tag":107,"props":3983,"children":3984},{"emptyLinePlaceholder":172},[3985],{"type":71,"value":175},{"type":66,"tag":107,"props":3987,"children":3988},{"class":109,"line":571},[3989,3993],{"type":66,"tag":107,"props":3990,"children":3991},{"style":124},[3992],{"type":71,"value":386},{"type":66,"tag":107,"props":3994,"children":3995},{"style":279},[3996],{"type":71,"value":391},{"type":66,"tag":107,"props":3998,"children":4000},{"class":109,"line":3999},19,[4001,4005,4009],{"type":66,"tag":107,"props":4002,"children":4003},{"style":130},[4004],{"type":71,"value":400},{"type":66,"tag":107,"props":4006,"children":4007},{"style":279},[4008],{"type":71,"value":2071},{"type":66,"tag":107,"props":4010,"children":4011},{"style":130},[4012],{"type":71,"value":410},{"type":66,"tag":107,"props":4014,"children":4016},{"class":109,"line":4015},20,[4017,4021,4025,4029,4033,4037,4041,4045,4049],{"type":66,"tag":107,"props":4018,"children":4019},{"style":130},[4020],{"type":71,"value":3013},{"type":66,"tag":107,"props":4022,"children":4023},{"style":279},[4024],{"type":71,"value":67},{"type":66,"tag":107,"props":4026,"children":4027},{"style":130},[4028],{"type":71,"value":759},{"type":66,"tag":107,"props":4030,"children":4031},{"style":136},[4032],{"type":71,"value":447},{"type":66,"tag":107,"props":4034,"children":4035},{"style":130},[4036],{"type":71,"value":368},{"type":66,"tag":107,"props":4038,"children":4039},{"style":136},[4040],{"type":71,"value":515},{"type":66,"tag":107,"props":4042,"children":4043},{"style":130},[4044],{"type":71,"value":520},{"type":66,"tag":107,"props":4046,"children":4047},{"style":279},[4048],{"type":71,"value":67},{"type":66,"tag":107,"props":4050,"children":4051},{"style":130},[4052],{"type":71,"value":410},{"type":66,"tag":107,"props":4054,"children":4056},{"class":109,"line":4055},21,[4057,4061],{"type":66,"tag":107,"props":4058,"children":4059},{"style":130},[4060],{"type":71,"value":3013},{"type":66,"tag":107,"props":4062,"children":4063},{"style":2220},[4064],{"type":71,"value":4065},"Await\n",{"type":66,"tag":107,"props":4067,"children":4069},{"class":109,"line":4068},22,[4070,4075,4079,4084],{"type":66,"tag":107,"props":4071,"children":4072},{"style":187},[4073],{"type":71,"value":4074},"        promise",{"type":66,"tag":107,"props":4076,"children":4077},{"style":130},[4078],{"type":71,"value":484},{"type":66,"tag":107,"props":4080,"children":4081},{"style":136},[4082],{"type":71,"value":4083},"deferredComments",{"type":66,"tag":107,"props":4085,"children":4086},{"style":130},[4087],{"type":71,"value":542},{"type":66,"tag":107,"props":4089,"children":4091},{"class":109,"line":4090},23,[4092,4097,4102,4106,4110,4115,4119,4123],{"type":66,"tag":107,"props":4093,"children":4094},{"style":187},[4095],{"type":71,"value":4096},"        fallback",{"type":66,"tag":107,"props":4098,"children":4099},{"style":130},[4100],{"type":71,"value":4101},"={\u003C",{"type":66,"tag":107,"props":4103,"children":4104},{"style":279},[4105],{"type":71,"value":2071},{"type":66,"tag":107,"props":4107,"children":4108},{"style":130},[4109],{"type":71,"value":2076},{"type":66,"tag":107,"props":4111,"children":4112},{"style":136},[4113],{"type":71,"value":4114},"Loading comments...",{"type":66,"tag":107,"props":4116,"children":4117},{"style":130},[4118],{"type":71,"value":2086},{"type":66,"tag":107,"props":4120,"children":4121},{"style":279},[4122],{"type":71,"value":2071},{"type":66,"tag":107,"props":4124,"children":4125},{"style":130},[4126],{"type":71,"value":4127},">}\n",{"type":66,"tag":107,"props":4129,"children":4131},{"class":109,"line":4130},24,[4132],{"type":66,"tag":107,"props":4133,"children":4134},{"style":130},[4135],{"type":71,"value":4136},"      >\n",{"type":66,"tag":107,"props":4138,"children":4140},{"class":109,"line":4139},25,[4141,4146,4151,4155,4159],{"type":66,"tag":107,"props":4142,"children":4143},{"style":130},[4144],{"type":71,"value":4145},"        {(",{"type":66,"tag":107,"props":4147,"children":4148},{"style":444},[4149],{"type":71,"value":4150},"comments",{"type":66,"tag":107,"props":4152,"children":4153},{"style":130},[4154],{"type":71,"value":452},{"type":66,"tag":107,"props":4156,"children":4157},{"style":187},[4158],{"type":71,"value":257},{"type":66,"tag":107,"props":4160,"children":4161},{"style":136},[4162],{"type":71,"value":391},{"type":66,"tag":107,"props":4164,"children":4166},{"class":109,"line":4165},26,[4167,4172,4176],{"type":66,"tag":107,"props":4168,"children":4169},{"style":130},[4170],{"type":71,"value":4171},"          \u003C",{"type":66,"tag":107,"props":4173,"children":4174},{"style":279},[4175],{"type":71,"value":405},{"type":66,"tag":107,"props":4177,"children":4178},{"style":130},[4179],{"type":71,"value":410},{"type":66,"tag":107,"props":4181,"children":4183},{"class":109,"line":4182},27,[4184,4189,4193,4197,4201,4205,4209,4214,4218,4222],{"type":66,"tag":107,"props":4185,"children":4186},{"style":130},[4187],{"type":71,"value":4188},"            {",{"type":66,"tag":107,"props":4190,"children":4191},{"style":136},[4192],{"type":71,"value":4150},{"type":66,"tag":107,"props":4194,"children":4195},{"style":130},[4196],{"type":71,"value":368},{"type":66,"tag":107,"props":4198,"children":4199},{"style":203},[4200],{"type":71,"value":433},{"type":66,"tag":107,"props":4202,"children":4203},{"style":136},[4204],{"type":71,"value":210},{"type":66,"tag":107,"props":4206,"children":4207},{"style":130},[4208],{"type":71,"value":210},{"type":66,"tag":107,"props":4210,"children":4211},{"style":444},[4212],{"type":71,"value":4213},"c",{"type":66,"tag":107,"props":4215,"children":4216},{"style":130},[4217],{"type":71,"value":452},{"type":66,"tag":107,"props":4219,"children":4220},{"style":187},[4221],{"type":71,"value":257},{"type":66,"tag":107,"props":4223,"children":4224},{"style":136},[4225],{"type":71,"value":391},{"type":66,"tag":107,"props":4227,"children":4229},{"class":109,"line":4228},28,[4230,4235,4239,4243,4247,4251,4255,4259,4263,4267,4271,4276,4280,4284],{"type":66,"tag":107,"props":4231,"children":4232},{"style":130},[4233],{"type":71,"value":4234},"              \u003C",{"type":66,"tag":107,"props":4236,"children":4237},{"style":279},[4238],{"type":71,"value":474},{"type":66,"tag":107,"props":4240,"children":4241},{"style":187},[4242],{"type":71,"value":479},{"type":66,"tag":107,"props":4244,"children":4245},{"style":130},[4246],{"type":71,"value":484},{"type":66,"tag":107,"props":4248,"children":4249},{"style":136},[4250],{"type":71,"value":4213},{"type":66,"tag":107,"props":4252,"children":4253},{"style":130},[4254],{"type":71,"value":368},{"type":66,"tag":107,"props":4256,"children":4257},{"style":136},[4258],{"type":71,"value":497},{"type":66,"tag":107,"props":4260,"children":4261},{"style":130},[4262],{"type":71,"value":502},{"type":66,"tag":107,"props":4264,"children":4265},{"style":136},[4266],{"type":71,"value":4213},{"type":66,"tag":107,"props":4268,"children":4269},{"style":130},[4270],{"type":71,"value":368},{"type":66,"tag":107,"props":4272,"children":4273},{"style":136},[4274],{"type":71,"value":4275},"body",{"type":66,"tag":107,"props":4277,"children":4278},{"style":130},[4279],{"type":71,"value":520},{"type":66,"tag":107,"props":4281,"children":4282},{"style":279},[4283],{"type":71,"value":474},{"type":66,"tag":107,"props":4285,"children":4286},{"style":130},[4287],{"type":71,"value":410},{"type":66,"tag":107,"props":4289,"children":4291},{"class":109,"line":4290},29,[4292,4297],{"type":66,"tag":107,"props":4293,"children":4294},{"style":136},[4295],{"type":71,"value":4296},"            ))",{"type":66,"tag":107,"props":4298,"children":4299},{"style":130},[4300],{"type":71,"value":542},{"type":66,"tag":107,"props":4302,"children":4304},{"class":109,"line":4303},30,[4305,4310,4314],{"type":66,"tag":107,"props":4306,"children":4307},{"style":130},[4308],{"type":71,"value":4309},"          \u003C\u002F",{"type":66,"tag":107,"props":4311,"children":4312},{"style":279},[4313],{"type":71,"value":405},{"type":66,"tag":107,"props":4315,"children":4316},{"style":130},[4317],{"type":71,"value":410},{"type":66,"tag":107,"props":4319,"children":4321},{"class":109,"line":4320},31,[4322,4327],{"type":66,"tag":107,"props":4323,"children":4324},{"style":136},[4325],{"type":71,"value":4326},"        )",{"type":66,"tag":107,"props":4328,"children":4329},{"style":130},[4330],{"type":71,"value":542},{"type":66,"tag":107,"props":4332,"children":4334},{"class":109,"line":4333},32,[4335,4340,4344],{"type":66,"tag":107,"props":4336,"children":4337},{"style":130},[4338],{"type":71,"value":4339},"      \u003C\u002F",{"type":66,"tag":107,"props":4341,"children":4342},{"style":2220},[4343],{"type":71,"value":3572},{"type":66,"tag":107,"props":4345,"children":4346},{"style":130},[4347],{"type":71,"value":410},{"type":66,"tag":107,"props":4349,"children":4351},{"class":109,"line":4350},33,[4352,4356,4360],{"type":66,"tag":107,"props":4353,"children":4354},{"style":130},[4355],{"type":71,"value":551},{"type":66,"tag":107,"props":4357,"children":4358},{"style":279},[4359],{"type":71,"value":2071},{"type":66,"tag":107,"props":4361,"children":4362},{"style":130},[4363],{"type":71,"value":410},{"type":66,"tag":107,"props":4365,"children":4367},{"class":109,"line":4366},34,[4368],{"type":66,"tag":107,"props":4369,"children":4370},{"style":279},[4371],{"type":71,"value":568},{"type":66,"tag":107,"props":4373,"children":4375},{"class":109,"line":4374},35,[4376],{"type":66,"tag":107,"props":4377,"children":4378},{"style":130},[4379],{"type":71,"value":542},{"type":66,"tag":987,"props":4381,"children":4383},{"id":4382},"invalidation-after-mutations",[4384],{"type":71,"value":4385},"Invalidation After Mutations",{"type":66,"tag":81,"props":4387,"children":4388},{},[4389,4395],{"type":66,"tag":87,"props":4390,"children":4392},{"className":4391},[],[4393],{"type":71,"value":4394},"router.invalidate()",{"type":71,"value":4396}," forces all active route loaders to re-run and marks all cached data as stale:",{"type":66,"tag":96,"props":4398,"children":4400},{"className":98,"code":4399,"language":100,"meta":101,"style":101},"import { useRouter } from '@tanstack\u002Freact-router'\n\nfunction AddPostButton() {\n  const router = useRouter()\n\n  const handleAdd = async () => {\n    await createPost({ title: 'New post' })\n    await router.invalidate({ sync: true })\n  }\n\n  return \u003Cbutton onClick={handleAdd}>Add Post\u003C\u002Fbutton>\n}\n",[4401],{"type":66,"tag":87,"props":4402,"children":4403},{"__ignoreMap":101},[4404,4440,4447,4467,4490,4497,4529,4580,4631,4639,4646,4698],{"type":66,"tag":107,"props":4405,"children":4406},{"class":109,"line":110},[4407,4411,4415,4420,4424,4428,4432,4436],{"type":66,"tag":107,"props":4408,"children":4409},{"style":124},[4410],{"type":71,"value":127},{"type":66,"tag":107,"props":4412,"children":4413},{"style":130},[4414],{"type":71,"value":133},{"type":66,"tag":107,"props":4416,"children":4417},{"style":136},[4418],{"type":71,"value":4419}," useRouter",{"type":66,"tag":107,"props":4421,"children":4422},{"style":130},[4423],{"type":71,"value":144},{"type":66,"tag":107,"props":4425,"children":4426},{"style":124},[4427],{"type":71,"value":149},{"type":66,"tag":107,"props":4429,"children":4430},{"style":130},[4431],{"type":71,"value":154},{"type":66,"tag":107,"props":4433,"children":4434},{"style":157},[4435],{"type":71,"value":160},{"type":66,"tag":107,"props":4437,"children":4438},{"style":130},[4439],{"type":71,"value":165},{"type":66,"tag":107,"props":4441,"children":4442},{"class":109,"line":120},[4443],{"type":66,"tag":107,"props":4444,"children":4445},{"emptyLinePlaceholder":172},[4446],{"type":71,"value":175},{"type":66,"tag":107,"props":4448,"children":4449},{"class":109,"line":168},[4450,4454,4459,4463],{"type":66,"tag":107,"props":4451,"children":4452},{"style":187},[4453],{"type":71,"value":326},{"type":66,"tag":107,"props":4455,"children":4456},{"style":203},[4457],{"type":71,"value":4458}," AddPostButton",{"type":66,"tag":107,"props":4460,"children":4461},{"style":130},[4462],{"type":71,"value":267},{"type":66,"tag":107,"props":4464,"children":4465},{"style":130},[4466],{"type":71,"value":339},{"type":66,"tag":107,"props":4468,"children":4469},{"class":109,"line":178},[4470,4474,4478,4482,4486],{"type":66,"tag":107,"props":4471,"children":4472},{"style":187},[4473],{"type":71,"value":348},{"type":66,"tag":107,"props":4475,"children":4476},{"style":136},[4477],{"type":71,"value":2912},{"type":66,"tag":107,"props":4479,"children":4480},{"style":130},[4481],{"type":71,"value":358},{"type":66,"tag":107,"props":4483,"children":4484},{"style":203},[4485],{"type":71,"value":4419},{"type":66,"tag":107,"props":4487,"children":4488},{"style":279},[4489],{"type":71,"value":377},{"type":66,"tag":107,"props":4491,"children":4492},{"class":109,"line":237},[4493],{"type":66,"tag":107,"props":4494,"children":4495},{"emptyLinePlaceholder":172},[4496],{"type":71,"value":175},{"type":66,"tag":107,"props":4498,"children":4499},{"class":109,"line":275},[4500,4504,4509,4513,4517,4521,4525],{"type":66,"tag":107,"props":4501,"children":4502},{"style":187},[4503],{"type":71,"value":348},{"type":66,"tag":107,"props":4505,"children":4506},{"style":136},[4507],{"type":71,"value":4508}," handleAdd",{"type":66,"tag":107,"props":4510,"children":4511},{"style":130},[4512],{"type":71,"value":358},{"type":66,"tag":107,"props":4514,"children":4515},{"style":187},[4516],{"type":71,"value":3696},{"type":66,"tag":107,"props":4518,"children":4519},{"style":130},[4520],{"type":71,"value":252},{"type":66,"tag":107,"props":4522,"children":4523},{"style":187},[4524],{"type":71,"value":257},{"type":66,"tag":107,"props":4526,"children":4527},{"style":130},[4528],{"type":71,"value":339},{"type":66,"tag":107,"props":4530,"children":4531},{"class":109,"line":298},[4532,4537,4542,4546,4550,4555,4559,4563,4568,4572,4576],{"type":66,"tag":107,"props":4533,"children":4534},{"style":124},[4535],{"type":71,"value":4536},"    await",{"type":66,"tag":107,"props":4538,"children":4539},{"style":203},[4540],{"type":71,"value":4541}," createPost",{"type":66,"tag":107,"props":4543,"children":4544},{"style":279},[4545],{"type":71,"value":210},{"type":66,"tag":107,"props":4547,"children":4548},{"style":130},[4549],{"type":71,"value":1316},{"type":66,"tag":107,"props":4551,"children":4552},{"style":279},[4553],{"type":71,"value":4554}," title",{"type":66,"tag":107,"props":4556,"children":4557},{"style":130},[4558],{"type":71,"value":94},{"type":66,"tag":107,"props":4560,"children":4561},{"style":130},[4562],{"type":71,"value":154},{"type":66,"tag":107,"props":4564,"children":4565},{"style":157},[4566],{"type":71,"value":4567},"New post",{"type":66,"tag":107,"props":4569,"children":4570},{"style":130},[4571],{"type":71,"value":215},{"type":66,"tag":107,"props":4573,"children":4574},{"style":130},[4575],{"type":71,"value":144},{"type":66,"tag":107,"props":4577,"children":4578},{"style":279},[4579],{"type":71,"value":309},{"type":66,"tag":107,"props":4581,"children":4582},{"class":109,"line":312},[4583,4587,4591,4595,4600,4604,4608,4613,4617,4623,4627],{"type":66,"tag":107,"props":4584,"children":4585},{"style":124},[4586],{"type":71,"value":4536},{"type":66,"tag":107,"props":4588,"children":4589},{"style":136},[4590],{"type":71,"value":2912},{"type":66,"tag":107,"props":4592,"children":4593},{"style":130},[4594],{"type":71,"value":368},{"type":66,"tag":107,"props":4596,"children":4597},{"style":203},[4598],{"type":71,"value":4599},"invalidate",{"type":66,"tag":107,"props":4601,"children":4602},{"style":279},[4603],{"type":71,"value":210},{"type":66,"tag":107,"props":4605,"children":4606},{"style":130},[4607],{"type":71,"value":1316},{"type":66,"tag":107,"props":4609,"children":4610},{"style":279},[4611],{"type":71,"value":4612}," sync",{"type":66,"tag":107,"props":4614,"children":4615},{"style":130},[4616],{"type":71,"value":94},{"type":66,"tag":107,"props":4618,"children":4620},{"style":4619},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[4621],{"type":71,"value":4622}," true",{"type":66,"tag":107,"props":4624,"children":4625},{"style":130},[4626],{"type":71,"value":144},{"type":66,"tag":107,"props":4628,"children":4629},{"style":279},[4630],{"type":71,"value":309},{"type":66,"tag":107,"props":4632,"children":4633},{"class":109,"line":320},[4634],{"type":66,"tag":107,"props":4635,"children":4636},{"style":130},[4637],{"type":71,"value":4638},"  }\n",{"type":66,"tag":107,"props":4640,"children":4641},{"class":109,"line":342},[4642],{"type":66,"tag":107,"props":4643,"children":4644},{"emptyLinePlaceholder":172},[4645],{"type":71,"value":175},{"type":66,"tag":107,"props":4647,"children":4648},{"class":109,"line":380},[4649,4653,4657,4662,4667,4671,4676,4681,4686,4690,4694],{"type":66,"tag":107,"props":4650,"children":4651},{"style":124},[4652],{"type":71,"value":386},{"type":66,"tag":107,"props":4654,"children":4655},{"style":130},[4656],{"type":71,"value":750},{"type":66,"tag":107,"props":4658,"children":4659},{"style":279},[4660],{"type":71,"value":4661},"button",{"type":66,"tag":107,"props":4663,"children":4664},{"style":187},[4665],{"type":71,"value":4666}," onClick",{"type":66,"tag":107,"props":4668,"children":4669},{"style":130},[4670],{"type":71,"value":484},{"type":66,"tag":107,"props":4672,"children":4673},{"style":136},[4674],{"type":71,"value":4675},"handleAdd",{"type":66,"tag":107,"props":4677,"children":4678},{"style":130},[4679],{"type":71,"value":4680},"}>",{"type":66,"tag":107,"props":4682,"children":4683},{"style":136},[4684],{"type":71,"value":4685},"Add Post",{"type":66,"tag":107,"props":4687,"children":4688},{"style":130},[4689],{"type":71,"value":2086},{"type":66,"tag":107,"props":4691,"children":4692},{"style":279},[4693],{"type":71,"value":4661},{"type":66,"tag":107,"props":4695,"children":4696},{"style":130},[4697],{"type":71,"value":410},{"type":66,"tag":107,"props":4699,"children":4700},{"class":109,"line":394},[4701],{"type":66,"tag":107,"props":4702,"children":4703},{"style":130},[4704],{"type":71,"value":542},{"type":66,"tag":81,"props":4706,"children":4707},{},[4708,4710,4716],{"type":71,"value":4709},"Use ",{"type":66,"tag":87,"props":4711,"children":4713},{"className":4712},[],[4714],{"type":71,"value":4715},"await router.invalidate({ sync: true })",{"type":71,"value":4717}," when the next step requires refreshed loader data.",{"type":66,"tag":81,"props":4719,"children":4720},{},[4721],{"type":71,"value":4722},"Treat the mutation and invalidation as one workflow. The mutation must persist before invalidation starts, and the loader must read from the same authoritative store. Verify create, update, and delete through the rendered route, including a fresh reload; local component state can hide a stale loader or non-persistent write.",{"type":66,"tag":987,"props":4724,"children":4726},{"id":4725},"error-handling",[4727],{"type":71,"value":4728},"Error Handling",{"type":66,"tag":96,"props":4730,"children":4732},{"className":98,"code":4731,"language":100,"meta":101,"style":101},"import {\n  createFileRoute,\n  ErrorComponent,\n  useRouter,\n} from '@tanstack\u002Freact-router'\n\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: () => fetchPosts(),\n  errorComponent: ({ error, reset }) => {\n    const router = useRouter()\n\n    if (error instanceof CustomError) {\n      return \u003Cdiv>{error.message}\u003C\u002Fdiv>\n    }\n\n    return (\n      \u003Cdiv>\n        \u003CErrorComponent error={error} \u002F>\n        \u003Cbutton\n          onClick={() => {\n            \u002F\u002F For loader errors, invalidate to re-run loader + reset boundary\n            router.invalidate()\n          }}\n        >\n          Retry\n        \u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n    )\n  },\n})\n",[4733],{"type":66,"tag":87,"props":4734,"children":4735},{"__ignoreMap":101},[4736,4747,4759,4771,4783,4806,4813,4860,4891,4933,4956,4963,4999,5044,5052,5059,5070,5085,5114,5126,5147,5155,5175,5183,5191,5199,5215,5230,5238,5245],{"type":66,"tag":107,"props":4737,"children":4738},{"class":109,"line":110},[4739,4743],{"type":66,"tag":107,"props":4740,"children":4741},{"style":124},[4742],{"type":71,"value":127},{"type":66,"tag":107,"props":4744,"children":4745},{"style":130},[4746],{"type":71,"value":339},{"type":66,"tag":107,"props":4748,"children":4749},{"class":109,"line":120},[4750,4755],{"type":66,"tag":107,"props":4751,"children":4752},{"style":136},[4753],{"type":71,"value":4754},"  createFileRoute",{"type":66,"tag":107,"props":4756,"children":4757},{"style":130},[4758],{"type":71,"value":272},{"type":66,"tag":107,"props":4760,"children":4761},{"class":109,"line":168},[4762,4767],{"type":66,"tag":107,"props":4763,"children":4764},{"style":136},[4765],{"type":71,"value":4766},"  ErrorComponent",{"type":66,"tag":107,"props":4768,"children":4769},{"style":130},[4770],{"type":71,"value":272},{"type":66,"tag":107,"props":4772,"children":4773},{"class":109,"line":178},[4774,4779],{"type":66,"tag":107,"props":4775,"children":4776},{"style":136},[4777],{"type":71,"value":4778},"  useRouter",{"type":66,"tag":107,"props":4780,"children":4781},{"style":130},[4782],{"type":71,"value":272},{"type":66,"tag":107,"props":4784,"children":4785},{"class":109,"line":237},[4786,4790,4794,4798,4802],{"type":66,"tag":107,"props":4787,"children":4788},{"style":130},[4789],{"type":71,"value":304},{"type":66,"tag":107,"props":4791,"children":4792},{"style":124},[4793],{"type":71,"value":149},{"type":66,"tag":107,"props":4795,"children":4796},{"style":130},[4797],{"type":71,"value":154},{"type":66,"tag":107,"props":4799,"children":4800},{"style":157},[4801],{"type":71,"value":160},{"type":66,"tag":107,"props":4803,"children":4804},{"style":130},[4805],{"type":71,"value":165},{"type":66,"tag":107,"props":4807,"children":4808},{"class":109,"line":275},[4809],{"type":66,"tag":107,"props":4810,"children":4811},{"emptyLinePlaceholder":172},[4812],{"type":71,"value":175},{"type":66,"tag":107,"props":4814,"children":4815},{"class":109,"line":298},[4816,4820,4824,4828,4832,4836,4840,4844,4848,4852,4856],{"type":66,"tag":107,"props":4817,"children":4818},{"style":124},[4819],{"type":71,"value":184},{"type":66,"tag":107,"props":4821,"children":4822},{"style":187},[4823],{"type":71,"value":190},{"type":66,"tag":107,"props":4825,"children":4826},{"style":136},[4827],{"type":71,"value":195},{"type":66,"tag":107,"props":4829,"children":4830},{"style":130},[4831],{"type":71,"value":200},{"type":66,"tag":107,"props":4833,"children":4834},{"style":203},[4835],{"type":71,"value":139},{"type":66,"tag":107,"props":4837,"children":4838},{"style":136},[4839],{"type":71,"value":210},{"type":66,"tag":107,"props":4841,"children":4842},{"style":130},[4843],{"type":71,"value":215},{"type":66,"tag":107,"props":4845,"children":4846},{"style":157},[4847],{"type":71,"value":220},{"type":66,"tag":107,"props":4849,"children":4850},{"style":130},[4851],{"type":71,"value":215},{"type":66,"tag":107,"props":4853,"children":4854},{"style":136},[4855],{"type":71,"value":229},{"type":66,"tag":107,"props":4857,"children":4858},{"style":130},[4859],{"type":71,"value":234},{"type":66,"tag":107,"props":4861,"children":4862},{"class":109,"line":312},[4863,4867,4871,4875,4879,4883,4887],{"type":66,"tag":107,"props":4864,"children":4865},{"style":203},[4866],{"type":71,"value":243},{"type":66,"tag":107,"props":4868,"children":4869},{"style":130},[4870],{"type":71,"value":94},{"type":66,"tag":107,"props":4872,"children":4873},{"style":130},[4874],{"type":71,"value":252},{"type":66,"tag":107,"props":4876,"children":4877},{"style":187},[4878],{"type":71,"value":257},{"type":66,"tag":107,"props":4880,"children":4881},{"style":203},[4882],{"type":71,"value":262},{"type":66,"tag":107,"props":4884,"children":4885},{"style":136},[4886],{"type":71,"value":267},{"type":66,"tag":107,"props":4888,"children":4889},{"style":130},[4890],{"type":71,"value":272},{"type":66,"tag":107,"props":4892,"children":4893},{"class":109,"line":320},[4894,4899,4903,4907,4912,4916,4921,4925,4929],{"type":66,"tag":107,"props":4895,"children":4896},{"style":203},[4897],{"type":71,"value":4898},"  errorComponent",{"type":66,"tag":107,"props":4900,"children":4901},{"style":130},[4902],{"type":71,"value":94},{"type":66,"tag":107,"props":4904,"children":4905},{"style":130},[4906],{"type":71,"value":1266},{"type":66,"tag":107,"props":4908,"children":4909},{"style":444},[4910],{"type":71,"value":4911}," error",{"type":66,"tag":107,"props":4913,"children":4914},{"style":130},[4915],{"type":71,"value":1289},{"type":66,"tag":107,"props":4917,"children":4918},{"style":444},[4919],{"type":71,"value":4920}," reset",{"type":66,"tag":107,"props":4922,"children":4923},{"style":130},[4924],{"type":71,"value":1303},{"type":66,"tag":107,"props":4926,"children":4927},{"style":187},[4928],{"type":71,"value":257},{"type":66,"tag":107,"props":4930,"children":4931},{"style":130},[4932],{"type":71,"value":339},{"type":66,"tag":107,"props":4934,"children":4935},{"class":109,"line":342},[4936,4940,4944,4948,4952],{"type":66,"tag":107,"props":4937,"children":4938},{"style":187},[4939],{"type":71,"value":3750},{"type":66,"tag":107,"props":4941,"children":4942},{"style":136},[4943],{"type":71,"value":2912},{"type":66,"tag":107,"props":4945,"children":4946},{"style":130},[4947],{"type":71,"value":358},{"type":66,"tag":107,"props":4949,"children":4950},{"style":203},[4951],{"type":71,"value":4419},{"type":66,"tag":107,"props":4953,"children":4954},{"style":279},[4955],{"type":71,"value":377},{"type":66,"tag":107,"props":4957,"children":4958},{"class":109,"line":380},[4959],{"type":66,"tag":107,"props":4960,"children":4961},{"emptyLinePlaceholder":172},[4962],{"type":71,"value":175},{"type":66,"tag":107,"props":4964,"children":4965},{"class":109,"line":394},[4966,4971,4975,4980,4985,4990,4995],{"type":66,"tag":107,"props":4967,"children":4968},{"style":124},[4969],{"type":71,"value":4970},"    if",{"type":66,"tag":107,"props":4972,"children":4973},{"style":279},[4974],{"type":71,"value":1125},{"type":66,"tag":107,"props":4976,"children":4977},{"style":136},[4978],{"type":71,"value":4979},"error",{"type":66,"tag":107,"props":4981,"children":4982},{"style":130},[4983],{"type":71,"value":4984}," instanceof",{"type":66,"tag":107,"props":4986,"children":4987},{"style":2220},[4988],{"type":71,"value":4989}," CustomError",{"type":66,"tag":107,"props":4991,"children":4992},{"style":279},[4993],{"type":71,"value":4994},") ",{"type":66,"tag":107,"props":4996,"children":4997},{"style":130},[4998],{"type":71,"value":234},{"type":66,"tag":107,"props":5000,"children":5001},{"class":109,"line":413},[5002,5007,5011,5015,5019,5023,5027,5032,5036,5040],{"type":66,"tag":107,"props":5003,"children":5004},{"style":124},[5005],{"type":71,"value":5006},"      return",{"type":66,"tag":107,"props":5008,"children":5009},{"style":130},[5010],{"type":71,"value":750},{"type":66,"tag":107,"props":5012,"children":5013},{"style":279},[5014],{"type":71,"value":2071},{"type":66,"tag":107,"props":5016,"children":5017},{"style":130},[5018],{"type":71,"value":759},{"type":66,"tag":107,"props":5020,"children":5021},{"style":136},[5022],{"type":71,"value":4979},{"type":66,"tag":107,"props":5024,"children":5025},{"style":130},[5026],{"type":71,"value":368},{"type":66,"tag":107,"props":5028,"children":5029},{"style":136},[5030],{"type":71,"value":5031},"message",{"type":66,"tag":107,"props":5033,"children":5034},{"style":130},[5035],{"type":71,"value":520},{"type":66,"tag":107,"props":5037,"children":5038},{"style":279},[5039],{"type":71,"value":2071},{"type":66,"tag":107,"props":5041,"children":5042},{"style":130},[5043],{"type":71,"value":410},{"type":66,"tag":107,"props":5045,"children":5046},{"class":109,"line":463},[5047],{"type":66,"tag":107,"props":5048,"children":5049},{"style":130},[5050],{"type":71,"value":5051},"    }\n",{"type":66,"tag":107,"props":5053,"children":5054},{"class":109,"line":531},[5055],{"type":66,"tag":107,"props":5056,"children":5057},{"emptyLinePlaceholder":172},[5058],{"type":71,"value":175},{"type":66,"tag":107,"props":5060,"children":5061},{"class":109,"line":545},[5062,5066],{"type":66,"tag":107,"props":5063,"children":5064},{"style":124},[5065],{"type":71,"value":3838},{"type":66,"tag":107,"props":5067,"children":5068},{"style":279},[5069],{"type":71,"value":391},{"type":66,"tag":107,"props":5071,"children":5072},{"class":109,"line":562},[5073,5077,5081],{"type":66,"tag":107,"props":5074,"children":5075},{"style":130},[5076],{"type":71,"value":3013},{"type":66,"tag":107,"props":5078,"children":5079},{"style":279},[5080],{"type":71,"value":2071},{"type":66,"tag":107,"props":5082,"children":5083},{"style":130},[5084],{"type":71,"value":410},{"type":66,"tag":107,"props":5086,"children":5087},{"class":109,"line":571},[5088,5092,5097,5101,5105,5109],{"type":66,"tag":107,"props":5089,"children":5090},{"style":130},[5091],{"type":71,"value":469},{"type":66,"tag":107,"props":5093,"children":5094},{"style":2220},[5095],{"type":71,"value":5096},"ErrorComponent",{"type":66,"tag":107,"props":5098,"children":5099},{"style":187},[5100],{"type":71,"value":4911},{"type":66,"tag":107,"props":5102,"children":5103},{"style":130},[5104],{"type":71,"value":484},{"type":66,"tag":107,"props":5106,"children":5107},{"style":136},[5108],{"type":71,"value":4979},{"type":66,"tag":107,"props":5110,"children":5111},{"style":130},[5112],{"type":71,"value":5113},"} \u002F>\n",{"type":66,"tag":107,"props":5115,"children":5116},{"class":109,"line":3999},[5117,5121],{"type":66,"tag":107,"props":5118,"children":5119},{"style":130},[5120],{"type":71,"value":469},{"type":66,"tag":107,"props":5122,"children":5123},{"style":279},[5124],{"type":71,"value":5125},"button\n",{"type":66,"tag":107,"props":5127,"children":5128},{"class":109,"line":4015},[5129,5134,5139,5143],{"type":66,"tag":107,"props":5130,"children":5131},{"style":187},[5132],{"type":71,"value":5133},"          onClick",{"type":66,"tag":107,"props":5135,"children":5136},{"style":130},[5137],{"type":71,"value":5138},"={()",{"type":66,"tag":107,"props":5140,"children":5141},{"style":187},[5142],{"type":71,"value":257},{"type":66,"tag":107,"props":5144,"children":5145},{"style":130},[5146],{"type":71,"value":339},{"type":66,"tag":107,"props":5148,"children":5149},{"class":109,"line":4055},[5150],{"type":66,"tag":107,"props":5151,"children":5152},{"style":114},[5153],{"type":71,"value":5154},"            \u002F\u002F For loader errors, invalidate to re-run loader + reset boundary\n",{"type":66,"tag":107,"props":5156,"children":5157},{"class":109,"line":4068},[5158,5163,5167,5171],{"type":66,"tag":107,"props":5159,"children":5160},{"style":136},[5161],{"type":71,"value":5162},"            router",{"type":66,"tag":107,"props":5164,"children":5165},{"style":130},[5166],{"type":71,"value":368},{"type":66,"tag":107,"props":5168,"children":5169},{"style":203},[5170],{"type":71,"value":4599},{"type":66,"tag":107,"props":5172,"children":5173},{"style":279},[5174],{"type":71,"value":377},{"type":66,"tag":107,"props":5176,"children":5177},{"class":109,"line":4090},[5178],{"type":66,"tag":107,"props":5179,"children":5180},{"style":130},[5181],{"type":71,"value":5182},"          }}\n",{"type":66,"tag":107,"props":5184,"children":5185},{"class":109,"line":4130},[5186],{"type":66,"tag":107,"props":5187,"children":5188},{"style":130},[5189],{"type":71,"value":5190},"        >\n",{"type":66,"tag":107,"props":5192,"children":5193},{"class":109,"line":4139},[5194],{"type":66,"tag":107,"props":5195,"children":5196},{"style":136},[5197],{"type":71,"value":5198},"          Retry\n",{"type":66,"tag":107,"props":5200,"children":5201},{"class":109,"line":4165},[5202,5207,5211],{"type":66,"tag":107,"props":5203,"children":5204},{"style":130},[5205],{"type":71,"value":5206},"        \u003C\u002F",{"type":66,"tag":107,"props":5208,"children":5209},{"style":279},[5210],{"type":71,"value":4661},{"type":66,"tag":107,"props":5212,"children":5213},{"style":130},[5214],{"type":71,"value":410},{"type":66,"tag":107,"props":5216,"children":5217},{"class":109,"line":4182},[5218,5222,5226],{"type":66,"tag":107,"props":5219,"children":5220},{"style":130},[5221],{"type":71,"value":4339},{"type":66,"tag":107,"props":5223,"children":5224},{"style":279},[5225],{"type":71,"value":2071},{"type":66,"tag":107,"props":5227,"children":5228},{"style":130},[5229],{"type":71,"value":410},{"type":66,"tag":107,"props":5231,"children":5232},{"class":109,"line":4228},[5233],{"type":66,"tag":107,"props":5234,"children":5235},{"style":279},[5236],{"type":71,"value":5237},"    )\n",{"type":66,"tag":107,"props":5239,"children":5240},{"class":109,"line":4290},[5241],{"type":66,"tag":107,"props":5242,"children":5243},{"style":130},[5244],{"type":71,"value":2632},{"type":66,"tag":107,"props":5246,"children":5247},{"class":109,"line":4303},[5248,5252],{"type":66,"tag":107,"props":5249,"children":5250},{"style":130},[5251],{"type":71,"value":304},{"type":66,"tag":107,"props":5253,"children":5254},{"style":136},[5255],{"type":71,"value":309},{"type":66,"tag":987,"props":5257,"children":5259},{"id":5258},"loader-parameters",[5260],{"type":71,"value":5261},"Loader Parameters",{"type":66,"tag":81,"props":5263,"children":5264},{},[5265,5267,5272],{"type":71,"value":5266},"The ",{"type":66,"tag":87,"props":5268,"children":5270},{"className":5269},[],[5271],{"type":71,"value":956},{"type":71,"value":5273}," function receives:",{"type":66,"tag":405,"props":5275,"children":5276},{},[5277,5288,5304,5314,5325,5358,5376,5387,5398],{"type":66,"tag":474,"props":5278,"children":5279},{},[5280,5286],{"type":66,"tag":87,"props":5281,"children":5283},{"className":5282},[],[5284],{"type":71,"value":5285},"params",{"type":71,"value":5287}," — parsed path params",{"type":66,"tag":474,"props":5289,"children":5290},{},[5291,5297,5299],{"type":66,"tag":87,"props":5292,"children":5294},{"className":5293},[],[5295],{"type":71,"value":5296},"deps",{"type":71,"value":5298}," — object from ",{"type":66,"tag":87,"props":5300,"children":5302},{"className":5301},[],[5303],{"type":71,"value":1003},{"type":66,"tag":474,"props":5305,"children":5306},{},[5307,5312],{"type":66,"tag":87,"props":5308,"children":5310},{"className":5309},[],[5311],{"type":71,"value":2795},{"type":71,"value":5313}," — merged parent + beforeLoad context",{"type":66,"tag":474,"props":5315,"children":5316},{},[5317,5323],{"type":66,"tag":87,"props":5318,"children":5320},{"className":5319},[],[5321],{"type":71,"value":5322},"abortController",{"type":71,"value":5324}," — cancelled when route unloads or becomes stale",{"type":66,"tag":474,"props":5326,"children":5327},{},[5328,5334,5336,5342,5344,5350,5352],{"type":66,"tag":87,"props":5329,"children":5331},{"className":5330},[],[5332],{"type":71,"value":5333},"cause",{"type":71,"value":5335}," — ",{"type":66,"tag":87,"props":5337,"children":5339},{"className":5338},[],[5340],{"type":71,"value":5341},"'enter'",{"type":71,"value":5343},", ",{"type":66,"tag":87,"props":5345,"children":5347},{"className":5346},[],[5348],{"type":71,"value":5349},"'stay'",{"type":71,"value":5351},", or ",{"type":66,"tag":87,"props":5353,"children":5355},{"className":5354},[],[5356],{"type":71,"value":5357},"'preload'",{"type":66,"tag":474,"props":5359,"children":5360},{},[5361,5367,5368,5374],{"type":66,"tag":87,"props":5362,"children":5364},{"className":5363},[],[5365],{"type":71,"value":5366},"preload",{"type":71,"value":5335},{"type":66,"tag":87,"props":5369,"children":5371},{"className":5370},[],[5372],{"type":71,"value":5373},"true",{"type":71,"value":5375}," during preloading",{"type":66,"tag":474,"props":5377,"children":5378},{},[5379,5385],{"type":66,"tag":87,"props":5380,"children":5382},{"className":5381},[],[5383],{"type":71,"value":5384},"location",{"type":71,"value":5386}," — current location object",{"type":66,"tag":474,"props":5388,"children":5389},{},[5390,5396],{"type":66,"tag":87,"props":5391,"children":5393},{"className":5392},[],[5394],{"type":71,"value":5395},"parentMatchPromise",{"type":71,"value":5397}," — promise of parent route match",{"type":66,"tag":474,"props":5399,"children":5400},{},[5401,5406],{"type":66,"tag":87,"props":5402,"children":5404},{"className":5403},[],[5405],{"type":71,"value":33},{"type":71,"value":5407}," — the route object itself",{"type":66,"tag":96,"props":5409,"children":5411},{"className":98,"code":5410,"language":100,"meta":101,"style":101},"export const Route = createFileRoute('\u002Fposts\u002F$postId')({\n  loader: ({ params: { postId }, abortController }) =>\n    fetchPost(postId, { signal: abortController.signal }),\n})\n",[5412],{"type":66,"tag":87,"props":5413,"children":5414},{"__ignoreMap":101},[5415,5462,5512,5567],{"type":66,"tag":107,"props":5416,"children":5417},{"class":109,"line":110},[5418,5422,5426,5430,5434,5438,5442,5446,5450,5454,5458],{"type":66,"tag":107,"props":5419,"children":5420},{"style":124},[5421],{"type":71,"value":184},{"type":66,"tag":107,"props":5423,"children":5424},{"style":187},[5425],{"type":71,"value":190},{"type":66,"tag":107,"props":5427,"children":5428},{"style":136},[5429],{"type":71,"value":195},{"type":66,"tag":107,"props":5431,"children":5432},{"style":130},[5433],{"type":71,"value":200},{"type":66,"tag":107,"props":5435,"children":5436},{"style":203},[5437],{"type":71,"value":139},{"type":66,"tag":107,"props":5439,"children":5440},{"style":136},[5441],{"type":71,"value":210},{"type":66,"tag":107,"props":5443,"children":5444},{"style":130},[5445],{"type":71,"value":215},{"type":66,"tag":107,"props":5447,"children":5448},{"style":157},[5449],{"type":71,"value":3668},{"type":66,"tag":107,"props":5451,"children":5452},{"style":130},[5453],{"type":71,"value":215},{"type":66,"tag":107,"props":5455,"children":5456},{"style":136},[5457],{"type":71,"value":229},{"type":66,"tag":107,"props":5459,"children":5460},{"style":130},[5461],{"type":71,"value":234},{"type":66,"tag":107,"props":5463,"children":5464},{"class":109,"line":120},[5465,5469,5473,5477,5481,5485,5489,5493,5498,5503,5507],{"type":66,"tag":107,"props":5466,"children":5467},{"style":203},[5468],{"type":71,"value":243},{"type":66,"tag":107,"props":5470,"children":5471},{"style":130},[5472],{"type":71,"value":94},{"type":66,"tag":107,"props":5474,"children":5475},{"style":130},[5476],{"type":71,"value":1266},{"type":66,"tag":107,"props":5478,"children":5479},{"style":279},[5480],{"type":71,"value":3705},{"type":66,"tag":107,"props":5482,"children":5483},{"style":130},[5484],{"type":71,"value":94},{"type":66,"tag":107,"props":5486,"children":5487},{"style":130},[5488],{"type":71,"value":133},{"type":66,"tag":107,"props":5490,"children":5491},{"style":444},[5492],{"type":71,"value":3718},{"type":66,"tag":107,"props":5494,"children":5495},{"style":130},[5496],{"type":71,"value":5497}," },",{"type":66,"tag":107,"props":5499,"children":5500},{"style":444},[5501],{"type":71,"value":5502}," abortController",{"type":66,"tag":107,"props":5504,"children":5505},{"style":130},[5506],{"type":71,"value":1303},{"type":66,"tag":107,"props":5508,"children":5509},{"style":187},[5510],{"type":71,"value":5511}," =>\n",{"type":66,"tag":107,"props":5513,"children":5514},{"class":109,"line":168},[5515,5520,5525,5529,5533,5538,5542,5546,5550,5555,5559,5563],{"type":66,"tag":107,"props":5516,"children":5517},{"style":203},[5518],{"type":71,"value":5519},"    fetchPost",{"type":66,"tag":107,"props":5521,"children":5522},{"style":136},[5523],{"type":71,"value":5524},"(postId",{"type":66,"tag":107,"props":5526,"children":5527},{"style":130},[5528],{"type":71,"value":1289},{"type":66,"tag":107,"props":5530,"children":5531},{"style":130},[5532],{"type":71,"value":133},{"type":66,"tag":107,"props":5534,"children":5535},{"style":279},[5536],{"type":71,"value":5537}," signal",{"type":66,"tag":107,"props":5539,"children":5540},{"style":130},[5541],{"type":71,"value":94},{"type":66,"tag":107,"props":5543,"children":5544},{"style":136},[5545],{"type":71,"value":5502},{"type":66,"tag":107,"props":5547,"children":5548},{"style":130},[5549],{"type":71,"value":368},{"type":66,"tag":107,"props":5551,"children":5552},{"style":136},[5553],{"type":71,"value":5554},"signal ",{"type":66,"tag":107,"props":5556,"children":5557},{"style":130},[5558],{"type":71,"value":304},{"type":66,"tag":107,"props":5560,"children":5561},{"style":136},[5562],{"type":71,"value":452},{"type":66,"tag":107,"props":5564,"children":5565},{"style":130},[5566],{"type":71,"value":272},{"type":66,"tag":107,"props":5568,"children":5569},{"class":109,"line":178},[5570,5574],{"type":66,"tag":107,"props":5571,"children":5572},{"style":130},[5573],{"type":71,"value":304},{"type":66,"tag":107,"props":5575,"children":5576},{"style":136},[5577],{"type":71,"value":309},{"type":66,"tag":74,"props":5579,"children":5581},{"id":5580},"common-mistakes",[5582],{"type":71,"value":5583},"Common Mistakes",{"type":66,"tag":987,"props":5585,"children":5587},{"id":5586},"critical-assuming-loaders-only-run-on-the-server",[5588],{"type":71,"value":5589},"CRITICAL: Assuming loaders only run on the server",{"type":66,"tag":81,"props":5591,"children":5592},{},[5593,5595,5600,5602,5607],{"type":71,"value":5594},"TanStack Router is ",{"type":66,"tag":803,"props":5596,"children":5597},{},[5598],{"type":71,"value":5599},"client-first",{"type":71,"value":5601},". Loaders run on the ",{"type":66,"tag":803,"props":5603,"children":5604},{},[5605],{"type":71,"value":5606},"client",{"type":71,"value":5608}," by default. They also run on the server when using TanStack Start for SSR, but the default mental model is client-side execution.",{"type":66,"tag":96,"props":5610,"children":5612},{"className":98,"code":5611,"language":100,"meta":101,"style":101},"\u002F\u002F WRONG — this will crash in the browser\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: async () => {\n    const fs = await import('fs') \u002F\u002F Node.js only!\n    return JSON.parse(fs.readFileSync('...')) \u002F\u002F fails in browser\n  },\n})\n\n\u002F\u002F CORRECT for an SPA — use a client-safe API helper\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: () => fetchPosts(),\n})\n",[5613],{"type":66,"tag":87,"props":5614,"children":5615},{"__ignoreMap":101},[5616,5624,5671,5698,5749,5814,5821,5832,5839,5847,5894,5925],{"type":66,"tag":107,"props":5617,"children":5618},{"class":109,"line":110},[5619],{"type":66,"tag":107,"props":5620,"children":5621},{"style":114},[5622],{"type":71,"value":5623},"\u002F\u002F WRONG — this will crash in the browser\n",{"type":66,"tag":107,"props":5625,"children":5626},{"class":109,"line":120},[5627,5631,5635,5639,5643,5647,5651,5655,5659,5663,5667],{"type":66,"tag":107,"props":5628,"children":5629},{"style":124},[5630],{"type":71,"value":184},{"type":66,"tag":107,"props":5632,"children":5633},{"style":187},[5634],{"type":71,"value":190},{"type":66,"tag":107,"props":5636,"children":5637},{"style":136},[5638],{"type":71,"value":195},{"type":66,"tag":107,"props":5640,"children":5641},{"style":130},[5642],{"type":71,"value":200},{"type":66,"tag":107,"props":5644,"children":5645},{"style":203},[5646],{"type":71,"value":139},{"type":66,"tag":107,"props":5648,"children":5649},{"style":136},[5650],{"type":71,"value":210},{"type":66,"tag":107,"props":5652,"children":5653},{"style":130},[5654],{"type":71,"value":215},{"type":66,"tag":107,"props":5656,"children":5657},{"style":157},[5658],{"type":71,"value":220},{"type":66,"tag":107,"props":5660,"children":5661},{"style":130},[5662],{"type":71,"value":215},{"type":66,"tag":107,"props":5664,"children":5665},{"style":136},[5666],{"type":71,"value":229},{"type":66,"tag":107,"props":5668,"children":5669},{"style":130},[5670],{"type":71,"value":234},{"type":66,"tag":107,"props":5672,"children":5673},{"class":109,"line":168},[5674,5678,5682,5686,5690,5694],{"type":66,"tag":107,"props":5675,"children":5676},{"style":203},[5677],{"type":71,"value":243},{"type":66,"tag":107,"props":5679,"children":5680},{"style":130},[5681],{"type":71,"value":94},{"type":66,"tag":107,"props":5683,"children":5684},{"style":187},[5685],{"type":71,"value":3696},{"type":66,"tag":107,"props":5687,"children":5688},{"style":130},[5689],{"type":71,"value":252},{"type":66,"tag":107,"props":5691,"children":5692},{"style":187},[5693],{"type":71,"value":257},{"type":66,"tag":107,"props":5695,"children":5696},{"style":130},[5697],{"type":71,"value":339},{"type":66,"tag":107,"props":5699,"children":5700},{"class":109,"line":178},[5701,5705,5710,5714,5718,5723,5727,5731,5736,5740,5744],{"type":66,"tag":107,"props":5702,"children":5703},{"style":187},[5704],{"type":71,"value":3750},{"type":66,"tag":107,"props":5706,"children":5707},{"style":136},[5708],{"type":71,"value":5709}," fs",{"type":66,"tag":107,"props":5711,"children":5712},{"style":130},[5713],{"type":71,"value":358},{"type":66,"tag":107,"props":5715,"children":5716},{"style":124},[5717],{"type":71,"value":3806},{"type":66,"tag":107,"props":5719,"children":5720},{"style":130},[5721],{"type":71,"value":5722}," import",{"type":66,"tag":107,"props":5724,"children":5725},{"style":279},[5726],{"type":71,"value":210},{"type":66,"tag":107,"props":5728,"children":5729},{"style":130},[5730],{"type":71,"value":215},{"type":66,"tag":107,"props":5732,"children":5733},{"style":157},[5734],{"type":71,"value":5735},"fs",{"type":66,"tag":107,"props":5737,"children":5738},{"style":130},[5739],{"type":71,"value":215},{"type":66,"tag":107,"props":5741,"children":5742},{"style":279},[5743],{"type":71,"value":4994},{"type":66,"tag":107,"props":5745,"children":5746},{"style":114},[5747],{"type":71,"value":5748},"\u002F\u002F Node.js only!\n",{"type":66,"tag":107,"props":5750,"children":5751},{"class":109,"line":237},[5752,5756,5761,5765,5770,5774,5778,5782,5787,5791,5795,5800,5804,5809],{"type":66,"tag":107,"props":5753,"children":5754},{"style":124},[5755],{"type":71,"value":3838},{"type":66,"tag":107,"props":5757,"children":5758},{"style":136},[5759],{"type":71,"value":5760}," JSON",{"type":66,"tag":107,"props":5762,"children":5763},{"style":130},[5764],{"type":71,"value":368},{"type":66,"tag":107,"props":5766,"children":5767},{"style":203},[5768],{"type":71,"value":5769},"parse",{"type":66,"tag":107,"props":5771,"children":5772},{"style":279},[5773],{"type":71,"value":210},{"type":66,"tag":107,"props":5775,"children":5776},{"style":136},[5777],{"type":71,"value":5735},{"type":66,"tag":107,"props":5779,"children":5780},{"style":130},[5781],{"type":71,"value":368},{"type":66,"tag":107,"props":5783,"children":5784},{"style":203},[5785],{"type":71,"value":5786},"readFileSync",{"type":66,"tag":107,"props":5788,"children":5789},{"style":279},[5790],{"type":71,"value":210},{"type":66,"tag":107,"props":5792,"children":5793},{"style":130},[5794],{"type":71,"value":215},{"type":66,"tag":107,"props":5796,"children":5797},{"style":157},[5798],{"type":71,"value":5799},"...",{"type":66,"tag":107,"props":5801,"children":5802},{"style":130},[5803],{"type":71,"value":215},{"type":66,"tag":107,"props":5805,"children":5806},{"style":279},[5807],{"type":71,"value":5808},")) ",{"type":66,"tag":107,"props":5810,"children":5811},{"style":114},[5812],{"type":71,"value":5813},"\u002F\u002F fails in browser\n",{"type":66,"tag":107,"props":5815,"children":5816},{"class":109,"line":275},[5817],{"type":66,"tag":107,"props":5818,"children":5819},{"style":130},[5820],{"type":71,"value":2632},{"type":66,"tag":107,"props":5822,"children":5823},{"class":109,"line":298},[5824,5828],{"type":66,"tag":107,"props":5825,"children":5826},{"style":130},[5827],{"type":71,"value":304},{"type":66,"tag":107,"props":5829,"children":5830},{"style":136},[5831],{"type":71,"value":309},{"type":66,"tag":107,"props":5833,"children":5834},{"class":109,"line":312},[5835],{"type":66,"tag":107,"props":5836,"children":5837},{"emptyLinePlaceholder":172},[5838],{"type":71,"value":175},{"type":66,"tag":107,"props":5840,"children":5841},{"class":109,"line":320},[5842],{"type":66,"tag":107,"props":5843,"children":5844},{"style":114},[5845],{"type":71,"value":5846},"\u002F\u002F CORRECT for an SPA — use a client-safe API helper\n",{"type":66,"tag":107,"props":5848,"children":5849},{"class":109,"line":342},[5850,5854,5858,5862,5866,5870,5874,5878,5882,5886,5890],{"type":66,"tag":107,"props":5851,"children":5852},{"style":124},[5853],{"type":71,"value":184},{"type":66,"tag":107,"props":5855,"children":5856},{"style":187},[5857],{"type":71,"value":190},{"type":66,"tag":107,"props":5859,"children":5860},{"style":136},[5861],{"type":71,"value":195},{"type":66,"tag":107,"props":5863,"children":5864},{"style":130},[5865],{"type":71,"value":200},{"type":66,"tag":107,"props":5867,"children":5868},{"style":203},[5869],{"type":71,"value":139},{"type":66,"tag":107,"props":5871,"children":5872},{"style":136},[5873],{"type":71,"value":210},{"type":66,"tag":107,"props":5875,"children":5876},{"style":130},[5877],{"type":71,"value":215},{"type":66,"tag":107,"props":5879,"children":5880},{"style":157},[5881],{"type":71,"value":220},{"type":66,"tag":107,"props":5883,"children":5884},{"style":130},[5885],{"type":71,"value":215},{"type":66,"tag":107,"props":5887,"children":5888},{"style":136},[5889],{"type":71,"value":229},{"type":66,"tag":107,"props":5891,"children":5892},{"style":130},[5893],{"type":71,"value":234},{"type":66,"tag":107,"props":5895,"children":5896},{"class":109,"line":380},[5897,5901,5905,5909,5913,5917,5921],{"type":66,"tag":107,"props":5898,"children":5899},{"style":203},[5900],{"type":71,"value":243},{"type":66,"tag":107,"props":5902,"children":5903},{"style":130},[5904],{"type":71,"value":94},{"type":66,"tag":107,"props":5906,"children":5907},{"style":130},[5908],{"type":71,"value":252},{"type":66,"tag":107,"props":5910,"children":5911},{"style":187},[5912],{"type":71,"value":257},{"type":66,"tag":107,"props":5914,"children":5915},{"style":203},[5916],{"type":71,"value":262},{"type":66,"tag":107,"props":5918,"children":5919},{"style":136},[5920],{"type":71,"value":267},{"type":66,"tag":107,"props":5922,"children":5923},{"style":130},[5924],{"type":71,"value":272},{"type":66,"tag":107,"props":5926,"children":5927},{"class":109,"line":394},[5928,5932],{"type":66,"tag":107,"props":5929,"children":5930},{"style":130},[5931],{"type":71,"value":304},{"type":66,"tag":107,"props":5933,"children":5934},{"style":136},[5935],{"type":71,"value":309},{"type":66,"tag":81,"props":5937,"children":5938},{},[5939,5941,5947],{"type":71,"value":5940},"Do NOT put database queries, filesystem access, or server-only code directly in loaders. In TanStack Start, put that work in a server function and call the function from the loader. Do not use a relative ",{"type":66,"tag":87,"props":5942,"children":5944},{"className":5943},[],[5945],{"type":71,"value":5946},"fetch('\u002Fapi\u002F...')",{"type":71,"value":5948}," in an SSR loader.",{"type":66,"tag":987,"props":5950,"children":5952},{"id":5951},"medium-not-understanding-staletime-default-is-0",[5953],{"type":71,"value":5954},"MEDIUM: Not understanding staleTime default is 0",{"type":66,"tag":81,"props":5956,"children":5957},{},[5958,5960,5965,5967,5973,5975,5980],{"type":71,"value":5959},"Default ",{"type":66,"tag":87,"props":5961,"children":5963},{"className":5962},[],[5964],{"type":71,"value":1451},{"type":71,"value":5966}," is ",{"type":66,"tag":87,"props":5968,"children":5970},{"className":5969},[],[5971],{"type":71,"value":5972},"0",{"type":71,"value":5974},". This means data reloads in the background on every route re-match. This is intentional — it ensures fresh data. But if your data is expensive or static, set ",{"type":66,"tag":87,"props":5976,"children":5978},{"className":5977},[],[5979],{"type":71,"value":1451},{"type":71,"value":94},{"type":66,"tag":96,"props":5982,"children":5984},{"className":98,"code":5983,"language":100,"meta":101,"style":101},"export const Route = createFileRoute('\u002Fposts')({\n  loader: () => fetchPosts(),\n  staleTime: 60_000, \u002F\u002F Consider fresh for 1 minute\n})\n",[5985],{"type":66,"tag":87,"props":5986,"children":5987},{"__ignoreMap":101},[5988,6035,6066,6091],{"type":66,"tag":107,"props":5989,"children":5990},{"class":109,"line":110},[5991,5995,5999,6003,6007,6011,6015,6019,6023,6027,6031],{"type":66,"tag":107,"props":5992,"children":5993},{"style":124},[5994],{"type":71,"value":184},{"type":66,"tag":107,"props":5996,"children":5997},{"style":187},[5998],{"type":71,"value":190},{"type":66,"tag":107,"props":6000,"children":6001},{"style":136},[6002],{"type":71,"value":195},{"type":66,"tag":107,"props":6004,"children":6005},{"style":130},[6006],{"type":71,"value":200},{"type":66,"tag":107,"props":6008,"children":6009},{"style":203},[6010],{"type":71,"value":139},{"type":66,"tag":107,"props":6012,"children":6013},{"style":136},[6014],{"type":71,"value":210},{"type":66,"tag":107,"props":6016,"children":6017},{"style":130},[6018],{"type":71,"value":215},{"type":66,"tag":107,"props":6020,"children":6021},{"style":157},[6022],{"type":71,"value":220},{"type":66,"tag":107,"props":6024,"children":6025},{"style":130},[6026],{"type":71,"value":215},{"type":66,"tag":107,"props":6028,"children":6029},{"style":136},[6030],{"type":71,"value":229},{"type":66,"tag":107,"props":6032,"children":6033},{"style":130},[6034],{"type":71,"value":234},{"type":66,"tag":107,"props":6036,"children":6037},{"class":109,"line":120},[6038,6042,6046,6050,6054,6058,6062],{"type":66,"tag":107,"props":6039,"children":6040},{"style":203},[6041],{"type":71,"value":243},{"type":66,"tag":107,"props":6043,"children":6044},{"style":130},[6045],{"type":71,"value":94},{"type":66,"tag":107,"props":6047,"children":6048},{"style":130},[6049],{"type":71,"value":252},{"type":66,"tag":107,"props":6051,"children":6052},{"style":187},[6053],{"type":71,"value":257},{"type":66,"tag":107,"props":6055,"children":6056},{"style":203},[6057],{"type":71,"value":262},{"type":66,"tag":107,"props":6059,"children":6060},{"style":136},[6061],{"type":71,"value":267},{"type":66,"tag":107,"props":6063,"children":6064},{"style":130},[6065],{"type":71,"value":272},{"type":66,"tag":107,"props":6067,"children":6068},{"class":109,"line":168},[6069,6073,6077,6082,6086],{"type":66,"tag":107,"props":6070,"children":6071},{"style":279},[6072],{"type":71,"value":1617},{"type":66,"tag":107,"props":6074,"children":6075},{"style":130},[6076],{"type":71,"value":94},{"type":66,"tag":107,"props":6078,"children":6079},{"style":1184},[6080],{"type":71,"value":6081}," 60_000",{"type":66,"tag":107,"props":6083,"children":6084},{"style":130},[6085],{"type":71,"value":1289},{"type":66,"tag":107,"props":6087,"children":6088},{"style":114},[6089],{"type":71,"value":6090}," \u002F\u002F Consider fresh for 1 minute\n",{"type":66,"tag":107,"props":6092,"children":6093},{"class":109,"line":178},[6094,6098],{"type":66,"tag":107,"props":6095,"children":6096},{"style":130},[6097],{"type":71,"value":304},{"type":66,"tag":107,"props":6099,"children":6100},{"style":136},[6101],{"type":71,"value":309},{"type":66,"tag":987,"props":6103,"children":6105},{"id":6104},"high-using-reset-instead-of-routerinvalidate-in-error-components",[6106],{"type":71,"value":6107},"HIGH: Using reset() instead of router.invalidate() in error components",{"type":66,"tag":81,"props":6109,"children":6110},{},[6111,6117,6119,6124],{"type":66,"tag":87,"props":6112,"children":6114},{"className":6113},[],[6115],{"type":71,"value":6116},"reset()",{"type":71,"value":6118}," only resets the error boundary UI. It does NOT re-run the loader. For loader errors, use ",{"type":66,"tag":87,"props":6120,"children":6122},{"className":6121},[],[6123],{"type":71,"value":4394},{"type":71,"value":6125}," which re-runs loaders and resets the boundary:",{"type":66,"tag":96,"props":6127,"children":6129},{"className":98,"code":6128,"language":100,"meta":101,"style":101},"\u002F\u002F WRONG — resets boundary but loader still has stale error\nfunction PostErrorComponent({ error, reset }) {\n  return \u003Cbutton onClick={reset}>Retry\u003C\u002Fbutton>\n}\n\n\u002F\u002F CORRECT — re-runs loader and resets the error boundary\nfunction PostErrorComponent({ error }) {\n  const router = useRouter()\n  return \u003Cbutton onClick={() => router.invalidate()}>Retry\u003C\u002Fbutton>\n}\n",[6130],{"type":66,"tag":87,"props":6131,"children":6132},{"__ignoreMap":101},[6133,6141,6178,6227,6234,6241,6249,6276,6299,6362],{"type":66,"tag":107,"props":6134,"children":6135},{"class":109,"line":110},[6136],{"type":66,"tag":107,"props":6137,"children":6138},{"style":114},[6139],{"type":71,"value":6140},"\u002F\u002F WRONG — resets boundary but loader still has stale error\n",{"type":66,"tag":107,"props":6142,"children":6143},{"class":109,"line":120},[6144,6148,6153,6158,6162,6166,6170,6174],{"type":66,"tag":107,"props":6145,"children":6146},{"style":187},[6147],{"type":71,"value":326},{"type":66,"tag":107,"props":6149,"children":6150},{"style":203},[6151],{"type":71,"value":6152}," PostErrorComponent",{"type":66,"tag":107,"props":6154,"children":6155},{"style":130},[6156],{"type":71,"value":6157},"({",{"type":66,"tag":107,"props":6159,"children":6160},{"style":444},[6161],{"type":71,"value":4911},{"type":66,"tag":107,"props":6163,"children":6164},{"style":130},[6165],{"type":71,"value":1289},{"type":66,"tag":107,"props":6167,"children":6168},{"style":444},[6169],{"type":71,"value":4920},{"type":66,"tag":107,"props":6171,"children":6172},{"style":130},[6173],{"type":71,"value":1303},{"type":66,"tag":107,"props":6175,"children":6176},{"style":130},[6177],{"type":71,"value":339},{"type":66,"tag":107,"props":6179,"children":6180},{"class":109,"line":168},[6181,6185,6189,6193,6197,6201,6206,6210,6215,6219,6223],{"type":66,"tag":107,"props":6182,"children":6183},{"style":124},[6184],{"type":71,"value":386},{"type":66,"tag":107,"props":6186,"children":6187},{"style":130},[6188],{"type":71,"value":750},{"type":66,"tag":107,"props":6190,"children":6191},{"style":279},[6192],{"type":71,"value":4661},{"type":66,"tag":107,"props":6194,"children":6195},{"style":187},[6196],{"type":71,"value":4666},{"type":66,"tag":107,"props":6198,"children":6199},{"style":130},[6200],{"type":71,"value":484},{"type":66,"tag":107,"props":6202,"children":6203},{"style":136},[6204],{"type":71,"value":6205},"reset",{"type":66,"tag":107,"props":6207,"children":6208},{"style":130},[6209],{"type":71,"value":4680},{"type":66,"tag":107,"props":6211,"children":6212},{"style":136},[6213],{"type":71,"value":6214},"Retry",{"type":66,"tag":107,"props":6216,"children":6217},{"style":130},[6218],{"type":71,"value":2086},{"type":66,"tag":107,"props":6220,"children":6221},{"style":279},[6222],{"type":71,"value":4661},{"type":66,"tag":107,"props":6224,"children":6225},{"style":130},[6226],{"type":71,"value":410},{"type":66,"tag":107,"props":6228,"children":6229},{"class":109,"line":178},[6230],{"type":66,"tag":107,"props":6231,"children":6232},{"style":130},[6233],{"type":71,"value":542},{"type":66,"tag":107,"props":6235,"children":6236},{"class":109,"line":237},[6237],{"type":66,"tag":107,"props":6238,"children":6239},{"emptyLinePlaceholder":172},[6240],{"type":71,"value":175},{"type":66,"tag":107,"props":6242,"children":6243},{"class":109,"line":275},[6244],{"type":66,"tag":107,"props":6245,"children":6246},{"style":114},[6247],{"type":71,"value":6248},"\u002F\u002F CORRECT — re-runs loader and resets the error boundary\n",{"type":66,"tag":107,"props":6250,"children":6251},{"class":109,"line":298},[6252,6256,6260,6264,6268,6272],{"type":66,"tag":107,"props":6253,"children":6254},{"style":187},[6255],{"type":71,"value":326},{"type":66,"tag":107,"props":6257,"children":6258},{"style":203},[6259],{"type":71,"value":6152},{"type":66,"tag":107,"props":6261,"children":6262},{"style":130},[6263],{"type":71,"value":6157},{"type":66,"tag":107,"props":6265,"children":6266},{"style":444},[6267],{"type":71,"value":4911},{"type":66,"tag":107,"props":6269,"children":6270},{"style":130},[6271],{"type":71,"value":1303},{"type":66,"tag":107,"props":6273,"children":6274},{"style":130},[6275],{"type":71,"value":339},{"type":66,"tag":107,"props":6277,"children":6278},{"class":109,"line":312},[6279,6283,6287,6291,6295],{"type":66,"tag":107,"props":6280,"children":6281},{"style":187},[6282],{"type":71,"value":348},{"type":66,"tag":107,"props":6284,"children":6285},{"style":136},[6286],{"type":71,"value":2912},{"type":66,"tag":107,"props":6288,"children":6289},{"style":130},[6290],{"type":71,"value":358},{"type":66,"tag":107,"props":6292,"children":6293},{"style":203},[6294],{"type":71,"value":4419},{"type":66,"tag":107,"props":6296,"children":6297},{"style":279},[6298],{"type":71,"value":377},{"type":66,"tag":107,"props":6300,"children":6301},{"class":109,"line":320},[6302,6306,6310,6314,6318,6322,6326,6330,6334,6338,6342,6346,6350,6354,6358],{"type":66,"tag":107,"props":6303,"children":6304},{"style":124},[6305],{"type":71,"value":386},{"type":66,"tag":107,"props":6307,"children":6308},{"style":130},[6309],{"type":71,"value":750},{"type":66,"tag":107,"props":6311,"children":6312},{"style":279},[6313],{"type":71,"value":4661},{"type":66,"tag":107,"props":6315,"children":6316},{"style":187},[6317],{"type":71,"value":4666},{"type":66,"tag":107,"props":6319,"children":6320},{"style":130},[6321],{"type":71,"value":5138},{"type":66,"tag":107,"props":6323,"children":6324},{"style":187},[6325],{"type":71,"value":257},{"type":66,"tag":107,"props":6327,"children":6328},{"style":136},[6329],{"type":71,"value":2912},{"type":66,"tag":107,"props":6331,"children":6332},{"style":130},[6333],{"type":71,"value":368},{"type":66,"tag":107,"props":6335,"children":6336},{"style":203},[6337],{"type":71,"value":4599},{"type":66,"tag":107,"props":6339,"children":6340},{"style":136},[6341],{"type":71,"value":267},{"type":66,"tag":107,"props":6343,"children":6344},{"style":130},[6345],{"type":71,"value":4680},{"type":66,"tag":107,"props":6347,"children":6348},{"style":136},[6349],{"type":71,"value":6214},{"type":66,"tag":107,"props":6351,"children":6352},{"style":130},[6353],{"type":71,"value":2086},{"type":66,"tag":107,"props":6355,"children":6356},{"style":279},[6357],{"type":71,"value":4661},{"type":66,"tag":107,"props":6359,"children":6360},{"style":130},[6361],{"type":71,"value":410},{"type":66,"tag":107,"props":6363,"children":6364},{"class":109,"line":342},[6365],{"type":66,"tag":107,"props":6366,"children":6367},{"style":130},[6368],{"type":71,"value":542},{"type":66,"tag":987,"props":6370,"children":6372},{"id":6371},"high-missing-double-parentheses-on-createrootroutewithcontext",[6373],{"type":71,"value":6374},"HIGH: Missing double parentheses on createRootRouteWithContext",{"type":66,"tag":81,"props":6376,"children":6377},{},[6378,6384],{"type":66,"tag":87,"props":6379,"children":6381},{"className":6380},[],[6382],{"type":71,"value":6383},"createRootRouteWithContext\u003CType>()",{"type":71,"value":6385}," is a factory — it returns a function. Must call twice:",{"type":66,"tag":96,"props":6387,"children":6389},{"className":98,"code":6388,"language":100,"meta":101,"style":101},"\u002F\u002F WRONG — missing second call, passes options to the factory\nconst rootRoute = createRootRouteWithContext\u003C{ auth: AuthState }>({\n  component: RootComponent,\n})\n\n\u002F\u002F CORRECT — factory()({options})\nconst rootRoute = createRootRouteWithContext\u003C{ auth: AuthState }>()({\n  component: RootComponent,\n})\n",[6390],{"type":66,"tag":87,"props":6391,"children":6392},{"__ignoreMap":101},[6393,6401,6452,6472,6483,6490,6498,6545,6564],{"type":66,"tag":107,"props":6394,"children":6395},{"class":109,"line":110},[6396],{"type":66,"tag":107,"props":6397,"children":6398},{"style":114},[6399],{"type":71,"value":6400},"\u002F\u002F WRONG — missing second call, passes options to the factory\n",{"type":66,"tag":107,"props":6402,"children":6403},{"class":109,"line":120},[6404,6408,6413,6417,6421,6426,6430,6434,6439,6444,6448],{"type":66,"tag":107,"props":6405,"children":6406},{"style":187},[6407],{"type":71,"value":647},{"type":66,"tag":107,"props":6409,"children":6410},{"style":136},[6411],{"type":71,"value":6412}," rootRoute ",{"type":66,"tag":107,"props":6414,"children":6415},{"style":130},[6416],{"type":71,"value":200},{"type":66,"tag":107,"props":6418,"children":6419},{"style":203},[6420],{"type":71,"value":2173},{"type":66,"tag":107,"props":6422,"children":6423},{"style":130},[6424],{"type":71,"value":6425},"\u003C{",{"type":66,"tag":107,"props":6427,"children":6428},{"style":279},[6429],{"type":71,"value":2879},{"type":66,"tag":107,"props":6431,"children":6432},{"style":130},[6433],{"type":71,"value":94},{"type":66,"tag":107,"props":6435,"children":6436},{"style":2220},[6437],{"type":71,"value":6438}," AuthState",{"type":66,"tag":107,"props":6440,"children":6441},{"style":130},[6442],{"type":71,"value":6443}," }>",{"type":66,"tag":107,"props":6445,"children":6446},{"style":136},[6447],{"type":71,"value":210},{"type":66,"tag":107,"props":6449,"children":6450},{"style":130},[6451],{"type":71,"value":234},{"type":66,"tag":107,"props":6453,"children":6454},{"class":109,"line":168},[6455,6459,6463,6468],{"type":66,"tag":107,"props":6456,"children":6457},{"style":279},[6458],{"type":71,"value":282},{"type":66,"tag":107,"props":6460,"children":6461},{"style":130},[6462],{"type":71,"value":94},{"type":66,"tag":107,"props":6464,"children":6465},{"style":136},[6466],{"type":71,"value":6467}," RootComponent",{"type":66,"tag":107,"props":6469,"children":6470},{"style":130},[6471],{"type":71,"value":272},{"type":66,"tag":107,"props":6473,"children":6474},{"class":109,"line":178},[6475,6479],{"type":66,"tag":107,"props":6476,"children":6477},{"style":130},[6478],{"type":71,"value":304},{"type":66,"tag":107,"props":6480,"children":6481},{"style":136},[6482],{"type":71,"value":309},{"type":66,"tag":107,"props":6484,"children":6485},{"class":109,"line":237},[6486],{"type":66,"tag":107,"props":6487,"children":6488},{"emptyLinePlaceholder":172},[6489],{"type":71,"value":175},{"type":66,"tag":107,"props":6491,"children":6492},{"class":109,"line":275},[6493],{"type":66,"tag":107,"props":6494,"children":6495},{"style":114},[6496],{"type":71,"value":6497},"\u002F\u002F CORRECT — factory()({options})\n",{"type":66,"tag":107,"props":6499,"children":6500},{"class":109,"line":298},[6501,6505,6509,6513,6517,6521,6525,6529,6533,6537,6541],{"type":66,"tag":107,"props":6502,"children":6503},{"style":187},[6504],{"type":71,"value":647},{"type":66,"tag":107,"props":6506,"children":6507},{"style":136},[6508],{"type":71,"value":6412},{"type":66,"tag":107,"props":6510,"children":6511},{"style":130},[6512],{"type":71,"value":200},{"type":66,"tag":107,"props":6514,"children":6515},{"style":203},[6516],{"type":71,"value":2173},{"type":66,"tag":107,"props":6518,"children":6519},{"style":130},[6520],{"type":71,"value":6425},{"type":66,"tag":107,"props":6522,"children":6523},{"style":279},[6524],{"type":71,"value":2879},{"type":66,"tag":107,"props":6526,"children":6527},{"style":130},[6528],{"type":71,"value":94},{"type":66,"tag":107,"props":6530,"children":6531},{"style":2220},[6532],{"type":71,"value":6438},{"type":66,"tag":107,"props":6534,"children":6535},{"style":130},[6536],{"type":71,"value":6443},{"type":66,"tag":107,"props":6538,"children":6539},{"style":136},[6540],{"type":71,"value":2369},{"type":66,"tag":107,"props":6542,"children":6543},{"style":130},[6544],{"type":71,"value":234},{"type":66,"tag":107,"props":6546,"children":6547},{"class":109,"line":312},[6548,6552,6556,6560],{"type":66,"tag":107,"props":6549,"children":6550},{"style":279},[6551],{"type":71,"value":282},{"type":66,"tag":107,"props":6553,"children":6554},{"style":130},[6555],{"type":71,"value":94},{"type":66,"tag":107,"props":6557,"children":6558},{"style":136},[6559],{"type":71,"value":6467},{"type":66,"tag":107,"props":6561,"children":6562},{"style":130},[6563],{"type":71,"value":272},{"type":66,"tag":107,"props":6565,"children":6566},{"class":109,"line":320},[6567,6571],{"type":66,"tag":107,"props":6568,"children":6569},{"style":130},[6570],{"type":71,"value":304},{"type":66,"tag":107,"props":6572,"children":6573},{"style":136},[6574],{"type":71,"value":309},{"type":66,"tag":987,"props":6576,"children":6578},{"id":6577},"high-using-react-hooks-in-beforeload-or-loader",[6579],{"type":71,"value":6580},"HIGH: Using React hooks in beforeLoad or loader",{"type":66,"tag":81,"props":6582,"children":6583},{},[6584,6589,6591,6596],{"type":66,"tag":87,"props":6585,"children":6587},{"className":6586},[],[6588],{"type":71,"value":948},{"type":71,"value":6590}," and ",{"type":66,"tag":87,"props":6592,"children":6594},{"className":6593},[],[6595],{"type":71,"value":956},{"type":71,"value":6597}," are NOT React components. You cannot call hooks inside them. Use router context to inject values from hooks:",{"type":66,"tag":96,"props":6599,"children":6601},{"className":98,"code":6600,"language":100,"meta":101,"style":101},"\u002F\u002F WRONG — hooks cannot be called outside React components\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: () => {\n    const auth = useAuth() \u002F\u002F This will crash!\n    return fetchPosts(auth.userId)\n  },\n})\n\n\u002F\u002F CORRECT — inject hook values via router context\n\u002F\u002F In your App component:\nfunction InnerApp() {\n  const auth = useAuth()\n  return \u003CRouterProvider router={router} context={{ auth }} \u002F>\n}\n\n\u002F\u002F In your route:\nexport const Route = createFileRoute('\u002Fposts')({\n  loader: ({ context: { auth } }) => fetchPosts(auth.userId),\n})\n",[6602],{"type":66,"tag":87,"props":6603,"children":6604},{"__ignoreMap":101},[6605,6613,6660,6683,6712,6745,6752,6763,6770,6778,6786,6805,6828,6875,6882,6889,6897,6944,7009],{"type":66,"tag":107,"props":6606,"children":6607},{"class":109,"line":110},[6608],{"type":66,"tag":107,"props":6609,"children":6610},{"style":114},[6611],{"type":71,"value":6612},"\u002F\u002F WRONG — hooks cannot be called outside React components\n",{"type":66,"tag":107,"props":6614,"children":6615},{"class":109,"line":120},[6616,6620,6624,6628,6632,6636,6640,6644,6648,6652,6656],{"type":66,"tag":107,"props":6617,"children":6618},{"style":124},[6619],{"type":71,"value":184},{"type":66,"tag":107,"props":6621,"children":6622},{"style":187},[6623],{"type":71,"value":190},{"type":66,"tag":107,"props":6625,"children":6626},{"style":136},[6627],{"type":71,"value":195},{"type":66,"tag":107,"props":6629,"children":6630},{"style":130},[6631],{"type":71,"value":200},{"type":66,"tag":107,"props":6633,"children":6634},{"style":203},[6635],{"type":71,"value":139},{"type":66,"tag":107,"props":6637,"children":6638},{"style":136},[6639],{"type":71,"value":210},{"type":66,"tag":107,"props":6641,"children":6642},{"style":130},[6643],{"type":71,"value":215},{"type":66,"tag":107,"props":6645,"children":6646},{"style":157},[6647],{"type":71,"value":220},{"type":66,"tag":107,"props":6649,"children":6650},{"style":130},[6651],{"type":71,"value":215},{"type":66,"tag":107,"props":6653,"children":6654},{"style":136},[6655],{"type":71,"value":229},{"type":66,"tag":107,"props":6657,"children":6658},{"style":130},[6659],{"type":71,"value":234},{"type":66,"tag":107,"props":6661,"children":6662},{"class":109,"line":168},[6663,6667,6671,6675,6679],{"type":66,"tag":107,"props":6664,"children":6665},{"style":203},[6666],{"type":71,"value":243},{"type":66,"tag":107,"props":6668,"children":6669},{"style":130},[6670],{"type":71,"value":94},{"type":66,"tag":107,"props":6672,"children":6673},{"style":130},[6674],{"type":71,"value":252},{"type":66,"tag":107,"props":6676,"children":6677},{"style":187},[6678],{"type":71,"value":257},{"type":66,"tag":107,"props":6680,"children":6681},{"style":130},[6682],{"type":71,"value":339},{"type":66,"tag":107,"props":6684,"children":6685},{"class":109,"line":178},[6686,6690,6694,6698,6702,6707],{"type":66,"tag":107,"props":6687,"children":6688},{"style":187},[6689],{"type":71,"value":3750},{"type":66,"tag":107,"props":6691,"children":6692},{"style":136},[6693],{"type":71,"value":2879},{"type":66,"tag":107,"props":6695,"children":6696},{"style":130},[6697],{"type":71,"value":358},{"type":66,"tag":107,"props":6699,"children":6700},{"style":203},[6701],{"type":71,"value":2888},{"type":66,"tag":107,"props":6703,"children":6704},{"style":279},[6705],{"type":71,"value":6706},"() ",{"type":66,"tag":107,"props":6708,"children":6709},{"style":114},[6710],{"type":71,"value":6711},"\u002F\u002F This will crash!\n",{"type":66,"tag":107,"props":6713,"children":6714},{"class":109,"line":237},[6715,6719,6723,6727,6732,6736,6741],{"type":66,"tag":107,"props":6716,"children":6717},{"style":124},[6718],{"type":71,"value":3838},{"type":66,"tag":107,"props":6720,"children":6721},{"style":203},[6722],{"type":71,"value":262},{"type":66,"tag":107,"props":6724,"children":6725},{"style":279},[6726],{"type":71,"value":210},{"type":66,"tag":107,"props":6728,"children":6729},{"style":136},[6730],{"type":71,"value":6731},"auth",{"type":66,"tag":107,"props":6733,"children":6734},{"style":130},[6735],{"type":71,"value":368},{"type":66,"tag":107,"props":6737,"children":6738},{"style":136},[6739],{"type":71,"value":6740},"userId",{"type":66,"tag":107,"props":6742,"children":6743},{"style":279},[6744],{"type":71,"value":309},{"type":66,"tag":107,"props":6746,"children":6747},{"class":109,"line":275},[6748],{"type":66,"tag":107,"props":6749,"children":6750},{"style":130},[6751],{"type":71,"value":2632},{"type":66,"tag":107,"props":6753,"children":6754},{"class":109,"line":298},[6755,6759],{"type":66,"tag":107,"props":6756,"children":6757},{"style":130},[6758],{"type":71,"value":304},{"type":66,"tag":107,"props":6760,"children":6761},{"style":136},[6762],{"type":71,"value":309},{"type":66,"tag":107,"props":6764,"children":6765},{"class":109,"line":312},[6766],{"type":66,"tag":107,"props":6767,"children":6768},{"emptyLinePlaceholder":172},[6769],{"type":71,"value":175},{"type":66,"tag":107,"props":6771,"children":6772},{"class":109,"line":320},[6773],{"type":66,"tag":107,"props":6774,"children":6775},{"style":114},[6776],{"type":71,"value":6777},"\u002F\u002F CORRECT — inject hook values via router context\n",{"type":66,"tag":107,"props":6779,"children":6780},{"class":109,"line":342},[6781],{"type":66,"tag":107,"props":6782,"children":6783},{"style":114},[6784],{"type":71,"value":6785},"\u002F\u002F In your App component:\n",{"type":66,"tag":107,"props":6787,"children":6788},{"class":109,"line":380},[6789,6793,6797,6801],{"type":66,"tag":107,"props":6790,"children":6791},{"style":187},[6792],{"type":71,"value":326},{"type":66,"tag":107,"props":6794,"children":6795},{"style":203},[6796],{"type":71,"value":2859},{"type":66,"tag":107,"props":6798,"children":6799},{"style":130},[6800],{"type":71,"value":267},{"type":66,"tag":107,"props":6802,"children":6803},{"style":130},[6804],{"type":71,"value":339},{"type":66,"tag":107,"props":6806,"children":6807},{"class":109,"line":394},[6808,6812,6816,6820,6824],{"type":66,"tag":107,"props":6809,"children":6810},{"style":187},[6811],{"type":71,"value":348},{"type":66,"tag":107,"props":6813,"children":6814},{"style":136},[6815],{"type":71,"value":2879},{"type":66,"tag":107,"props":6817,"children":6818},{"style":130},[6819],{"type":71,"value":358},{"type":66,"tag":107,"props":6821,"children":6822},{"style":203},[6823],{"type":71,"value":2888},{"type":66,"tag":107,"props":6825,"children":6826},{"style":279},[6827],{"type":71,"value":377},{"type":66,"tag":107,"props":6829,"children":6830},{"class":109,"line":413},[6831,6835,6839,6843,6847,6851,6855,6859,6863,6867,6871],{"type":66,"tag":107,"props":6832,"children":6833},{"style":124},[6834],{"type":71,"value":386},{"type":66,"tag":107,"props":6836,"children":6837},{"style":130},[6838],{"type":71,"value":750},{"type":66,"tag":107,"props":6840,"children":6841},{"style":2220},[6842],{"type":71,"value":2787},{"type":66,"tag":107,"props":6844,"children":6845},{"style":187},[6846],{"type":71,"value":2912},{"type":66,"tag":107,"props":6848,"children":6849},{"style":130},[6850],{"type":71,"value":484},{"type":66,"tag":107,"props":6852,"children":6853},{"style":136},[6854],{"type":71,"value":34},{"type":66,"tag":107,"props":6856,"children":6857},{"style":130},[6858],{"type":71,"value":2925},{"type":66,"tag":107,"props":6860,"children":6861},{"style":187},[6862],{"type":71,"value":2795},{"type":66,"tag":107,"props":6864,"children":6865},{"style":130},[6866],{"type":71,"value":2934},{"type":66,"tag":107,"props":6868,"children":6869},{"style":136},[6870],{"type":71,"value":2939},{"type":66,"tag":107,"props":6872,"children":6873},{"style":130},[6874],{"type":71,"value":2944},{"type":66,"tag":107,"props":6876,"children":6877},{"class":109,"line":463},[6878],{"type":66,"tag":107,"props":6879,"children":6880},{"style":130},[6881],{"type":71,"value":542},{"type":66,"tag":107,"props":6883,"children":6884},{"class":109,"line":531},[6885],{"type":66,"tag":107,"props":6886,"children":6887},{"emptyLinePlaceholder":172},[6888],{"type":71,"value":175},{"type":66,"tag":107,"props":6890,"children":6891},{"class":109,"line":545},[6892],{"type":66,"tag":107,"props":6893,"children":6894},{"style":114},[6895],{"type":71,"value":6896},"\u002F\u002F In your route:\n",{"type":66,"tag":107,"props":6898,"children":6899},{"class":109,"line":562},[6900,6904,6908,6912,6916,6920,6924,6928,6932,6936,6940],{"type":66,"tag":107,"props":6901,"children":6902},{"style":124},[6903],{"type":71,"value":184},{"type":66,"tag":107,"props":6905,"children":6906},{"style":187},[6907],{"type":71,"value":190},{"type":66,"tag":107,"props":6909,"children":6910},{"style":136},[6911],{"type":71,"value":195},{"type":66,"tag":107,"props":6913,"children":6914},{"style":130},[6915],{"type":71,"value":200},{"type":66,"tag":107,"props":6917,"children":6918},{"style":203},[6919],{"type":71,"value":139},{"type":66,"tag":107,"props":6921,"children":6922},{"style":136},[6923],{"type":71,"value":210},{"type":66,"tag":107,"props":6925,"children":6926},{"style":130},[6927],{"type":71,"value":215},{"type":66,"tag":107,"props":6929,"children":6930},{"style":157},[6931],{"type":71,"value":220},{"type":66,"tag":107,"props":6933,"children":6934},{"style":130},[6935],{"type":71,"value":215},{"type":66,"tag":107,"props":6937,"children":6938},{"style":136},[6939],{"type":71,"value":229},{"type":66,"tag":107,"props":6941,"children":6942},{"style":130},[6943],{"type":71,"value":234},{"type":66,"tag":107,"props":6945,"children":6946},{"class":109,"line":571},[6947,6951,6955,6959,6963,6967,6971,6975,6979,6983,6987,6991,6996,7000,7005],{"type":66,"tag":107,"props":6948,"children":6949},{"style":203},[6950],{"type":71,"value":243},{"type":66,"tag":107,"props":6952,"children":6953},{"style":130},[6954],{"type":71,"value":94},{"type":66,"tag":107,"props":6956,"children":6957},{"style":130},[6958],{"type":71,"value":1266},{"type":66,"tag":107,"props":6960,"children":6961},{"style":279},[6962],{"type":71,"value":2729},{"type":66,"tag":107,"props":6964,"children":6965},{"style":130},[6966],{"type":71,"value":94},{"type":66,"tag":107,"props":6968,"children":6969},{"style":130},[6970],{"type":71,"value":133},{"type":66,"tag":107,"props":6972,"children":6973},{"style":444},[6974],{"type":71,"value":2879},{"type":66,"tag":107,"props":6976,"children":6977},{"style":130},[6978],{"type":71,"value":144},{"type":66,"tag":107,"props":6980,"children":6981},{"style":130},[6982],{"type":71,"value":1303},{"type":66,"tag":107,"props":6984,"children":6985},{"style":187},[6986],{"type":71,"value":257},{"type":66,"tag":107,"props":6988,"children":6989},{"style":203},[6990],{"type":71,"value":262},{"type":66,"tag":107,"props":6992,"children":6993},{"style":136},[6994],{"type":71,"value":6995},"(auth",{"type":66,"tag":107,"props":6997,"children":6998},{"style":130},[6999],{"type":71,"value":368},{"type":66,"tag":107,"props":7001,"children":7002},{"style":136},[7003],{"type":71,"value":7004},"userId)",{"type":66,"tag":107,"props":7006,"children":7007},{"style":130},[7008],{"type":71,"value":272},{"type":66,"tag":107,"props":7010,"children":7011},{"class":109,"line":3999},[7012,7016],{"type":66,"tag":107,"props":7013,"children":7014},{"style":130},[7015],{"type":71,"value":304},{"type":66,"tag":107,"props":7017,"children":7018},{"style":136},[7019],{"type":71,"value":309},{"type":66,"tag":987,"props":7021,"children":7023},{"id":7022},"high-property-order-affects-typescript-inference",[7024],{"type":71,"value":7025},"HIGH: Property order affects TypeScript inference",{"type":66,"tag":81,"props":7027,"children":7028},{},[7029,7031,7036,7038,7043,7045,7050],{"type":71,"value":7030},"Router infers types from earlier properties into later ones. Declaring ",{"type":66,"tag":87,"props":7032,"children":7034},{"className":7033},[],[7035],{"type":71,"value":948},{"type":71,"value":7037}," after ",{"type":66,"tag":87,"props":7039,"children":7041},{"className":7040},[],[7042],{"type":71,"value":956},{"type":71,"value":7044}," means context from ",{"type":66,"tag":87,"props":7046,"children":7048},{"className":7047},[],[7049],{"type":71,"value":948},{"type":71,"value":7051}," is unknown in the loader:",{"type":66,"tag":96,"props":7053,"children":7055},{"className":98,"code":7054,"language":100,"meta":101,"style":101},"\u002F\u002F WRONG — context.user is unknown because beforeLoad declared after loader\nexport const Route = createFileRoute('\u002Fadmin')({\n  loader: ({ context }) => fetchData(context.user),\n  beforeLoad: () => ({ user: getUser() }),\n})\n\n\u002F\u002F CORRECT — validateSearch → loaderDeps → beforeLoad → loader\nexport const Route = createFileRoute('\u002Fadmin')({\n  beforeLoad: () => ({ user: getUser() }),\n  loader: ({ context }) => fetchData(context.user),\n})\n",[7056],{"type":66,"tag":87,"props":7057,"children":7058},{"__ignoreMap":101},[7059,7067,7115,7165,7222,7233,7240,7248,7295,7350,7397],{"type":66,"tag":107,"props":7060,"children":7061},{"class":109,"line":110},[7062],{"type":66,"tag":107,"props":7063,"children":7064},{"style":114},[7065],{"type":71,"value":7066},"\u002F\u002F WRONG — context.user is unknown because beforeLoad declared after loader\n",{"type":66,"tag":107,"props":7068,"children":7069},{"class":109,"line":120},[7070,7074,7078,7082,7086,7090,7094,7098,7103,7107,7111],{"type":66,"tag":107,"props":7071,"children":7072},{"style":124},[7073],{"type":71,"value":184},{"type":66,"tag":107,"props":7075,"children":7076},{"style":187},[7077],{"type":71,"value":190},{"type":66,"tag":107,"props":7079,"children":7080},{"style":136},[7081],{"type":71,"value":195},{"type":66,"tag":107,"props":7083,"children":7084},{"style":130},[7085],{"type":71,"value":200},{"type":66,"tag":107,"props":7087,"children":7088},{"style":203},[7089],{"type":71,"value":139},{"type":66,"tag":107,"props":7091,"children":7092},{"style":136},[7093],{"type":71,"value":210},{"type":66,"tag":107,"props":7095,"children":7096},{"style":130},[7097],{"type":71,"value":215},{"type":66,"tag":107,"props":7099,"children":7100},{"style":157},[7101],{"type":71,"value":7102},"\u002Fadmin",{"type":66,"tag":107,"props":7104,"children":7105},{"style":130},[7106],{"type":71,"value":215},{"type":66,"tag":107,"props":7108,"children":7109},{"style":136},[7110],{"type":71,"value":229},{"type":66,"tag":107,"props":7112,"children":7113},{"style":130},[7114],{"type":71,"value":234},{"type":66,"tag":107,"props":7116,"children":7117},{"class":109,"line":168},[7118,7122,7126,7130,7134,7138,7142,7147,7152,7156,7161],{"type":66,"tag":107,"props":7119,"children":7120},{"style":203},[7121],{"type":71,"value":243},{"type":66,"tag":107,"props":7123,"children":7124},{"style":130},[7125],{"type":71,"value":94},{"type":66,"tag":107,"props":7127,"children":7128},{"style":130},[7129],{"type":71,"value":1266},{"type":66,"tag":107,"props":7131,"children":7132},{"style":444},[7133],{"type":71,"value":2729},{"type":66,"tag":107,"props":7135,"children":7136},{"style":130},[7137],{"type":71,"value":1303},{"type":66,"tag":107,"props":7139,"children":7140},{"style":187},[7141],{"type":71,"value":257},{"type":66,"tag":107,"props":7143,"children":7144},{"style":203},[7145],{"type":71,"value":7146}," fetchData",{"type":66,"tag":107,"props":7148,"children":7149},{"style":136},[7150],{"type":71,"value":7151},"(context",{"type":66,"tag":107,"props":7153,"children":7154},{"style":130},[7155],{"type":71,"value":368},{"type":66,"tag":107,"props":7157,"children":7158},{"style":136},[7159],{"type":71,"value":7160},"user)",{"type":66,"tag":107,"props":7162,"children":7163},{"style":130},[7164],{"type":71,"value":272},{"type":66,"tag":107,"props":7166,"children":7167},{"class":109,"line":178},[7168,7172,7176,7180,7184,7188,7192,7197,7201,7206,7210,7214,7218],{"type":66,"tag":107,"props":7169,"children":7170},{"style":203},[7171],{"type":71,"value":3125},{"type":66,"tag":107,"props":7173,"children":7174},{"style":130},[7175],{"type":71,"value":94},{"type":66,"tag":107,"props":7177,"children":7178},{"style":130},[7179],{"type":71,"value":252},{"type":66,"tag":107,"props":7181,"children":7182},{"style":187},[7183],{"type":71,"value":257},{"type":66,"tag":107,"props":7185,"children":7186},{"style":136},[7187],{"type":71,"value":1125},{"type":66,"tag":107,"props":7189,"children":7190},{"style":130},[7191],{"type":71,"value":1316},{"type":66,"tag":107,"props":7193,"children":7194},{"style":279},[7195],{"type":71,"value":7196}," user",{"type":66,"tag":107,"props":7198,"children":7199},{"style":130},[7200],{"type":71,"value":94},{"type":66,"tag":107,"props":7202,"children":7203},{"style":203},[7204],{"type":71,"value":7205}," getUser",{"type":66,"tag":107,"props":7207,"children":7208},{"style":136},[7209],{"type":71,"value":6706},{"type":66,"tag":107,"props":7211,"children":7212},{"style":130},[7213],{"type":71,"value":304},{"type":66,"tag":107,"props":7215,"children":7216},{"style":136},[7217],{"type":71,"value":452},{"type":66,"tag":107,"props":7219,"children":7220},{"style":130},[7221],{"type":71,"value":272},{"type":66,"tag":107,"props":7223,"children":7224},{"class":109,"line":237},[7225,7229],{"type":66,"tag":107,"props":7226,"children":7227},{"style":130},[7228],{"type":71,"value":304},{"type":66,"tag":107,"props":7230,"children":7231},{"style":136},[7232],{"type":71,"value":309},{"type":66,"tag":107,"props":7234,"children":7235},{"class":109,"line":275},[7236],{"type":66,"tag":107,"props":7237,"children":7238},{"emptyLinePlaceholder":172},[7239],{"type":71,"value":175},{"type":66,"tag":107,"props":7241,"children":7242},{"class":109,"line":298},[7243],{"type":66,"tag":107,"props":7244,"children":7245},{"style":114},[7246],{"type":71,"value":7247},"\u002F\u002F CORRECT — validateSearch → loaderDeps → beforeLoad → loader\n",{"type":66,"tag":107,"props":7249,"children":7250},{"class":109,"line":312},[7251,7255,7259,7263,7267,7271,7275,7279,7283,7287,7291],{"type":66,"tag":107,"props":7252,"children":7253},{"style":124},[7254],{"type":71,"value":184},{"type":66,"tag":107,"props":7256,"children":7257},{"style":187},[7258],{"type":71,"value":190},{"type":66,"tag":107,"props":7260,"children":7261},{"style":136},[7262],{"type":71,"value":195},{"type":66,"tag":107,"props":7264,"children":7265},{"style":130},[7266],{"type":71,"value":200},{"type":66,"tag":107,"props":7268,"children":7269},{"style":203},[7270],{"type":71,"value":139},{"type":66,"tag":107,"props":7272,"children":7273},{"style":136},[7274],{"type":71,"value":210},{"type":66,"tag":107,"props":7276,"children":7277},{"style":130},[7278],{"type":71,"value":215},{"type":66,"tag":107,"props":7280,"children":7281},{"style":157},[7282],{"type":71,"value":7102},{"type":66,"tag":107,"props":7284,"children":7285},{"style":130},[7286],{"type":71,"value":215},{"type":66,"tag":107,"props":7288,"children":7289},{"style":136},[7290],{"type":71,"value":229},{"type":66,"tag":107,"props":7292,"children":7293},{"style":130},[7294],{"type":71,"value":234},{"type":66,"tag":107,"props":7296,"children":7297},{"class":109,"line":320},[7298,7302,7306,7310,7314,7318,7322,7326,7330,7334,7338,7342,7346],{"type":66,"tag":107,"props":7299,"children":7300},{"style":203},[7301],{"type":71,"value":3125},{"type":66,"tag":107,"props":7303,"children":7304},{"style":130},[7305],{"type":71,"value":94},{"type":66,"tag":107,"props":7307,"children":7308},{"style":130},[7309],{"type":71,"value":252},{"type":66,"tag":107,"props":7311,"children":7312},{"style":187},[7313],{"type":71,"value":257},{"type":66,"tag":107,"props":7315,"children":7316},{"style":136},[7317],{"type":71,"value":1125},{"type":66,"tag":107,"props":7319,"children":7320},{"style":130},[7321],{"type":71,"value":1316},{"type":66,"tag":107,"props":7323,"children":7324},{"style":279},[7325],{"type":71,"value":7196},{"type":66,"tag":107,"props":7327,"children":7328},{"style":130},[7329],{"type":71,"value":94},{"type":66,"tag":107,"props":7331,"children":7332},{"style":203},[7333],{"type":71,"value":7205},{"type":66,"tag":107,"props":7335,"children":7336},{"style":136},[7337],{"type":71,"value":6706},{"type":66,"tag":107,"props":7339,"children":7340},{"style":130},[7341],{"type":71,"value":304},{"type":66,"tag":107,"props":7343,"children":7344},{"style":136},[7345],{"type":71,"value":452},{"type":66,"tag":107,"props":7347,"children":7348},{"style":130},[7349],{"type":71,"value":272},{"type":66,"tag":107,"props":7351,"children":7352},{"class":109,"line":342},[7353,7357,7361,7365,7369,7373,7377,7381,7385,7389,7393],{"type":66,"tag":107,"props":7354,"children":7355},{"style":203},[7356],{"type":71,"value":243},{"type":66,"tag":107,"props":7358,"children":7359},{"style":130},[7360],{"type":71,"value":94},{"type":66,"tag":107,"props":7362,"children":7363},{"style":130},[7364],{"type":71,"value":1266},{"type":66,"tag":107,"props":7366,"children":7367},{"style":444},[7368],{"type":71,"value":2729},{"type":66,"tag":107,"props":7370,"children":7371},{"style":130},[7372],{"type":71,"value":1303},{"type":66,"tag":107,"props":7374,"children":7375},{"style":187},[7376],{"type":71,"value":257},{"type":66,"tag":107,"props":7378,"children":7379},{"style":203},[7380],{"type":71,"value":7146},{"type":66,"tag":107,"props":7382,"children":7383},{"style":136},[7384],{"type":71,"value":7151},{"type":66,"tag":107,"props":7386,"children":7387},{"style":130},[7388],{"type":71,"value":368},{"type":66,"tag":107,"props":7390,"children":7391},{"style":136},[7392],{"type":71,"value":7160},{"type":66,"tag":107,"props":7394,"children":7395},{"style":130},[7396],{"type":71,"value":272},{"type":66,"tag":107,"props":7398,"children":7399},{"class":109,"line":380},[7400,7404],{"type":66,"tag":107,"props":7401,"children":7402},{"style":130},[7403],{"type":71,"value":304},{"type":66,"tag":107,"props":7405,"children":7406},{"style":136},[7407],{"type":71,"value":309},{"type":66,"tag":987,"props":7409,"children":7411},{"id":7410},"high-returning-entire-search-object-from-loaderdeps",[7412],{"type":71,"value":7413},"HIGH: Returning entire search object from loaderDeps",{"type":66,"tag":96,"props":7415,"children":7417},{"className":98,"code":7416,"language":100,"meta":101,"style":101},"\u002F\u002F WRONG — loader re-runs on ANY search param change\nloaderDeps: ({ search }) => search\n\n\u002F\u002F CORRECT — only re-run when page changes\nloaderDeps: ({ search }) => ({ page: search.page })\n",[7418],{"type":66,"tag":87,"props":7419,"children":7420},{"__ignoreMap":101},[7421,7429,7461,7468,7476],{"type":66,"tag":107,"props":7422,"children":7423},{"class":109,"line":110},[7424],{"type":66,"tag":107,"props":7425,"children":7426},{"style":114},[7427],{"type":71,"value":7428},"\u002F\u002F WRONG — loader re-runs on ANY search param change\n",{"type":66,"tag":107,"props":7430,"children":7431},{"class":109,"line":120},[7432,7436,7440,7444,7448,7452,7456],{"type":66,"tag":107,"props":7433,"children":7434},{"style":2220},[7435],{"type":71,"value":1003},{"type":66,"tag":107,"props":7437,"children":7438},{"style":130},[7439],{"type":71,"value":94},{"type":66,"tag":107,"props":7441,"children":7442},{"style":130},[7443],{"type":71,"value":1266},{"type":66,"tag":107,"props":7445,"children":7446},{"style":444},[7447],{"type":71,"value":1271},{"type":66,"tag":107,"props":7449,"children":7450},{"style":130},[7451],{"type":71,"value":1303},{"type":66,"tag":107,"props":7453,"children":7454},{"style":187},[7455],{"type":71,"value":257},{"type":66,"tag":107,"props":7457,"children":7458},{"style":136},[7459],{"type":71,"value":7460}," search\n",{"type":66,"tag":107,"props":7462,"children":7463},{"class":109,"line":168},[7464],{"type":66,"tag":107,"props":7465,"children":7466},{"emptyLinePlaceholder":172},[7467],{"type":71,"value":175},{"type":66,"tag":107,"props":7469,"children":7470},{"class":109,"line":178},[7471],{"type":66,"tag":107,"props":7472,"children":7473},{"style":114},[7474],{"type":71,"value":7475},"\u002F\u002F CORRECT — only re-run when page changes\n",{"type":66,"tag":107,"props":7477,"children":7478},{"class":109,"line":237},[7479,7483,7487,7491,7495,7499,7503,7507,7511,7516,7520,7524,7528,7533,7537],{"type":66,"tag":107,"props":7480,"children":7481},{"style":2220},[7482],{"type":71,"value":1003},{"type":66,"tag":107,"props":7484,"children":7485},{"style":130},[7486],{"type":71,"value":94},{"type":66,"tag":107,"props":7488,"children":7489},{"style":130},[7490],{"type":71,"value":1266},{"type":66,"tag":107,"props":7492,"children":7493},{"style":444},[7494],{"type":71,"value":1271},{"type":66,"tag":107,"props":7496,"children":7497},{"style":130},[7498],{"type":71,"value":1303},{"type":66,"tag":107,"props":7500,"children":7501},{"style":187},[7502],{"type":71,"value":257},{"type":66,"tag":107,"props":7504,"children":7505},{"style":136},[7506],{"type":71,"value":1125},{"type":66,"tag":107,"props":7508,"children":7509},{"style":130},[7510],{"type":71,"value":1316},{"type":66,"tag":107,"props":7512,"children":7513},{"style":279},[7514],{"type":71,"value":7515}," page",{"type":66,"tag":107,"props":7517,"children":7518},{"style":130},[7519],{"type":71,"value":94},{"type":66,"tag":107,"props":7521,"children":7522},{"style":136},[7523],{"type":71,"value":1271},{"type":66,"tag":107,"props":7525,"children":7526},{"style":130},[7527],{"type":71,"value":368},{"type":66,"tag":107,"props":7529,"children":7530},{"style":136},[7531],{"type":71,"value":7532},"page ",{"type":66,"tag":107,"props":7534,"children":7535},{"style":130},[7536],{"type":71,"value":304},{"type":66,"tag":107,"props":7538,"children":7539},{"style":136},[7540],{"type":71,"value":309},{"type":66,"tag":81,"props":7542,"children":7543},{},[7544,7546,7551,7553,7559,7560,7566],{"type":71,"value":7545},"Returning the whole ",{"type":66,"tag":87,"props":7547,"children":7549},{"className":7548},[],[7550],{"type":71,"value":37},{"type":71,"value":7552}," object means unrelated param changes (e.g., ",{"type":66,"tag":87,"props":7554,"children":7556},{"className":7555},[],[7557],{"type":71,"value":7558},"sortDirection",{"type":71,"value":5343},{"type":66,"tag":87,"props":7561,"children":7563},{"className":7562},[],[7564],{"type":71,"value":7565},"viewMode",{"type":71,"value":7567},") trigger unnecessary reloads because deep equality fails on the entire object.",{"type":66,"tag":74,"props":7569,"children":7571},{"id":7570},"tensions",[7572],{"type":71,"value":7573},"Tensions",{"type":66,"tag":405,"props":7575,"children":7576},{},[7577,7593],{"type":66,"tag":474,"props":7578,"children":7579},{},[7580,7585,7587,7592],{"type":66,"tag":803,"props":7581,"children":7582},{},[7583],{"type":71,"value":7584},"Client-first loaders vs SSR expectations",{"type":71,"value":7586},": Loaders run on the client by default. When using SSR (TanStack Start), they run on both client and server. Browser-only APIs work by default but break under SSR. Server-only APIs (fs, db) break by default but work under Start server functions. See ",{"type":66,"tag":803,"props":7588,"children":7589},{},[7590],{"type":71,"value":7591},"router-core\u002Fssr\u002FSKILL.md",{"type":71,"value":368},{"type":66,"tag":474,"props":7594,"children":7595},{},[7596,7601,7603,7609,7611,7616],{"type":66,"tag":803,"props":7597,"children":7598},{},[7599],{"type":71,"value":7600},"Built-in SWR cache vs external cache coordination",{"type":71,"value":7602},": Router has built-in caching. When using TanStack Query, set ",{"type":66,"tag":87,"props":7604,"children":7606},{"className":7605},[],[7607],{"type":71,"value":7608},"defaultPreloadStaleTime: 0",{"type":71,"value":7610}," to avoid double-caching. See ",{"type":66,"tag":803,"props":7612,"children":7613},{},[7614],{"type":71,"value":7615},"compositions\u002Frouter-query\u002FSKILL.md",{"type":71,"value":368},{"type":66,"tag":7618,"props":7619,"children":7620},"hr",{},[],{"type":66,"tag":74,"props":7622,"children":7624},{"id":7623},"cross-references",[7625],{"type":71,"value":7626},"Cross-References",{"type":66,"tag":405,"props":7628,"children":7629},{},[7630,7648],{"type":66,"tag":474,"props":7631,"children":7632},{},[7633,7635,7640,7641,7646],{"type":71,"value":7634},"See also: ",{"type":66,"tag":803,"props":7636,"children":7637},{},[7638],{"type":71,"value":7639},"router-core\u002Fsearch-params\u002FSKILL.md",{"type":71,"value":5335},{"type":66,"tag":87,"props":7642,"children":7644},{"className":7643},[],[7645],{"type":71,"value":1003},{"type":71,"value":7647}," consumes validated search params as cache keys",{"type":66,"tag":474,"props":7649,"children":7650},{},[7651,7652,7656],{"type":71,"value":7634},{"type":66,"tag":803,"props":7653,"children":7654},{},[7655],{"type":71,"value":7615},{"type":71,"value":7657}," — for external cache coordination with TanStack Query",{"type":66,"tag":7659,"props":7660,"children":7661},"style",{},[7662],{"type":71,"value":7663},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":7665,"total":7805},[7666,7682,7694,7706,7719,7731,7741,7751,7764,7774,7785,7795],{"slug":7667,"name":7667,"fn":7668,"description":7669,"org":7670,"tags":7671,"stars":7679,"repoUrl":7680,"updatedAt":7681},"aggregation","perform data aggregation in TanStack Table","Aggregate TanStack Table columns independently of grouping, including grand totals, caller-selected row totals, multiple keyed aggregations, custom context-based definitions, grouped merges, manual values, and worker constraints.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7672,7675,7678],{"name":7673,"slug":7674,"type":15},"Data Analysis","data-analysis",{"name":7676,"slug":7677,"type":15},"Frontend","frontend",{"name":9,"slug":8,"type":15},28175,"https:\u002F\u002Fgithub.com\u002FTanStack\u002Ftable","2026-07-30T05:25:59.429787",{"slug":7683,"name":7683,"fn":7684,"description":7685,"org":7686,"tags":7687,"stars":7679,"repoUrl":7680,"updatedAt":7693},"api-not-found","diagnose TanStack Table API errors","Diagnose missing TanStack Table v9 exports, options, state slices, and instance methods. Load before inventing an API when code sees a type error, undefined feature method, absent object key, adapter mismatch, or v8-shaped example.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7688,7691,7692],{"name":7689,"slug":7690,"type":15},"Debugging","debugging",{"name":7676,"slug":7677,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:26:05.418735",{"slug":7695,"name":7695,"fn":7696,"description":7697,"org":7698,"tags":7699,"stars":7679,"repoUrl":7680,"updatedAt":7705},"cell-selection","select rectangular cell ranges in tables","Select rectangular cell ranges with cellSelectionFeature: two-corner range state keyed by row and column id, mousedown\u002Fmouseenter handlers, selection edges, render-order resolution under pinning, and autoResetCellSelection. Load when ranges widen unexpectedly after sorting or column reordering, when a drag re-renders the whole table, or when building copy-to-clipboard from a selection.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7700,7701,7702],{"name":7673,"slug":7674,"type":15},{"name":9,"slug":8,"type":15},{"name":7703,"slug":7704,"type":15},"UI Components","ui-components","2026-07-30T05:25:38.403427",{"slug":7707,"name":7707,"fn":7708,"description":7709,"org":7710,"tags":7711,"stars":7679,"repoUrl":7680,"updatedAt":7718},"client-vs-server","manage TanStack Table data pipelines","Choose client or server ownership for filtering, grouping, sorting, expanding, and pagination in TanStack Table v9. Load for manual* flags, mixed pipelines, server counts, or deciding which dataset each row-model stage receives.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7712,7715,7716,7717],{"name":7713,"slug":7714,"type":15},"Data Pipeline","data-pipeline",{"name":7676,"slug":7677,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:45.400104",{"slug":7720,"name":7720,"fn":7721,"description":7722,"org":7723,"tags":7724,"stars":7679,"repoUrl":7680,"updatedAt":7730},"column-faceting","build faceted filter UIs","Build faceted filter UIs with columnFacetingFeature, facetedRowModel, facetedUniqueValues, and facetedMinMaxValues. Load for facet counts, numeric ranges, own-filter exclusion, or server-page facet completeness.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7725,7728,7729],{"name":7726,"slug":7727,"type":15},"Data Visualization","data-visualization",{"name":7676,"slug":7677,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:41.397257",{"slug":7732,"name":7732,"fn":7733,"description":7734,"org":7735,"tags":7736,"stars":7679,"repoUrl":7680,"updatedAt":7740},"column-filtering","implement column filtering in TanStack Table","Filter columns with columnFilteringFeature, filteredRowModel, filterFns, filterMeta, nested-row direction, and manualFiltering. Load for accessor compatibility, controlled filter updaters, fuzzy metadata, or client\u002Fserver ownership.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7737,7738,7739],{"name":7673,"slug":7674,"type":15},{"name":7676,"slug":7677,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:25:53.391632",{"slug":7742,"name":7742,"fn":7743,"description":7744,"org":7745,"tags":7746,"stars":7679,"repoUrl":7680,"updatedAt":7750},"column-ordering","manage TanStack Table column ordering","Control TanStack Table v9 leaf columnOrder with stable IDs while accounting for pinning regions, visibility, and groupedColumnMode precedence. Load for drag-and-drop columns or rendered order that differs from state.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7747,7748,7749],{"name":7676,"slug":7677,"type":15},{"name":9,"slug":8,"type":15},{"name":7703,"slug":7704,"type":15},"2026-07-30T05:26:03.37801",{"slug":7752,"name":7752,"fn":7753,"description":7754,"org":7755,"tags":7756,"stars":7679,"repoUrl":7680,"updatedAt":7763},"column-pinning","configure column pinning in TanStack Table","Pin columns into logical start, center, and end regions with columnPinningFeature and renderer-owned sticky CSS. Load for RTL offsets, z-index, backgrounds, overflow, widths, gaps, or overlaps.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7757,7760,7761,7762],{"name":7758,"slug":7759,"type":15},"CSS","css",{"name":7676,"slug":7677,"type":15},{"name":9,"slug":8,"type":15},{"name":7703,"slug":7704,"type":15},"2026-07-30T05:25:55.377366",{"slug":7765,"name":7765,"fn":7766,"description":7767,"org":7768,"tags":7769,"stars":7679,"repoUrl":7680,"updatedAt":7773},"column-resizing","implement column resizing in TanStack Table","Wire columnResizingFeature, header.getResizeHandler, resize mode and direction, pointer or touch events, and performant CSS-variable updates. Load when resize state changes but widths do not, or large tables resize slowly.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7770,7771,7772],{"name":7676,"slug":7677,"type":15},{"name":9,"slug":8,"type":15},{"name":7703,"slug":7704,"type":15},"2026-07-30T05:25:51.400011",{"slug":7775,"name":7775,"fn":7776,"description":7777,"org":7778,"tags":7779,"stars":7679,"repoUrl":7680,"updatedAt":7784},"column-sizing","configure column sizing in TanStack Table","Use columnSizingFeature numeric size, minSize, maxSize, getSize, getStart, getAfter, and total-size APIs in table, grid, or flex CSS. Load for auto or percentage misconceptions and sizing\u002Fpinning layout mismatch.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7780,7781,7782,7783],{"name":7758,"slug":7759,"type":15},{"name":7676,"slug":7677,"type":15},{"name":9,"slug":8,"type":15},{"name":7703,"slug":7704,"type":15},"2026-07-30T05:25:48.703799",{"slug":7786,"name":7786,"fn":7787,"description":7788,"org":7789,"tags":7790,"stars":7679,"repoUrl":7680,"updatedAt":7794},"column-visibility","manage column visibility in TanStack Table","Hide columns with columnVisibilityFeature while rendering visibility-aware header, column, and cell collections. Load when hidden columns remain in the DOM, false-versus-absent state is confused, or enableHiding is misunderstood.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7791,7792,7793],{"name":7676,"slug":7677,"type":15},{"name":9,"slug":8,"type":15},{"name":7703,"slug":7704,"type":15},"2026-07-30T05:25:47.367943",{"slug":7796,"name":7796,"fn":7797,"description":7798,"org":7799,"tags":7800,"stars":7679,"repoUrl":7680,"updatedAt":7804},"core","build data grids with TanStack Table","Use TanStack Table v9 as a headless data-grid state and row-processing engine. Load for first-table architecture, stable data and columns, row numbering with getDisplayIndex, semantic rendering, framework adapter choice, or deciding what Table owns versus the renderer.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7801,7802,7803],{"name":7673,"slug":7674,"type":15},{"name":7676,"slug":7677,"type":15},{"name":7703,"slug":7704,"type":15},"2026-07-30T05:25:52.366295",125,{"items":7807,"total":4303},[7808,7822,7837,7851,7858,7877,7888],{"slug":7809,"name":7809,"fn":7810,"description":7811,"org":7812,"tags":7813,"stars":23,"repoUrl":24,"updatedAt":7821},"auth-and-guards","implement route protection in TanStack Router","Route protection with beforeLoad, redirect()\u002Fthrow redirect(), isRedirect helper, authenticated layout routes (_authenticated), non-redirect auth (inline login), RBAC with roles and permissions, auth provider integration (Auth0, Clerk, Supabase), router context for auth state.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7814,7816,7817,7819,7820],{"name":7815,"slug":6731,"type":15},"Auth",{"name":7676,"slug":7677,"type":15},{"name":7818,"slug":35,"type":15},"Routing",{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},"2026-07-30T05:27:07.639032",{"slug":7823,"name":7823,"fn":7824,"description":7825,"org":7826,"tags":7827,"stars":23,"repoUrl":24,"updatedAt":7836},"auth-server-primitives","implement server-side authentication primitives","Server-side authentication primitives for TanStack Start: session cookies (HttpOnly, Secure, SameSite, __Host- prefix), session read\u002Fissue\u002Fdestroy via createServerFn and middleware, OAuth authorization-code flow with state and PKCE, password-reset enumeration defense, CSRF for non-GET RPCs, rate limiting auth endpoints, session rotation on privilege change. Pairs with router-core\u002Fauth-and-guards for the routing side.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7828,7829,7832,7835],{"name":7815,"slug":6731,"type":15},{"name":7830,"slug":7831,"type":15},"OAuth","oauth",{"name":7833,"slug":7834,"type":15},"Security","security",{"name":9,"slug":8,"type":15},"2026-07-30T05:26:59.504396",{"slug":7838,"name":7838,"fn":7839,"description":7840,"org":7841,"tags":7842,"stars":23,"repoUrl":24,"updatedAt":7850},"code-splitting","configure code splitting in TanStack Router","Automatic code splitting (autoCodeSplitting), .lazy.tsx convention, createLazyFileRoute, createLazyRoute, lazyRouteComponent, getRouteApi for typed hooks in split files, codeSplitGroupings per-route override, splitBehavior programmatic config, critical vs non-critical properties.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7843,7846,7847,7848,7849],{"name":7844,"slug":7845,"type":15},"Engineering","engineering",{"name":7676,"slug":7677,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},"2026-07-30T05:27:11.494406",{"slug":4,"name":4,"fn":5,"description":6,"org":7852,"tags":7853,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7854,7855,7856,7857],{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},{"slug":7859,"name":7859,"fn":7860,"description":7861,"org":7862,"tags":7863,"stars":23,"repoUrl":24,"updatedAt":7876},"deployment","deploy TanStack Start applications","Deploy to Cloudflare Workers, Netlify, Vercel, Node.js\u002FDocker, Bun, Railway. Selective SSR (ssr option per route), SPA mode, static prerendering, ISR with Cache-Control headers, SEO and head management.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7864,7867,7869,7872,7873],{"name":7865,"slug":7866,"type":15},"Cloudflare","cloudflare",{"name":7868,"slug":7859,"type":15},"Deployment",{"name":7870,"slug":7871,"type":15},"Netlify","netlify",{"name":9,"slug":8,"type":15},{"name":7874,"slug":7875,"type":15},"Vercel","vercel","2026-07-30T05:26:50.509927",{"slug":7878,"name":7878,"fn":7879,"description":7880,"org":7881,"tags":7882,"stars":23,"repoUrl":24,"updatedAt":7887},"execution-model","manage isomorphic execution models","Isomorphic-by-default principle, environment boundary functions (createServerFn, createServerOnlyFn, createClientOnlyFn, createIsomorphicFn), ClientOnly component, useHydrated hook, import protection, dead code elimination, environment variable safety (VITE_ prefix, process.env).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7883,7886],{"name":7884,"slug":7885,"type":15},"Architecture","architecture",{"name":9,"slug":8,"type":15},"2026-07-30T05:27:04.558441",{"slug":7889,"name":7889,"fn":7890,"description":7891,"org":7892,"tags":7893,"stars":23,"repoUrl":24,"updatedAt":7901},"middleware","implement TanStack Router middleware","createMiddleware, request middleware (.server only), server function middleware (.client + .server), context passing via next({ context }), sendContext for client-server transfer, global middleware via createStart in src\u002Fstart.ts, middleware factories, method order enforcement, fetch override precedence.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[7894,7897,7898,7900],{"name":7895,"slug":7896,"type":15},"Backend","backend",{"name":7676,"slug":7677,"type":15},{"name":7899,"slug":7889,"type":15},"Middleware",{"name":9,"slug":8,"type":15},"2026-07-30T05:26:58.546019"]