@tanstack/vue-router 1.162.1 → 1.162.4
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/index.d.ts +0 -1
- package/dist/esm/index.dev.js +0 -2
- package/dist/esm/index.dev.js.map +1 -1
- package/dist/esm/index.js +0 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/routerContext.d.ts +1 -11
- package/dist/esm/routerContext.js +4 -15
- package/dist/esm/routerContext.js.map +1 -1
- package/dist/esm/useRouter.js +2 -2
- package/dist/esm/useRouter.js.map +1 -1
- package/dist/source/index.d.ts +0 -1
- package/dist/source/index.jsx +0 -2
- package/dist/source/index.jsx.map +1 -1
- package/dist/source/routerContext.d.ts +1 -11
- package/dist/source/routerContext.jsx +3 -21
- package/dist/source/routerContext.jsx.map +1 -1
- package/dist/source/useRouter.jsx +2 -2
- package/dist/source/useRouter.jsx.map +1 -1
- package/package.json +3 -3
- package/src/index.tsx +0 -4
- package/src/routerContext.tsx +3 -30
- package/src/useRouter.tsx +2 -2
package/dist/esm/index.d.ts
CHANGED
|
@@ -31,7 +31,6 @@ export { useBlocker, Block } from './useBlocker.js';
|
|
|
31
31
|
export { useNavigate, Navigate } from './useNavigate.js';
|
|
32
32
|
export { useParams } from './useParams.js';
|
|
33
33
|
export { useSearch } from './useSearch.js';
|
|
34
|
-
export { getRouterContext, } from './routerContext.js';
|
|
35
34
|
export { useRouteContext } from './useRouteContext.js';
|
|
36
35
|
export { useRouter } from './useRouter.js';
|
|
37
36
|
export { useRouterState } from './useRouterState.js';
|
package/dist/esm/index.dev.js
CHANGED
|
@@ -19,7 +19,6 @@ import { Block, useBlocker } from "./useBlocker.js";
|
|
|
19
19
|
import { Navigate, useNavigate } from "./useNavigate.js";
|
|
20
20
|
import { useParams } from "./useParams.js";
|
|
21
21
|
import { useSearch } from "./useSearch.js";
|
|
22
|
-
import { getRouterContext } from "./routerContext.js";
|
|
23
22
|
import { useRouteContext } from "./useRouteContext.js";
|
|
24
23
|
import { useRouter } from "./useRouter.js";
|
|
25
24
|
import { useRouterState } from "./useRouterState.js";
|
|
@@ -97,7 +96,6 @@ export {
|
|
|
97
96
|
functionalUpdate,
|
|
98
97
|
getInitialRouterState,
|
|
99
98
|
getRouteApi,
|
|
100
|
-
getRouterContext,
|
|
101
99
|
interpolatePath,
|
|
102
100
|
isMatch,
|
|
103
101
|
isNotFound,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.dev.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.dev.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/esm/index.js
CHANGED
|
@@ -19,7 +19,6 @@ import { Block, useBlocker } from "./useBlocker.js";
|
|
|
19
19
|
import { Navigate, useNavigate } from "./useNavigate.js";
|
|
20
20
|
import { useParams } from "./useParams.js";
|
|
21
21
|
import { useSearch } from "./useSearch.js";
|
|
22
|
-
import { getRouterContext } from "./routerContext.js";
|
|
23
22
|
import { useRouteContext } from "./useRouteContext.js";
|
|
24
23
|
import { useRouter } from "./useRouter.js";
|
|
25
24
|
import { useRouterState } from "./useRouterState.js";
|
|
@@ -97,7 +96,6 @@ export {
|
|
|
97
96
|
functionalUpdate,
|
|
98
97
|
getInitialRouterState,
|
|
99
98
|
getRouteApi,
|
|
100
|
-
getRouterContext,
|
|
101
99
|
interpolatePath,
|
|
102
100
|
isMatch,
|
|
103
101
|
isNotFound,
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
import { AnyRouter } from '@tanstack/router-core';
|
|
2
2
|
import * as Vue from 'vue';
|
|
3
|
-
export declare const
|
|
4
|
-
declare global {
|
|
5
|
-
interface Window {
|
|
6
|
-
__TSR_ROUTER_CONTEXT__?: Vue.InjectionKey<AnyRouter>;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Gets the router context, handling server-side rendering
|
|
11
|
-
* and ensuring a single instance across the application
|
|
12
|
-
*/
|
|
13
|
-
export declare function getRouterContext(): Vue.InjectionKey<AnyRouter>;
|
|
3
|
+
export declare const routerContext: Vue.InjectionKey<AnyRouter>;
|
|
14
4
|
/**
|
|
15
5
|
* Provides the router to all child components
|
|
16
6
|
*/
|
|
@@ -1,21 +1,10 @@
|
|
|
1
1
|
import * as Vue from "vue";
|
|
2
|
-
const
|
|
3
|
-
function getRouterContext() {
|
|
4
|
-
if (typeof document === "undefined") {
|
|
5
|
-
return RouterSymbol;
|
|
6
|
-
}
|
|
7
|
-
if (window.__TSR_ROUTER_CONTEXT__) {
|
|
8
|
-
return window.__TSR_ROUTER_CONTEXT__;
|
|
9
|
-
}
|
|
10
|
-
window.__TSR_ROUTER_CONTEXT__ = RouterSymbol;
|
|
11
|
-
return RouterSymbol;
|
|
12
|
-
}
|
|
2
|
+
const routerContext = /* @__PURE__ */ Symbol("TanStackRouter");
|
|
13
3
|
function provideRouter(router) {
|
|
14
|
-
Vue.provide(
|
|
4
|
+
Vue.provide(routerContext, router);
|
|
15
5
|
}
|
|
16
6
|
export {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
provideRouter
|
|
7
|
+
provideRouter,
|
|
8
|
+
routerContext
|
|
20
9
|
};
|
|
21
10
|
//# sourceMappingURL=routerContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routerContext.js","sources":["../../src/routerContext.tsx"],"sourcesContent":["import * as Vue from 'vue'\nimport type { AnyRouter } from '@tanstack/router-core'\n\
|
|
1
|
+
{"version":3,"file":"routerContext.js","sources":["../../src/routerContext.tsx"],"sourcesContent":["import * as Vue from 'vue'\nimport type { AnyRouter } from '@tanstack/router-core'\n\nexport const routerContext = Symbol(\n 'TanStackRouter',\n) as Vue.InjectionKey<AnyRouter>\n\n/**\n * Provides the router to all child components\n */\nexport function provideRouter(router: AnyRouter): void {\n Vue.provide(routerContext, router)\n}\n\n/**\n * Injects the router from the component tree\n */\nexport function injectRouter(): AnyRouter {\n const router = Vue.inject<AnyRouter | null>(routerContext, null)\n if (!router) {\n throw new Error(\n 'No TanStack Router found in component tree. Did you forget to add a RouterProvider component?',\n )\n }\n return router\n}\n"],"names":["routerContext","Symbol","provideRouter","router","Vue","provide"],"mappings":";MAGaA,gBAAgBC,uBAC3B,gBACF;AAKO,SAASC,cAAcC,QAAyB;AACrDC,MAAIC,QAAQL,eAAeG,MAAM;AACnC;"}
|
package/dist/esm/useRouter.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as Vue from "vue";
|
|
2
2
|
import warning from "tiny-warning";
|
|
3
|
-
import {
|
|
3
|
+
import { routerContext } from "./routerContext.js";
|
|
4
4
|
function useRouter(opts) {
|
|
5
|
-
const value = Vue.inject(
|
|
5
|
+
const value = Vue.inject(routerContext, null);
|
|
6
6
|
warning(!((opts?.warn ?? true) && !value), "useRouter must be used inside a <RouterProvider> component!");
|
|
7
7
|
return value;
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRouter.js","sources":["../../src/useRouter.tsx"],"sourcesContent":["import * as Vue from 'vue'\nimport warning from 'tiny-warning'\nimport {
|
|
1
|
+
{"version":3,"file":"useRouter.js","sources":["../../src/useRouter.tsx"],"sourcesContent":["import * as Vue from 'vue'\nimport warning from 'tiny-warning'\nimport { routerContext } from './routerContext'\nimport type { AnyRouter, RegisteredRouter } from '@tanstack/router-core'\n\nexport function useRouter<TRouter extends AnyRouter = RegisteredRouter>(opts?: {\n warn?: boolean\n}): TRouter {\n const value = Vue.inject(routerContext as any, null)\n warning(\n !((opts?.warn ?? true) && !value),\n 'useRouter must be used inside a <RouterProvider> component!',\n )\n return value as any\n}\n"],"names":["useRouter","opts","value","Vue","inject","routerContext","warning","warn"],"mappings":";;;AAKO,SAASA,UAAwDC,MAE5D;AACV,QAAMC,QAAQC,IAAIC,OAAOC,eAAsB,IAAI;AACnDC,UACE,GAAGL,MAAMM,QAAQ,SAAS,CAACL,QAC3B,6DACF;AACA,SAAOA;AACT;"}
|
package/dist/source/index.d.ts
CHANGED
|
@@ -31,7 +31,6 @@ export { useBlocker, Block } from './useBlocker';
|
|
|
31
31
|
export { useNavigate, Navigate } from './useNavigate';
|
|
32
32
|
export { useParams } from './useParams';
|
|
33
33
|
export { useSearch } from './useSearch';
|
|
34
|
-
export { getRouterContext, } from './routerContext';
|
|
35
34
|
export { useRouteContext } from './useRouteContext';
|
|
36
35
|
export { useRouter } from './useRouter';
|
|
37
36
|
export { useRouterState } from './useRouterState';
|
package/dist/source/index.jsx
CHANGED
|
@@ -22,8 +22,6 @@ export { useBlocker, Block } from './useBlocker';
|
|
|
22
22
|
export { useNavigate, Navigate } from './useNavigate';
|
|
23
23
|
export { useParams } from './useParams';
|
|
24
24
|
export { useSearch } from './useSearch';
|
|
25
|
-
export { getRouterContext, // SSR
|
|
26
|
-
} from './routerContext';
|
|
27
25
|
export { useRouteContext } from './useRouteContext';
|
|
28
26
|
export { useRouter } from './useRouter';
|
|
29
27
|
export { useRouterState } from './useRouterState';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,oBAAoB,EACpB,OAAO,EACP,SAAS,EACT,SAAS,EACT,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,WAAW,EACX,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,SAAS,EACT,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAA;AAoF9B,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAU1B,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAG7C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAE/D,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,SAAS,EACT,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAA;AAEpB,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAoFpE,OAAO,EACL,OAAO,EACP,aAAa,EACb,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,eAAe,GAChB,MAAM,WAAW,CAAA;AAIlB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,OAAO,EACL,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,QAAQ,EACR,WAAW,EACX,KAAK,EACL,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,aAAa,GACd,MAAM,SAAS,CAAA;AAWhB,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAE/C,OAAO,EACL,cAAc,EACd,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,qBAAqB,GACtB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAGxE,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEhD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
import * as Vue from 'vue';
|
|
2
2
|
import type { AnyRouter } from '@tanstack/router-core';
|
|
3
|
-
export declare const
|
|
4
|
-
declare global {
|
|
5
|
-
interface Window {
|
|
6
|
-
__TSR_ROUTER_CONTEXT__?: Vue.InjectionKey<AnyRouter>;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Gets the router context, handling server-side rendering
|
|
11
|
-
* and ensuring a single instance across the application
|
|
12
|
-
*/
|
|
13
|
-
export declare function getRouterContext(): Vue.InjectionKey<AnyRouter>;
|
|
3
|
+
export declare const routerContext: Vue.InjectionKey<AnyRouter>;
|
|
14
4
|
/**
|
|
15
5
|
* Provides the router to all child components
|
|
16
6
|
*/
|
|
@@ -1,34 +1,16 @@
|
|
|
1
1
|
import * as Vue from 'vue';
|
|
2
|
-
|
|
3
|
-
export const RouterSymbol = Symbol('TanStackRouter');
|
|
4
|
-
/**
|
|
5
|
-
* Gets the router context, handling server-side rendering
|
|
6
|
-
* and ensuring a single instance across the application
|
|
7
|
-
*/
|
|
8
|
-
export function getRouterContext() {
|
|
9
|
-
if (typeof document === 'undefined') {
|
|
10
|
-
// For SSR, return the symbol directly
|
|
11
|
-
return RouterSymbol;
|
|
12
|
-
}
|
|
13
|
-
// In the browser, check if we have a cached context
|
|
14
|
-
if (window.__TSR_ROUTER_CONTEXT__) {
|
|
15
|
-
return window.__TSR_ROUTER_CONTEXT__;
|
|
16
|
-
}
|
|
17
|
-
// Create and cache the context
|
|
18
|
-
window.__TSR_ROUTER_CONTEXT__ = RouterSymbol;
|
|
19
|
-
return RouterSymbol;
|
|
20
|
-
}
|
|
2
|
+
export const routerContext = Symbol('TanStackRouter');
|
|
21
3
|
/**
|
|
22
4
|
* Provides the router to all child components
|
|
23
5
|
*/
|
|
24
6
|
export function provideRouter(router) {
|
|
25
|
-
Vue.provide(
|
|
7
|
+
Vue.provide(routerContext, router);
|
|
26
8
|
}
|
|
27
9
|
/**
|
|
28
10
|
* Injects the router from the component tree
|
|
29
11
|
*/
|
|
30
12
|
export function injectRouter() {
|
|
31
|
-
const router = Vue.inject(
|
|
13
|
+
const router = Vue.inject(routerContext, null);
|
|
32
14
|
if (!router) {
|
|
33
15
|
throw new Error('No TanStack Router found in component tree. Did you forget to add a RouterProvider component?');
|
|
34
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routerContext.jsx","sourceRoot":"","sources":["../../src/routerContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAG1B,
|
|
1
|
+
{"version":3,"file":"routerContext.jsx","sourceRoot":"","sources":["../../src/routerContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAG1B,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CACjC,gBAAgB,CACc,CAAA;AAEhC;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC7C,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAmB,aAAa,EAAE,IAAI,CAAC,CAAA;IAChE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as Vue from 'vue';
|
|
2
2
|
import warning from 'tiny-warning';
|
|
3
|
-
import {
|
|
3
|
+
import { routerContext } from './routerContext';
|
|
4
4
|
export function useRouter(opts) {
|
|
5
|
-
const value = Vue.inject(
|
|
5
|
+
const value = Vue.inject(routerContext, null);
|
|
6
6
|
warning(!((opts?.warn ?? true) && !value), 'useRouter must be used inside a <RouterProvider> component!');
|
|
7
7
|
return value;
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRouter.jsx","sourceRoot":"","sources":["../../src/useRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAC1B,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useRouter.jsx","sourceRoot":"","sources":["../../src/useRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAC1B,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAG/C,MAAM,UAAU,SAAS,CAA+C,IAEvE;IACC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,aAAoB,EAAE,IAAI,CAAC,CAAA;IACpD,OAAO,CACL,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EACjC,6DAA6D,CAC9D,CAAA;IACD,OAAO,KAAY,CAAA;AACrB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/vue-router",
|
|
3
|
-
"version": "1.162.
|
|
3
|
+
"version": "1.162.4",
|
|
4
4
|
"description": "Modern and scalable routing for Vue applications",
|
|
5
5
|
"author": "Tanner Linsley",
|
|
6
6
|
"license": "MIT",
|
|
@@ -63,8 +63,8 @@
|
|
|
63
63
|
"jsesc": "^3.0.2",
|
|
64
64
|
"tiny-invariant": "^1.3.3",
|
|
65
65
|
"tiny-warning": "^1.0.3",
|
|
66
|
-
"@tanstack/
|
|
67
|
-
"@tanstack/
|
|
66
|
+
"@tanstack/router-core": "1.162.2",
|
|
67
|
+
"@tanstack/history": "1.161.4"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
70
|
"@testing-library/jest-dom": "^6.6.3",
|
package/src/index.tsx
CHANGED
|
@@ -298,10 +298,6 @@ export { useNavigate, Navigate } from './useNavigate'
|
|
|
298
298
|
export { useParams } from './useParams'
|
|
299
299
|
export { useSearch } from './useSearch'
|
|
300
300
|
|
|
301
|
-
export {
|
|
302
|
-
getRouterContext, // SSR
|
|
303
|
-
} from './routerContext'
|
|
304
|
-
|
|
305
301
|
export { useRouteContext } from './useRouteContext'
|
|
306
302
|
export { useRouter } from './useRouter'
|
|
307
303
|
export { useRouterState } from './useRouterState'
|
package/src/routerContext.tsx
CHANGED
|
@@ -1,49 +1,22 @@
|
|
|
1
1
|
import * as Vue from 'vue'
|
|
2
2
|
import type { AnyRouter } from '@tanstack/router-core'
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
export const RouterSymbol = Symbol(
|
|
4
|
+
export const routerContext = Symbol(
|
|
6
5
|
'TanStackRouter',
|
|
7
6
|
) as Vue.InjectionKey<AnyRouter>
|
|
8
7
|
|
|
9
|
-
declare global {
|
|
10
|
-
interface Window {
|
|
11
|
-
__TSR_ROUTER_CONTEXT__?: Vue.InjectionKey<AnyRouter>
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Gets the router context, handling server-side rendering
|
|
17
|
-
* and ensuring a single instance across the application
|
|
18
|
-
*/
|
|
19
|
-
export function getRouterContext(): Vue.InjectionKey<AnyRouter> {
|
|
20
|
-
if (typeof document === 'undefined') {
|
|
21
|
-
// For SSR, return the symbol directly
|
|
22
|
-
return RouterSymbol
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// In the browser, check if we have a cached context
|
|
26
|
-
if (window.__TSR_ROUTER_CONTEXT__) {
|
|
27
|
-
return window.__TSR_ROUTER_CONTEXT__
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// Create and cache the context
|
|
31
|
-
window.__TSR_ROUTER_CONTEXT__ = RouterSymbol
|
|
32
|
-
return RouterSymbol
|
|
33
|
-
}
|
|
34
|
-
|
|
35
8
|
/**
|
|
36
9
|
* Provides the router to all child components
|
|
37
10
|
*/
|
|
38
11
|
export function provideRouter(router: AnyRouter): void {
|
|
39
|
-
Vue.provide(
|
|
12
|
+
Vue.provide(routerContext, router)
|
|
40
13
|
}
|
|
41
14
|
|
|
42
15
|
/**
|
|
43
16
|
* Injects the router from the component tree
|
|
44
17
|
*/
|
|
45
18
|
export function injectRouter(): AnyRouter {
|
|
46
|
-
const router = Vue.inject<AnyRouter | null>(
|
|
19
|
+
const router = Vue.inject<AnyRouter | null>(routerContext, null)
|
|
47
20
|
if (!router) {
|
|
48
21
|
throw new Error(
|
|
49
22
|
'No TanStack Router found in component tree. Did you forget to add a RouterProvider component?',
|
package/src/useRouter.tsx
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as Vue from 'vue'
|
|
2
2
|
import warning from 'tiny-warning'
|
|
3
|
-
import {
|
|
3
|
+
import { routerContext } from './routerContext'
|
|
4
4
|
import type { AnyRouter, RegisteredRouter } from '@tanstack/router-core'
|
|
5
5
|
|
|
6
6
|
export function useRouter<TRouter extends AnyRouter = RegisteredRouter>(opts?: {
|
|
7
7
|
warn?: boolean
|
|
8
8
|
}): TRouter {
|
|
9
|
-
const value = Vue.inject(
|
|
9
|
+
const value = Vue.inject(routerContext as any, null)
|
|
10
10
|
warning(
|
|
11
11
|
!((opts?.warn ?? true) && !value),
|
|
12
12
|
'useRouter must be used inside a <RouterProvider> component!',
|