@tanstack/vue-router 1.167.5 → 1.168.0
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.
- package/dist/esm/Match.js +55 -61
- package/dist/esm/Match.js.map +1 -1
- package/dist/esm/Matches.js +8 -15
- package/dist/esm/Matches.js.map +1 -1
- package/dist/esm/Scripts.js +7 -6
- package/dist/esm/Scripts.js.map +1 -1
- package/dist/esm/Transitioner.js +18 -24
- package/dist/esm/Transitioner.js.map +1 -1
- package/dist/esm/headContentUtils.js +13 -15
- package/dist/esm/headContentUtils.js.map +1 -1
- package/dist/esm/index.dev.js +6 -6
- package/dist/esm/index.js +6 -6
- package/dist/esm/link.js +242 -178
- package/dist/esm/link.js.map +1 -1
- package/dist/esm/matchContext.d.ts +8 -14
- package/dist/esm/matchContext.js +11 -9
- package/dist/esm/matchContext.js.map +1 -1
- package/dist/esm/not-found.js +6 -3
- package/dist/esm/not-found.js.map +1 -1
- package/dist/esm/router.js +2 -1
- package/dist/esm/router.js.map +1 -1
- package/dist/esm/routerStores.d.ts +13 -0
- package/dist/esm/routerStores.js +33 -0
- package/dist/esm/routerStores.js.map +1 -0
- package/dist/esm/ssr/RouterClient.js +1 -1
- package/dist/esm/ssr/RouterClient.js.map +1 -1
- package/dist/esm/ssr/renderRouterToStream.js +2 -2
- package/dist/esm/ssr/renderRouterToStream.js.map +1 -1
- package/dist/esm/ssr/renderRouterToString.js +1 -1
- package/dist/esm/ssr/renderRouterToString.js.map +1 -1
- package/dist/esm/useCanGoBack.d.ts +1 -1
- package/dist/esm/useCanGoBack.js +3 -2
- package/dist/esm/useCanGoBack.js.map +1 -1
- package/dist/esm/useLocation.js +3 -2
- package/dist/esm/useLocation.js.map +1 -1
- package/dist/esm/useMatch.js +29 -19
- package/dist/esm/useMatch.js.map +1 -1
- package/dist/esm/useRouterState.js +4 -4
- package/dist/esm/useRouterState.js.map +1 -1
- package/dist/source/Match.jsx +121 -159
- package/dist/source/Match.jsx.map +1 -1
- package/dist/source/Matches.jsx +11 -28
- package/dist/source/Matches.jsx.map +1 -1
- package/dist/source/Scripts.jsx +32 -35
- package/dist/source/Scripts.jsx.map +1 -1
- package/dist/source/Transitioner.jsx +19 -21
- package/dist/source/Transitioner.jsx.map +1 -1
- package/dist/source/headContentUtils.jsx +51 -61
- package/dist/source/headContentUtils.jsx.map +1 -1
- package/dist/source/link.jsx +298 -249
- package/dist/source/link.jsx.map +1 -1
- package/dist/source/matchContext.d.ts +8 -14
- package/dist/source/matchContext.jsx +17 -23
- package/dist/source/matchContext.jsx.map +1 -1
- package/dist/source/not-found.jsx +6 -5
- package/dist/source/not-found.jsx.map +1 -1
- package/dist/source/router.js +2 -1
- package/dist/source/router.js.map +1 -1
- package/dist/source/routerStores.d.ts +13 -0
- package/dist/source/routerStores.js +37 -0
- package/dist/source/routerStores.js.map +1 -0
- package/dist/source/ssr/RouterClient.jsx +1 -1
- package/dist/source/ssr/RouterClient.jsx.map +1 -1
- package/dist/source/ssr/renderRouterToStream.jsx +2 -2
- package/dist/source/ssr/renderRouterToStream.jsx.map +1 -1
- package/dist/source/ssr/renderRouterToString.jsx +1 -1
- package/dist/source/ssr/renderRouterToString.jsx.map +1 -1
- package/dist/source/useCanGoBack.d.ts +1 -1
- package/dist/source/useCanGoBack.js +4 -2
- package/dist/source/useCanGoBack.js.map +1 -1
- package/dist/source/useLocation.jsx +4 -4
- package/dist/source/useLocation.jsx.map +1 -1
- package/dist/source/useMatch.jsx +60 -38
- package/dist/source/useMatch.jsx.map +1 -1
- package/dist/source/useRouterState.jsx +4 -4
- package/dist/source/useRouterState.jsx.map +1 -1
- package/package.json +2 -2
- package/skills/vue-router/SKILL.md +3 -0
- package/src/Match.tsx +168 -180
- package/src/Matches.tsx +18 -31
- package/src/Scripts.tsx +40 -40
- package/src/Transitioner.tsx +35 -23
- package/src/headContentUtils.tsx +101 -107
- package/src/link.tsx +445 -300
- package/src/matchContext.tsx +23 -25
- package/src/not-found.tsx +9 -5
- package/src/router.ts +2 -1
- package/src/routerStores.ts +54 -0
- package/src/ssr/RouterClient.tsx +1 -1
- package/src/ssr/renderRouterToStream.tsx +2 -2
- package/src/ssr/renderRouterToString.tsx +1 -1
- package/src/useCanGoBack.ts +7 -2
- package/src/useLocation.tsx +8 -5
- package/src/useMatch.tsx +95 -49
- package/src/useRouterState.tsx +6 -4
package/dist/esm/useMatch.js
CHANGED
|
@@ -1,28 +1,38 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
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
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const match =
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
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
|
-
|
|
35
|
+
result.value;
|
|
26
36
|
return result;
|
|
27
37
|
}
|
|
28
38
|
//#endregion
|
package/dist/esm/useMatch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMatch.js","names":["Vue","
|
|
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":["
|
|
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"}
|
package/dist/source/Match.jsx
CHANGED
|
@@ -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
|
-
//
|
|
25
|
-
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
//
|
|
84
|
-
//
|
|
85
|
-
|
|
86
|
-
//
|
|
87
|
-
//
|
|
88
|
-
Vue.
|
|
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
|
-
|
|
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.
|
|
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 =
|
|
179
|
-
|
|
180
|
-
|
|
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.
|
|
186
|
-
|
|
187
|
-
|
|
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
|
-
//
|
|
205
|
-
|
|
206
|
-
|
|
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 =
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
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
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
const
|
|
357
|
-
const
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
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
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
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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"}
|