@tanstack/vue-router 1.167.5 → 1.168.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/esm/Match.js +55 -61
  2. package/dist/esm/Match.js.map +1 -1
  3. package/dist/esm/Matches.js +8 -15
  4. package/dist/esm/Matches.js.map +1 -1
  5. package/dist/esm/Scripts.js +7 -6
  6. package/dist/esm/Scripts.js.map +1 -1
  7. package/dist/esm/Transitioner.js +18 -24
  8. package/dist/esm/Transitioner.js.map +1 -1
  9. package/dist/esm/headContentUtils.js +13 -15
  10. package/dist/esm/headContentUtils.js.map +1 -1
  11. package/dist/esm/index.dev.js +6 -6
  12. package/dist/esm/index.js +6 -6
  13. package/dist/esm/link.js +242 -178
  14. package/dist/esm/link.js.map +1 -1
  15. package/dist/esm/matchContext.d.ts +8 -14
  16. package/dist/esm/matchContext.js +11 -9
  17. package/dist/esm/matchContext.js.map +1 -1
  18. package/dist/esm/not-found.js +6 -3
  19. package/dist/esm/not-found.js.map +1 -1
  20. package/dist/esm/router.js +2 -1
  21. package/dist/esm/router.js.map +1 -1
  22. package/dist/esm/routerStores.d.ts +13 -0
  23. package/dist/esm/routerStores.js +33 -0
  24. package/dist/esm/routerStores.js.map +1 -0
  25. package/dist/esm/ssr/RouterClient.js +1 -1
  26. package/dist/esm/ssr/RouterClient.js.map +1 -1
  27. package/dist/esm/ssr/renderRouterToStream.js +2 -2
  28. package/dist/esm/ssr/renderRouterToStream.js.map +1 -1
  29. package/dist/esm/ssr/renderRouterToString.js +1 -1
  30. package/dist/esm/ssr/renderRouterToString.js.map +1 -1
  31. package/dist/esm/useCanGoBack.d.ts +1 -1
  32. package/dist/esm/useCanGoBack.js +3 -2
  33. package/dist/esm/useCanGoBack.js.map +1 -1
  34. package/dist/esm/useLocation.js +3 -2
  35. package/dist/esm/useLocation.js.map +1 -1
  36. package/dist/esm/useMatch.js +29 -19
  37. package/dist/esm/useMatch.js.map +1 -1
  38. package/dist/esm/useRouterState.js +4 -4
  39. package/dist/esm/useRouterState.js.map +1 -1
  40. package/dist/source/Match.jsx +121 -159
  41. package/dist/source/Match.jsx.map +1 -1
  42. package/dist/source/Matches.jsx +11 -28
  43. package/dist/source/Matches.jsx.map +1 -1
  44. package/dist/source/Scripts.jsx +32 -35
  45. package/dist/source/Scripts.jsx.map +1 -1
  46. package/dist/source/Transitioner.jsx +19 -21
  47. package/dist/source/Transitioner.jsx.map +1 -1
  48. package/dist/source/headContentUtils.jsx +51 -61
  49. package/dist/source/headContentUtils.jsx.map +1 -1
  50. package/dist/source/link.jsx +298 -249
  51. package/dist/source/link.jsx.map +1 -1
  52. package/dist/source/matchContext.d.ts +8 -14
  53. package/dist/source/matchContext.jsx +17 -23
  54. package/dist/source/matchContext.jsx.map +1 -1
  55. package/dist/source/not-found.jsx +6 -5
  56. package/dist/source/not-found.jsx.map +1 -1
  57. package/dist/source/router.js +2 -1
  58. package/dist/source/router.js.map +1 -1
  59. package/dist/source/routerStores.d.ts +13 -0
  60. package/dist/source/routerStores.js +37 -0
  61. package/dist/source/routerStores.js.map +1 -0
  62. package/dist/source/ssr/RouterClient.jsx +1 -1
  63. package/dist/source/ssr/RouterClient.jsx.map +1 -1
  64. package/dist/source/ssr/renderRouterToStream.jsx +2 -2
  65. package/dist/source/ssr/renderRouterToStream.jsx.map +1 -1
  66. package/dist/source/ssr/renderRouterToString.jsx +1 -1
  67. package/dist/source/ssr/renderRouterToString.jsx.map +1 -1
  68. package/dist/source/useCanGoBack.d.ts +1 -1
  69. package/dist/source/useCanGoBack.js +4 -2
  70. package/dist/source/useCanGoBack.js.map +1 -1
  71. package/dist/source/useLocation.jsx +4 -4
  72. package/dist/source/useLocation.jsx.map +1 -1
  73. package/dist/source/useMatch.jsx +60 -38
  74. package/dist/source/useMatch.jsx.map +1 -1
  75. package/dist/source/useRouterState.jsx +4 -4
  76. package/dist/source/useRouterState.jsx.map +1 -1
  77. package/package.json +4 -4
  78. package/skills/vue-router/SKILL.md +3 -0
  79. package/src/Match.tsx +168 -180
  80. package/src/Matches.tsx +18 -31
  81. package/src/Scripts.tsx +40 -40
  82. package/src/Transitioner.tsx +35 -23
  83. package/src/headContentUtils.tsx +101 -107
  84. package/src/link.tsx +445 -300
  85. package/src/matchContext.tsx +23 -25
  86. package/src/not-found.tsx +9 -5
  87. package/src/router.ts +2 -1
  88. package/src/routerStores.ts +54 -0
  89. package/src/ssr/RouterClient.tsx +1 -1
  90. package/src/ssr/renderRouterToStream.tsx +2 -2
  91. package/src/ssr/renderRouterToString.tsx +1 -1
  92. package/src/useCanGoBack.ts +7 -2
  93. package/src/useLocation.tsx +8 -5
  94. package/src/useMatch.tsx +95 -49
  95. package/src/useRouterState.tsx +6 -4
@@ -1,28 +1,38 @@
1
- import { useRouterState } from "./useRouterState.js";
2
- import { injectDummyMatch, injectMatch } from "./matchContext.js";
1
+ import { useRouter } from "./useRouter.js";
2
+ import { injectDummyPendingMatch, injectPendingMatch, routeIdContext } from "./matchContext.js";
3
3
  import * as Vue from "vue";
4
+ import { isServer } from "@tanstack/router-core/isServer";
5
+ import { useStore } from "@tanstack/vue-store";
6
+ import invariant from "tiny-invariant";
4
7
  //#region src/useMatch.tsx
5
8
  function useMatch(opts) {
6
- const nearestMatchId = opts.from ? injectDummyMatch() : injectMatch();
7
- const pendingError = Vue.ref(null);
8
- const matchSelection = useRouterState({ select: (state) => {
9
- const match = state.matches.find((d) => opts.from ? opts.from === d.routeId : d.id === nearestMatchId.value);
10
- if (match === void 0) {
11
- if (state.pendingMatches?.find((d) => opts.from ? opts.from === d.routeId : d.id === nearestMatchId.value) || state.isTransitioning) {
12
- pendingError.value = null;
13
- return;
14
- }
15
- if (opts.shouldThrow ?? true) pendingError.value = /* @__PURE__ */ new Error(`Invariant failed: Could not find ${opts.from ? `an active match from "${opts.from}"` : "a nearest match!"}`);
9
+ const router = useRouter();
10
+ if (isServer ?? router.isServer) {
11
+ const nearestRouteId = opts.from ? void 0 : Vue.inject(routeIdContext);
12
+ const match = (opts.from ?? nearestRouteId ? router.stores.getMatchStoreByRouteId(opts.from ?? nearestRouteId) : void 0)?.state;
13
+ invariant(!((opts.shouldThrow ?? true) && !match), `Could not find ${opts.from ? `an active match from "${opts.from}"` : "a nearest match!"}`);
14
+ if (match === void 0) return Vue.ref(void 0);
15
+ return Vue.ref(opts.select ? opts.select(match) : match);
16
+ }
17
+ const hasPendingNearestMatch = opts.from ? injectDummyPendingMatch() : injectPendingMatch();
18
+ let match;
19
+ if (opts.from) match = useStore(router.stores.getMatchStoreByRouteId(opts.from), (value) => value);
20
+ else {
21
+ const nearestRouteId = Vue.inject(routeIdContext);
22
+ if (nearestRouteId) match = useStore(router.stores.getMatchStoreByRouteId(nearestRouteId), (value) => value);
23
+ else match = Vue.ref(void 0);
24
+ }
25
+ const hasPendingRouteMatch = opts.from ? useStore(router.stores.pendingRouteIds, (ids) => ids) : void 0;
26
+ const isTransitioning = useStore(router.stores.isTransitioning, (value) => value, { equal: Object.is });
27
+ const result = Vue.computed(() => {
28
+ const selectedMatch = match.value;
29
+ if (selectedMatch === void 0) {
30
+ invariant(!(!(opts.from ? Boolean(hasPendingRouteMatch?.value[opts.from]) : hasPendingNearestMatch.value) && !isTransitioning.value && (opts.shouldThrow ?? true)), `Could not find ${opts.from ? `an active match from "${opts.from}"` : "a nearest match!"}`);
16
31
  return;
17
32
  }
18
- pendingError.value = null;
19
- return opts.select ? opts.select(match) : match;
20
- } });
21
- const result = Vue.computed(() => {
22
- if (pendingError.value) throw pendingError.value;
23
- return matchSelection.value;
33
+ return opts.select ? opts.select(selectedMatch) : selectedMatch;
24
34
  });
25
- if (pendingError.value) throw pendingError.value;
35
+ result.value;
26
36
  return result;
27
37
  }
28
38
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"useMatch.js","names":["Vue","useRouterState","injectDummyMatch","injectMatch","useMatch","opts","nearestMatchId","from","pendingError","ref","matchSelection","select","state","match","matches","find","d","routeId","id","value","undefined","pendingMatch","pendingMatches","isTransitioning","shouldThrow","Error","result","computed"],"sources":["../../src/useMatch.tsx"],"sourcesContent":["import * as Vue from 'vue'\nimport { useRouterState } from './useRouterState'\nimport { injectDummyMatch, injectMatch } from './matchContext'\nimport type {\n AnyRouter,\n MakeRouteMatch,\n MakeRouteMatchUnion,\n RegisteredRouter,\n StrictOrFrom,\n ThrowConstraint,\n ThrowOrOptional,\n} from '@tanstack/router-core'\n\nexport interface UseMatchBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TThrow extends boolean,\n TSelected,\n> {\n select?: (\n match: MakeRouteMatch<TRouter['routeTree'], TFrom, TStrict>,\n ) => TSelected\n shouldThrow?: TThrow\n}\n\nexport type UseMatchRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseMatchBaseOptions<TRouter, TFrom, true, true, TSelected>,\n) => Vue.Ref<UseMatchResult<TRouter, TFrom, true, TSelected>>\n\nexport type UseMatchOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TStrict extends boolean,\n TThrow extends boolean,\n TSelected,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseMatchBaseOptions<TRouter, TFrom, TStrict, TThrow, TSelected>\n\nexport type UseMatchResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? TStrict extends true\n ? MakeRouteMatch<TRouter['routeTree'], TFrom, TStrict>\n : MakeRouteMatchUnion<TRouter>\n : TSelected\n\nexport function useMatch<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TThrow extends boolean = true,\n TSelected = unknown,\n>(\n opts: UseMatchOptions<\n TRouter,\n TFrom,\n TStrict,\n ThrowConstraint<TStrict, TThrow>,\n TSelected\n >,\n): Vue.Ref<\n ThrowOrOptional<UseMatchResult<TRouter, TFrom, TStrict, TSelected>, TThrow>\n> {\n const nearestMatchId = opts.from ? injectDummyMatch() : injectMatch()\n\n // Store to track pending error for deferred throwing\n const pendingError = Vue.ref<Error | null>(null)\n\n // Select the match from router state\n const matchSelection = useRouterState({\n select: (state: any) => {\n const match = state.matches.find((d: any) =>\n opts.from ? opts.from === d.routeId : d.id === nearestMatchId.value,\n )\n\n if (match === undefined) {\n // During navigation transitions, check if the match exists in pendingMatches\n const pendingMatch = state.pendingMatches?.find((d: any) =>\n opts.from ? opts.from === d.routeId : d.id === nearestMatchId.value,\n )\n\n // If there's a pending match or we're transitioning, return undefined without throwing\n if (pendingMatch || state.isTransitioning) {\n pendingError.value = null\n return undefined\n }\n\n // Store the error to throw later if shouldThrow is enabled\n if (opts.shouldThrow ?? true) {\n pendingError.value = new Error(\n `Invariant failed: Could not find ${opts.from ? `an active match from \"${opts.from}\"` : 'a nearest match!'}`,\n )\n }\n\n return undefined\n }\n\n pendingError.value = null\n return opts.select ? opts.select(match) : match\n },\n } as any)\n\n // Throw the error if we have one - this happens after the selector runs\n // Using a computed so the error is thrown when the return value is accessed\n const result = Vue.computed(() => {\n // Check for pending error first\n if (pendingError.value) {\n throw pendingError.value\n }\n return matchSelection.value\n })\n\n // Also immediately throw if there's already an error from initial render\n // This ensures errors are thrown even if the returned ref is never accessed\n if (pendingError.value) {\n throw pendingError.value\n }\n\n return result as any\n}\n"],"mappings":";;;;AAqDA,SAAgBI,SAOdC,MASA;CACA,MAAMC,iBAAiBD,KAAKE,OAAOL,kBAAkB,GAAGC,aAAa;CAGrE,MAAMK,eAAeR,IAAIS,IAAkB,KAAK;CAGhD,MAAMC,iBAAiBT,eAAe,EACpCU,SAASC,UAAe;EACtB,MAAMC,QAAQD,MAAME,QAAQC,MAAMC,MAChCX,KAAKE,OAAOF,KAAKE,SAASS,EAAEC,UAAUD,EAAEE,OAAOZ,eAAea,MAC/D;AAED,MAAIN,UAAUO,KAAAA,GAAW;AAOvB,OALqBR,MAAMU,gBAAgBP,MAAMC,MAC/CX,KAAKE,OAAOF,KAAKE,SAASS,EAAEC,UAAUD,EAAEE,OAAOZ,eAAea,MAC/D,IAGmBP,MAAMW,iBAAiB;AACzCf,iBAAaW,QAAQ;AACrB;;AAIF,OAAId,KAAKmB,eAAe,KACtBhB,cAAaW,wBAAQ,IAAIM,MACvB,oCAAoCpB,KAAKE,OAAO,yBAAyBF,KAAKE,KAAI,KAAM,qBACzF;AAGH;;AAGFC,eAAaW,QAAQ;AACrB,SAAOd,KAAKM,SAASN,KAAKM,OAAOE,MAAM,GAAGA;IAEtC,CAAC;CAIT,MAAMa,SAAS1B,IAAI2B,eAAe;AAEhC,MAAInB,aAAaW,MACf,OAAMX,aAAaW;AAErB,SAAOT,eAAeS;GACtB;AAIF,KAAIX,aAAaW,MACf,OAAMX,aAAaW;AAGrB,QAAOO"}
1
+ {"version":3,"file":"useMatch.js","names":["Vue","useStore","isServer","invariant","injectDummyPendingMatch","injectPendingMatch","routeIdContext","useRouter","useMatch","opts","router","nearestRouteId","from","undefined","inject","matchStore","stores","getMatchStoreByRouteId","match","state","shouldThrow","ref","select","hasPendingNearestMatch","value","hasPendingRouteMatch","pendingRouteIds","ids","isTransitioning","equal","Object","is","result","computed","selectedMatch","hasPendingMatch","Boolean"],"sources":["../../src/useMatch.tsx"],"sourcesContent":["import * as Vue from 'vue'\nimport { useStore } from '@tanstack/vue-store'\nimport { isServer } from '@tanstack/router-core/isServer'\nimport invariant from 'tiny-invariant'\nimport {\n injectDummyPendingMatch,\n injectPendingMatch,\n routeIdContext,\n} from './matchContext'\nimport { useRouter } from './useRouter'\nimport type {\n AnyRouter,\n MakeRouteMatch,\n MakeRouteMatchUnion,\n RegisteredRouter,\n StrictOrFrom,\n ThrowConstraint,\n ThrowOrOptional,\n} from '@tanstack/router-core'\n\nexport interface UseMatchBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TThrow extends boolean,\n TSelected,\n> {\n select?: (\n match: MakeRouteMatch<TRouter['routeTree'], TFrom, TStrict>,\n ) => TSelected\n shouldThrow?: TThrow\n}\n\nexport type UseMatchRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseMatchBaseOptions<TRouter, TFrom, true, true, TSelected>,\n) => Vue.Ref<UseMatchResult<TRouter, TFrom, true, TSelected>>\n\nexport type UseMatchOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TStrict extends boolean,\n TThrow extends boolean,\n TSelected,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseMatchBaseOptions<TRouter, TFrom, TStrict, TThrow, TSelected>\n\nexport type UseMatchResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? TStrict extends true\n ? MakeRouteMatch<TRouter['routeTree'], TFrom, TStrict>\n : MakeRouteMatchUnion<TRouter>\n : TSelected\n\nexport function useMatch<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TThrow extends boolean = true,\n TSelected = unknown,\n>(\n opts: UseMatchOptions<\n TRouter,\n TFrom,\n TStrict,\n ThrowConstraint<TStrict, TThrow>,\n TSelected\n >,\n): Vue.Ref<\n ThrowOrOptional<UseMatchResult<TRouter, TFrom, TStrict, TSelected>, TThrow>\n> {\n const router = useRouter<TRouter>()\n\n // During SSR we render exactly once and do not need reactivity.\n // Avoid store subscriptions and pending/transition bookkeeping on the server.\n if (isServer ?? router.isServer) {\n const nearestRouteId = opts.from ? undefined : Vue.inject(routeIdContext)\n const matchStore =\n (opts.from ?? nearestRouteId)\n ? router.stores.getMatchStoreByRouteId(opts.from ?? nearestRouteId!)\n : undefined\n const match = matchStore?.state\n\n invariant(\n !((opts.shouldThrow ?? true) && !match),\n `Could not find ${opts.from ? `an active match from \"${opts.from}\"` : 'a nearest match!'}`,\n )\n\n if (match === undefined) {\n return Vue.ref(undefined) as Vue.Ref<\n ThrowOrOptional<\n UseMatchResult<TRouter, TFrom, TStrict, TSelected>,\n TThrow\n >\n >\n }\n\n return Vue.ref(opts.select ? opts.select(match) : match) as Vue.Ref<\n ThrowOrOptional<\n UseMatchResult<TRouter, TFrom, TStrict, TSelected>,\n TThrow\n >\n >\n }\n\n const hasPendingNearestMatch = opts.from\n ? injectDummyPendingMatch()\n : injectPendingMatch()\n // Set up reactive match value based on lookup strategy.\n let match: Readonly<Vue.Ref<any>>\n\n if (opts.from) {\n // routeId case: single subscription via per-routeId computed store.\n // The store reference is stable (cached by routeId).\n const matchStore = router.stores.getMatchStoreByRouteId(opts.from)\n match = useStore(matchStore, (value) => value)\n } else {\n // matchId case: use routeId from context for stable store lookup.\n // The routeId is provided by the nearest Match component and doesn't\n // change for the component's lifetime, so the store is stable.\n const nearestRouteId = Vue.inject(routeIdContext)\n if (nearestRouteId) {\n match = useStore(\n router.stores.getMatchStoreByRouteId(nearestRouteId),\n (value) => value,\n )\n } else {\n // No route context will fall through to error handling below\n match = Vue.ref(undefined) as Readonly<Vue.Ref<undefined>>\n }\n }\n\n const hasPendingRouteMatch = opts.from\n ? useStore(router.stores.pendingRouteIds, (ids) => ids)\n : undefined\n const isTransitioning = useStore(\n router.stores.isTransitioning,\n (value) => value,\n { equal: Object.is },\n )\n\n const result = Vue.computed(() => {\n const selectedMatch = match.value\n if (selectedMatch === undefined) {\n const hasPendingMatch = opts.from\n ? Boolean(hasPendingRouteMatch?.value[opts.from!])\n : hasPendingNearestMatch.value\n invariant(\n !(\n !hasPendingMatch &&\n !isTransitioning.value &&\n (opts.shouldThrow ?? true)\n ),\n `Could not find ${opts.from ? `an active match from \"${opts.from}\"` : 'a nearest match!'}`,\n )\n\n return undefined\n }\n\n return opts.select ? opts.select(selectedMatch) : selectedMatch\n })\n\n // Keep eager throw behavior for setups that call useMatch for side effects only.\n result.value\n\n return result\n}\n"],"mappings":";;;;;;;AA4DA,SAAgBQ,SAOdC,MASA;CACA,MAAMC,SAASH,WAAoB;AAInC,KAAIL,YAAYQ,OAAOR,UAAU;EAC/B,MAAMS,iBAAiBF,KAAKG,OAAOC,KAAAA,IAAYb,IAAIc,OAAOR,eAAe;EAKzE,MAAMY,SAHHT,KAAKG,QAAQD,iBACVD,OAAOM,OAAOC,uBAAuBR,KAAKG,QAAQD,eAAgB,GAClEE,KAAAA,IACoBM;AAE1BhB,YACE,GAAGM,KAAKW,eAAe,SAAS,CAACF,QACjC,kBAAkBT,KAAKG,OAAO,yBAAyBH,KAAKG,KAAI,KAAM,qBACvE;AAED,MAAIM,UAAUL,KAAAA,EACZ,QAAOb,IAAIqB,IAAIR,KAAAA,EAAU;AAQ3B,SAAOb,IAAIqB,IAAIZ,KAAKa,SAASb,KAAKa,OAAOJ,MAAM,GAAGA,MAAM;;CAQ1D,MAAMK,yBAAyBd,KAAKG,OAChCR,yBAAyB,GACzBC,oBAAoB;CAExB,IAAIa;AAEJ,KAAIT,KAAKG,KAIPM,SAAQjB,SADWS,OAAOM,OAAOC,uBAAuBR,KAAKG,KAAK,GACpCY,UAAUA,MAAM;MACzC;EAIL,MAAMb,iBAAiBX,IAAIc,OAAOR,eAAe;AACjD,MAAIK,eACFO,SAAQjB,SACNS,OAAOM,OAAOC,uBAAuBN,eAAe,GACnDa,UAAUA,MACZ;MAGDN,SAAQlB,IAAIqB,IAAIR,KAAAA,EAA0C;;CAI9D,MAAMY,uBAAuBhB,KAAKG,OAC9BX,SAASS,OAAOM,OAAOU,kBAAkBC,QAAQA,IAAI,GACrDd,KAAAA;CACJ,MAAMe,kBAAkB3B,SACtBS,OAAOM,OAAOY,kBACbJ,UAAUA,OACX,EAAEK,OAAOC,OAAOC,IAClB,CAAC;CAED,MAAMC,SAAShC,IAAIiC,eAAe;EAChC,MAAMC,gBAAgBhB,MAAMM;AAC5B,MAAIU,kBAAkBrB,KAAAA,GAAW;AAI/BV,aACE,EACE,EALoBM,KAAKG,OACzBwB,QAAQX,sBAAsBD,MAAMf,KAAKG,MAAO,GAChDW,uBAAuBC,UAIvB,CAACI,gBAAgBJ,UAChBf,KAAKW,eAAe,QAEvB,kBAAkBX,KAAKG,OAAO,yBAAyBH,KAAKG,KAAI,KAAM,qBACvE;AAED;;AAGF,SAAOH,KAAKa,SAASb,KAAKa,OAAOY,cAAc,GAAGA;GAClD;AAGFF,QAAOR;AAEP,QAAOQ"}
@@ -1,17 +1,17 @@
1
1
  import { useRouter } from "./useRouter.js";
2
2
  import * as Vue from "vue";
3
- import { useStore } from "@tanstack/vue-store";
4
3
  import { isServer } from "@tanstack/router-core/isServer";
4
+ import { useStore } from "@tanstack/vue-store";
5
5
  //#region src/useRouterState.tsx
6
6
  function useRouterState(opts) {
7
7
  const contextRouter = useRouter({ warn: opts?.router === void 0 });
8
8
  const router = opts?.router || contextRouter;
9
- if (!router || !router.__store) return Vue.ref(void 0);
9
+ if (!router || !router.stores.__store) return Vue.ref(void 0);
10
10
  if (isServer ?? router.isServer) {
11
- const state = router.state;
11
+ const state = router.stores.__store.state;
12
12
  return Vue.ref(opts?.select ? opts.select(state) : state);
13
13
  }
14
- return useStore(router.__store, (state) => {
14
+ return useStore(router.stores.__store, (state) => {
15
15
  if (opts?.select) return opts.select(state);
16
16
  return state;
17
17
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useRouterState.js","names":["useStore","Vue","isServer","useRouter","useRouterState","opts","contextRouter","warn","router","undefined","__store","ref","_isServer","state","select"],"sources":["../../src/useRouterState.tsx"],"sourcesContent":["import { useStore } from '@tanstack/vue-store'\nimport * as Vue from 'vue'\nimport { isServer } from '@tanstack/router-core/isServer'\nimport { useRouter } from './useRouter'\nimport type {\n AnyRouter,\n RegisteredRouter,\n RouterState,\n} from '@tanstack/router-core'\n\nexport type UseRouterStateOptions<TRouter extends AnyRouter, TSelected> = {\n router?: TRouter\n select?: (state: RouterState<TRouter['routeTree']>) => TSelected\n}\n\nexport type UseRouterStateResult<\n TRouter extends AnyRouter,\n TSelected,\n> = unknown extends TSelected ? RouterState<TRouter['routeTree']> : TSelected\n\nexport function useRouterState<\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseRouterStateOptions<TRouter, TSelected>,\n): Vue.Ref<UseRouterStateResult<TRouter, TSelected>> {\n const contextRouter = useRouter<TRouter>({\n warn: opts?.router === undefined,\n })\n const router = opts?.router || contextRouter\n\n // Return a safe default if router is undefined\n if (!router || !router.__store) {\n return Vue.ref(undefined) as Vue.Ref<\n UseRouterStateResult<TRouter, TSelected>\n >\n }\n\n // During SSR we render exactly once and do not need reactivity.\n // Avoid subscribing to the store on the server since the server store\n // implementation does not provide subscribe() semantics.\n const _isServer = isServer ?? router.isServer\n\n if (_isServer) {\n const state = router.state as RouterState<TRouter['routeTree']>\n return Vue.ref(opts?.select ? opts.select(state) : state) as Vue.Ref<\n UseRouterStateResult<TRouter, TSelected>\n >\n }\n\n return useStore(router.__store, (state) => {\n if (opts?.select) return opts.select(state)\n\n return state\n }) as Vue.Ref<UseRouterStateResult<TRouter, TSelected>>\n}\n"],"mappings":";;;;;AAoBA,SAAgBI,eAIdC,MACmD;CACnD,MAAMC,gBAAgBH,UAAmB,EACvCI,MAAMF,MAAMG,WAAWC,KAAAA,GACxB,CAAC;CACF,MAAMD,SAASH,MAAMG,UAAUF;AAG/B,KAAI,CAACE,UAAU,CAACA,OAAOE,QACrB,QAAOT,IAAIU,IAAIF,KAAAA,EAAU;AAU3B,KAFkBP,YAAYM,OAAON,UAEtB;EACb,MAAMW,QAAQL,OAAOK;AACrB,SAAOZ,IAAIU,IAAIN,MAAMS,SAAST,KAAKS,OAAOD,MAAM,GAAGA,MAAM;;AAK3D,QAAOb,SAASQ,OAAOE,UAAUG,UAAU;AACzC,MAAIR,MAAMS,OAAQ,QAAOT,KAAKS,OAAOD,MAAM;AAE3C,SAAOA;GACP"}
1
+ {"version":3,"file":"useRouterState.js","names":["Vue","isServer","useStore","useRouter","useRouterState","opts","contextRouter","warn","router","undefined","stores","__store","ref","_isServer","state","select"],"sources":["../../src/useRouterState.tsx"],"sourcesContent":["import * as Vue from 'vue'\nimport { isServer } from '@tanstack/router-core/isServer'\nimport { useStore } from '@tanstack/vue-store'\nimport { useRouter } from './useRouter'\nimport type {\n AnyRouter,\n RegisteredRouter,\n RouterState,\n} from '@tanstack/router-core'\n\nexport type UseRouterStateOptions<TRouter extends AnyRouter, TSelected> = {\n router?: TRouter\n select?: (state: RouterState<TRouter['routeTree']>) => TSelected\n}\n\nexport type UseRouterStateResult<\n TRouter extends AnyRouter,\n TSelected,\n> = unknown extends TSelected ? RouterState<TRouter['routeTree']> : TSelected\n\nexport function useRouterState<\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseRouterStateOptions<TRouter, TSelected>,\n): Vue.Ref<UseRouterStateResult<TRouter, TSelected>> {\n const contextRouter = useRouter<TRouter>({\n warn: opts?.router === undefined,\n })\n const router = opts?.router || contextRouter\n\n // Return a safe default if router is undefined\n if (!router || !router.stores.__store) {\n return Vue.ref(undefined) as Vue.Ref<\n UseRouterStateResult<TRouter, TSelected>\n >\n }\n\n // During SSR we render exactly once and do not need reactivity.\n // Avoid subscribing to the store on the server since the server store\n // implementation does not provide subscribe() semantics.\n const _isServer = isServer ?? router.isServer\n\n if (_isServer) {\n const state = router.stores.__store.state as RouterState<\n TRouter['routeTree']\n >\n return Vue.ref(opts?.select ? opts.select(state) : state) as Vue.Ref<\n UseRouterStateResult<TRouter, TSelected>\n >\n }\n\n return useStore(router.stores.__store, (state) => {\n if (opts?.select) return opts.select(state)\n\n return state\n }) as Vue.Ref<UseRouterStateResult<TRouter, TSelected>>\n}\n"],"mappings":";;;;;AAoBA,SAAgBI,eAIdC,MACmD;CACnD,MAAMC,gBAAgBH,UAAmB,EACvCI,MAAMF,MAAMG,WAAWC,KAAAA,GACxB,CAAC;CACF,MAAMD,SAASH,MAAMG,UAAUF;AAG/B,KAAI,CAACE,UAAU,CAACA,OAAOE,OAAOC,QAC5B,QAAOX,IAAIY,IAAIH,KAAAA,EAAU;AAU3B,KAFkBR,YAAYO,OAAOP,UAEtB;EACb,MAAMa,QAAQN,OAAOE,OAAOC,QAAQG;AAGpC,SAAOd,IAAIY,IAAIP,MAAMU,SAASV,KAAKU,OAAOD,MAAM,GAAGA,MAAM;;AAK3D,QAAOZ,SAASM,OAAOE,OAAOC,UAAUG,UAAU;AAChD,MAAIT,MAAMU,OAAQ,QAAOV,KAAKU,OAAOD,MAAM;AAE3C,SAAOA;GACP"}
@@ -3,12 +3,12 @@ import invariant from 'tiny-invariant';
3
3
  import warning from 'tiny-warning';
4
4
  import { createControlledPromise, getLocationChangeInfo, isNotFound, isRedirect, rootRouteId, } from '@tanstack/router-core';
5
5
  import { isServer } from '@tanstack/router-core/isServer';
6
+ import { useStore } from '@tanstack/vue-store';
6
7
  import { CatchBoundary, ErrorComponent } from './CatchBoundary';
7
8
  import { ClientOnly } from './ClientOnly';
8
- import { useRouterState } from './useRouterState';
9
9
  import { useRouter } from './useRouter';
10
10
  import { CatchNotFound } from './not-found';
11
- import { matchContext } from './matchContext';
11
+ import { matchContext, pendingMatchContext, routeIdContext, } from './matchContext';
12
12
  import { renderRouteNotFound } from './renderRouteNotFound';
13
13
  import { ScrollRestoration } from './scroll-restoration';
14
14
  export const Match = Vue.defineComponent({
@@ -21,45 +21,33 @@ export const Match = Vue.defineComponent({
21
21
  },
22
22
  setup(props) {
23
23
  const router = useRouter();
24
- // Track the last known routeId to handle stale props during same-route transitions
25
- let lastKnownRouteId = null;
26
- // Combined selector that returns all needed data including the actual matchId
27
- // This handles stale props.matchId during same-route transitions
28
- const matchData = useRouterState({
29
- select: (s) => {
30
- // First try to find match by props.matchId
31
- let match = s.matches.find((d) => d.id === props.matchId);
32
- let matchIndex = match
33
- ? s.matches.findIndex((d) => d.id === props.matchId)
34
- : -1;
35
- // If match found, update lastKnownRouteId
36
- if (match) {
37
- lastKnownRouteId = match.routeId;
38
- }
39
- else if (lastKnownRouteId) {
40
- // Match not found - props.matchId might be stale during a same-route transition
41
- // Try to find the NEW match by routeId
42
- match = s.matches.find((d) => d.routeId === lastKnownRouteId);
43
- matchIndex = match
44
- ? s.matches.findIndex((d) => d.routeId === lastKnownRouteId)
45
- : -1;
46
- }
47
- if (!match) {
48
- return null;
49
- }
50
- const routeId = match.routeId;
51
- const parentRouteId = matchIndex > 0 ? s.matches[matchIndex - 1]?.routeId : null;
52
- return {
53
- matchId: match.id, // Return the actual matchId (may differ from props.matchId)
54
- routeId,
55
- parentRouteId,
56
- loadedAt: s.loadedAt,
57
- ssr: match.ssr,
58
- _displayPending: match._displayPending,
59
- };
60
- },
24
+ // Derive routeId from initial props.matchId stable for this component's
25
+ // lifetime. The routeId never changes for a given route position in the
26
+ // tree, even when matchId changes (loaderDepsHash, etc).
27
+ const routeId = router.stores.activeMatchStoresById.get(props.matchId)?.routeId;
28
+ invariant(routeId, `Could not find routeId for matchId "${props.matchId}". Please file an issue!`);
29
+ // Static route-tree check: is this route a direct child of the root?
30
+ // parentRoute is set at build time, so no reactive tracking needed.
31
+ const isChildOfRoot = router.routesById[routeId]?.parentRoute?.id === rootRouteId;
32
+ // Single stable store subscription — getMatchStoreByRouteId returns a
33
+ // cached computed store that resolves routeId → current match state
34
+ // through the signal graph. No bridge needed.
35
+ const activeMatch = useStore(router.stores.getMatchStoreByRouteId(routeId), (value) => value);
36
+ const isPendingMatchRef = useStore(router.stores.pendingRouteIds, (pendingRouteIds) => Boolean(pendingRouteIds[routeId]), { equal: Object.is });
37
+ const loadedAt = useStore(router.stores.loadedAt, (value) => value);
38
+ const matchData = Vue.computed(() => {
39
+ const match = activeMatch.value;
40
+ if (!match) {
41
+ return null;
42
+ }
43
+ return {
44
+ matchId: match.id,
45
+ routeId,
46
+ loadedAt: loadedAt.value,
47
+ ssr: match.ssr,
48
+ _displayPending: match._displayPending,
49
+ };
61
50
  });
62
- invariant(matchData.value, `Could not find routeId for matchId "${props.matchId}". Please file an issue!`);
63
51
  const route = Vue.computed(() => matchData.value ? router.routesById[matchData.value.routeId] : null);
64
52
  const PendingComponent = Vue.computed(() => route.value?.options?.pendingComponent ??
65
53
  router?.options?.defaultPendingComponent);
@@ -80,20 +68,15 @@ export const Match = Vue.defineComponent({
80
68
  const ShellComponent = Vue.computed(() => hasShellComponent.value
81
69
  ? route.value.options.shellComponent
82
70
  : null);
83
- // Create a ref for the current matchId that we provide to child components
84
- // This ref is updated to the ACTUAL matchId found (which may differ from props during transitions)
85
- const matchIdRef = Vue.ref(matchData.value?.matchId ?? props.matchId);
86
- // Watch both props.matchId and matchData to keep matchIdRef in sync
87
- // This ensures Outlet gets the correct matchId even during transitions
88
- Vue.watch([() => props.matchId, () => matchData.value?.matchId], ([propsMatchId, dataMatchId]) => {
89
- // Prefer the matchId from matchData (which handles fallback)
90
- // Fall back to props.matchId if matchData is null
91
- matchIdRef.value = dataMatchId ?? propsMatchId;
92
- }, { immediate: true });
93
- // Provide the matchId to child components
71
+ // Provide routeId context (stable string) for children.
72
+ // MatchInner, Outlet, and useMatch all consume this.
73
+ Vue.provide(routeIdContext, routeId);
74
+ // Provide reactive nearest-match context for hooks that slice the active
75
+ // matches array relative to the current match.
76
+ const matchIdRef = Vue.computed(() => activeMatch.value?.id ?? props.matchId);
94
77
  Vue.provide(matchContext, matchIdRef);
78
+ Vue.provide(pendingMatchContext, isPendingMatchRef);
95
79
  return () => {
96
- // Use the actual matchId from matchData, not props (which may be stale)
97
80
  const actualMatchId = matchData.value?.matchId ?? props.matchId;
98
81
  const resolvedNoSsr = matchData.value?.ssr === false || matchData.value?.ssr === 'data-only';
99
82
  const shouldClientOnly = resolvedNoSsr || !!matchData.value?._displayPending;
@@ -139,8 +122,7 @@ export const Match = Vue.defineComponent({
139
122
  // Add scroll restoration if needed
140
123
  const withScrollRestoration = [
141
124
  content,
142
- matchData.value?.parentRouteId === rootRouteId &&
143
- router.options.scrollRestoration
125
+ isChildOfRoot && router.options.scrollRestoration
144
126
  ? Vue.h(Vue.Fragment, null, [
145
127
  Vue.h(OnRendered),
146
128
  Vue.h(ScrollRestoration),
@@ -167,7 +149,7 @@ export const Match = Vue.defineComponent({
167
149
  // On Rendered can't happen above the root layout because it actually
168
150
  // renders a dummy dom element to track the rendered state of the app.
169
151
  // We render a script tag with a key that changes based on the current
170
- // location state.key. Also, because it's below the root layout, it
152
+ // location state.__TSR_key. Also, because it's below the root layout, it
171
153
  // allows us to fire onRendered events even after a hydration mismatch
172
154
  // error that occurred above the root layout (like bad head/link tags,
173
155
  // which is common).
@@ -175,19 +157,20 @@ const OnRendered = Vue.defineComponent({
175
157
  name: 'OnRendered',
176
158
  setup() {
177
159
  const router = useRouter();
178
- const location = useRouterState({
179
- select: (s) => {
180
- return s.resolvedLocation?.state.key;
181
- },
182
- });
183
- Vue.watchEffect(() => {
160
+ const location = useStore(router.stores.resolvedLocation, (resolvedLocation) => resolvedLocation?.state.__TSR_key);
161
+ let prevHref;
162
+ Vue.watch(location, () => {
184
163
  if (location.value) {
185
- router.emit({
186
- type: 'onRendered',
187
- ...getLocationChangeInfo(router.state),
188
- });
164
+ const currentHref = router.latestLocation.href;
165
+ if (prevHref === undefined || prevHref !== currentHref) {
166
+ router.emit({
167
+ type: 'onRendered',
168
+ ...getLocationChangeInfo(router.stores.location.state, router.stores.resolvedLocation.state),
169
+ });
170
+ prevHref = currentHref;
171
+ }
189
172
  }
190
- });
173
+ }, { immediate: true });
191
174
  return () => null;
192
175
  },
193
176
  });
@@ -201,59 +184,43 @@ export const MatchInner = Vue.defineComponent({
201
184
  },
202
185
  setup(props) {
203
186
  const router = useRouter();
204
- // Track the last known routeId to handle stale props during same-route transitions
205
- // This is stored outside the selector so it persists across selector calls
206
- let lastKnownRouteId = null;
187
+ // Use routeId from context (provided by parent Match) stable string.
188
+ const routeId = Vue.inject(routeIdContext);
189
+ const activeMatch = useStore(router.stores.getMatchStoreByRouteId(routeId), (value) => value);
207
190
  // Combined selector for match state AND remount key
208
191
  // This ensures both are computed in the same selector call with consistent data
209
- const combinedState = useRouterState({
210
- select: (s) => {
211
- // First try to find match by props.matchId
212
- let match = s.matches.find((d) => d.id === props.matchId);
213
- // If match found, update lastKnownRouteId
214
- if (match) {
215
- lastKnownRouteId = match.routeId;
216
- }
217
- else if (lastKnownRouteId) {
218
- // Match not found - props.matchId might be stale during a same-route transition
219
- // (matchId changed due to loaderDepsHash but props haven't updated yet)
220
- // Try to find the NEW match by routeId and use that instead
221
- const sameRouteMatch = s.matches.find((d) => d.routeId === lastKnownRouteId);
222
- if (sameRouteMatch) {
223
- match = sameRouteMatch;
224
- }
225
- }
226
- if (!match) {
227
- // Route no longer exists - truly navigating away
228
- return null;
229
- }
230
- const routeId = match.routeId;
231
- // Compute remount key
232
- const remountFn = router.routesById[routeId].options.remountDeps ??
233
- router.options.defaultRemountDeps;
234
- let remountKey;
235
- if (remountFn) {
236
- const remountDeps = remountFn({
237
- routeId,
238
- loaderDeps: match.loaderDeps,
239
- params: match._strictParams,
240
- search: match._strictSearch,
241
- });
242
- remountKey = remountDeps ? JSON.stringify(remountDeps) : undefined;
243
- }
244
- return {
245
- routeId,
246
- match: {
247
- id: match.id,
248
- status: match.status,
249
- error: match.error,
250
- ssr: match.ssr,
251
- _forcePending: match._forcePending,
252
- _displayPending: match._displayPending,
253
- },
254
- remountKey,
255
- };
256
- },
192
+ const combinedState = Vue.computed(() => {
193
+ const match = activeMatch.value;
194
+ if (!match) {
195
+ // Route no longer exists - truly navigating away
196
+ return null;
197
+ }
198
+ const matchRouteId = match.routeId;
199
+ // Compute remount key
200
+ const remountFn = router.routesById[matchRouteId].options.remountDeps ??
201
+ router.options.defaultRemountDeps;
202
+ let remountKey;
203
+ if (remountFn) {
204
+ const remountDeps = remountFn({
205
+ routeId: matchRouteId,
206
+ loaderDeps: match.loaderDeps,
207
+ params: match._strictParams,
208
+ search: match._strictSearch,
209
+ });
210
+ remountKey = remountDeps ? JSON.stringify(remountDeps) : undefined;
211
+ }
212
+ return {
213
+ routeId: matchRouteId,
214
+ match: {
215
+ id: match.id,
216
+ status: match.status,
217
+ error: match.error,
218
+ ssr: match.ssr,
219
+ _forcePending: match._forcePending,
220
+ _displayPending: match._displayPending,
221
+ },
222
+ remountKey,
223
+ };
257
224
  });
258
225
  const route = Vue.computed(() => {
259
226
  if (!combinedState.value)
@@ -348,42 +315,40 @@ export const Outlet = Vue.defineComponent({
348
315
  name: 'Outlet',
349
316
  setup() {
350
317
  const router = useRouter();
351
- const matchId = Vue.inject(matchContext);
352
- const safeMatchId = Vue.computed(() => matchId?.value || '');
353
- const routeId = useRouterState({
354
- select: (s) => s.matches.find((d) => d.id === safeMatchId.value)?.routeId,
355
- });
356
- const route = Vue.computed(() => router.routesById[routeId.value]);
357
- const parentGlobalNotFound = useRouterState({
358
- select: (s) => {
359
- const matches = s.matches;
360
- const parentMatch = matches.find((d) => d.id === safeMatchId.value);
361
- // During navigation transitions, parent match can be temporarily removed
362
- // Return false to avoid errors - the component will handle this gracefully
363
- if (!parentMatch) {
364
- return false;
365
- }
366
- return parentMatch.globalNotFound;
367
- },
368
- });
369
- const childMatchData = useRouterState({
370
- select: (s) => {
371
- const matches = s.matches;
372
- const index = matches.findIndex((d) => d.id === safeMatchId.value);
373
- const child = matches[index + 1];
374
- if (!child)
375
- return null;
376
- return {
377
- id: child.id,
378
- // Key based on routeId + params only (not loaderDeps)
379
- // This ensures component recreates when params change,
380
- // but NOT when only loaderDeps change
381
- paramsKey: child.routeId + JSON.stringify(child._strictParams),
382
- };
383
- },
318
+ const parentRouteId = Vue.inject(routeIdContext);
319
+ if (!parentRouteId) {
320
+ return () => null;
321
+ }
322
+ // Parent state via stable routeId store — single subscription
323
+ const parentMatch = useStore(router.stores.getMatchStoreByRouteId(parentRouteId), (v) => v);
324
+ const route = Vue.computed(() => parentMatch.value
325
+ ? router.routesById[parentMatch.value.routeId]
326
+ : undefined);
327
+ const parentGlobalNotFound = Vue.computed(() => parentMatch.value?.globalNotFound ?? false);
328
+ // Child match lookup: read the child matchId from the shared derived
329
+ // map (one reactive node for the whole tree), then grab match state
330
+ // directly from the pool.
331
+ const childMatchIdMap = useStore(router.stores.childMatchIdByRouteId, (v) => v);
332
+ const childMatchData = Vue.computed(() => {
333
+ const childId = childMatchIdMap.value[parentRouteId];
334
+ if (!childId)
335
+ return null;
336
+ const child = router.stores.activeMatchStoresById.get(childId)?.state;
337
+ if (!child)
338
+ return null;
339
+ return {
340
+ id: child.id,
341
+ // Key based on routeId + params only (not loaderDeps)
342
+ // This ensures component recreates when params change,
343
+ // but NOT when only loaderDeps change
344
+ paramsKey: child.routeId + JSON.stringify(child._strictParams),
345
+ };
384
346
  });
385
347
  return () => {
386
348
  if (parentGlobalNotFound.value) {
349
+ if (!route.value) {
350
+ return null;
351
+ }
387
352
  return renderRouteNotFound(router, route.value, undefined);
388
353
  }
389
354
  if (!childMatchData.value) {
@@ -393,15 +358,12 @@ export const Outlet = Vue.defineComponent({
393
358
  matchId: childMatchData.value.id,
394
359
  key: childMatchData.value.paramsKey,
395
360
  });
396
- if (safeMatchId.value === rootRouteId) {
397
- return Vue.h(Vue.Suspense, {
398
- fallback: router.options.defaultPendingComponent
399
- ? Vue.h(router.options.defaultPendingComponent)
400
- : null,
401
- }, {
402
- default: () => nextMatch,
403
- });
404
- }
361
+ // Note: We intentionally do NOT wrap in Suspense here.
362
+ // The top-level Suspense in Matches already covers the root.
363
+ // The old code compared matchId (e.g. "__root__/") with rootRouteId ("__root__")
364
+ // which never matched, so this Suspense was effectively dead code.
365
+ // With routeId-based lookup, parentRouteId === rootRouteId would match,
366
+ // causing a double-Suspense that corrupts Vue's DOM during updates.
405
367
  return nextMatch;
406
368
  };
407
369
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Match.jsx","sourceRoot":"","sources":["../../src/Match.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Match.jsx","sourceRoot":"","sources":["../../src/Match.tsx"],"names":[],"mappings":"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"}