@tanstack/solid-router 2.0.0-alpha.5 → 2.0.0-alpha.7
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/cjs/Asset.cjs +2 -2
- package/dist/cjs/Asset.cjs.map +1 -1
- package/dist/cjs/HeadContent.cjs +11 -1
- package/dist/cjs/HeadContent.cjs.map +1 -1
- package/dist/cjs/HeadContent.dev.cjs +11 -1
- package/dist/cjs/HeadContent.dev.cjs.map +1 -1
- package/dist/cjs/Match.cjs +265 -248
- package/dist/cjs/Match.cjs.map +1 -1
- package/dist/cjs/Match.d.cts +1 -3
- package/dist/cjs/Matches.cjs +35 -34
- package/dist/cjs/Matches.cjs.map +1 -1
- package/dist/cjs/RouterProvider.cjs +12 -8
- package/dist/cjs/RouterProvider.cjs.map +1 -1
- package/dist/cjs/RouterProvider.d.cts +1 -1
- package/dist/cjs/Scripts.cjs +23 -12
- package/dist/cjs/Scripts.cjs.map +1 -1
- package/dist/cjs/Scripts.d.cts +2 -1
- package/dist/cjs/Transitioner.cjs +57 -36
- package/dist/cjs/Transitioner.cjs.map +1 -1
- package/dist/cjs/headContentUtils.cjs +26 -23
- package/dist/cjs/headContentUtils.cjs.map +1 -1
- package/dist/cjs/headContentUtils.d.cts +2 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/index.dev.cjs +1 -1
- package/dist/cjs/link.cjs +143 -101
- package/dist/cjs/link.cjs.map +1 -1
- package/dist/cjs/matchContext.cjs +7 -5
- package/dist/cjs/matchContext.cjs.map +1 -1
- package/dist/cjs/matchContext.d.cts +8 -2
- package/dist/cjs/not-found.cjs +8 -4
- package/dist/cjs/not-found.cjs.map +1 -1
- package/dist/cjs/not-found.d.cts +1 -1
- package/dist/cjs/router.cjs +2 -1
- package/dist/cjs/router.cjs.map +1 -1
- package/dist/cjs/routerStores.cjs +75 -0
- package/dist/cjs/routerStores.cjs.map +1 -0
- package/dist/cjs/routerStores.d.cts +10 -0
- package/dist/cjs/ssr/RouterClient.cjs +1 -1
- package/dist/cjs/ssr/RouterClient.cjs.map +1 -1
- package/dist/cjs/ssr/renderRouterToStream.cjs +1 -1
- package/dist/cjs/ssr/renderRouterToStream.cjs.map +1 -1
- package/dist/cjs/ssr/renderRouterToString.cjs +1 -1
- package/dist/cjs/ssr/renderRouterToString.cjs.map +1 -1
- package/dist/cjs/useBlocker.cjs +12 -3
- package/dist/cjs/useBlocker.cjs.map +1 -1
- package/dist/cjs/useCanGoBack.cjs +6 -2
- package/dist/cjs/useCanGoBack.cjs.map +1 -1
- package/dist/cjs/useCanGoBack.d.cts +2 -1
- package/dist/cjs/useLoaderDeps.cjs +2 -3
- package/dist/cjs/useLoaderDeps.cjs.map +1 -1
- package/dist/cjs/useLocation.cjs +13 -2
- package/dist/cjs/useLocation.cjs.map +1 -1
- package/dist/cjs/useMatch.cjs +27 -15
- package/dist/cjs/useMatch.cjs.map +1 -1
- package/dist/cjs/useParams.cjs +1 -1
- package/dist/cjs/useParams.cjs.map +1 -1
- package/dist/cjs/useRouterState.cjs +12 -30
- package/dist/cjs/useRouterState.cjs.map +1 -1
- package/dist/cjs/useSearch.cjs +2 -1
- package/dist/cjs/useSearch.cjs.map +1 -1
- package/dist/cjs/utils.cjs +3 -17
- package/dist/cjs/utils.cjs.map +1 -1
- package/dist/cjs/utils.d.cts +0 -5
- package/dist/esm/Asset.js +6 -6
- package/dist/esm/Asset.js.map +1 -1
- package/dist/esm/HeadContent.dev.js +12 -2
- package/dist/esm/HeadContent.dev.js.map +1 -1
- package/dist/esm/HeadContent.js +12 -2
- package/dist/esm/HeadContent.js.map +1 -1
- package/dist/esm/Match.d.ts +1 -3
- package/dist/esm/Match.js +267 -250
- package/dist/esm/Match.js.map +1 -1
- package/dist/esm/Matches.js +40 -39
- package/dist/esm/Matches.js.map +1 -1
- package/dist/esm/RouterProvider.d.ts +1 -1
- package/dist/esm/RouterProvider.js +10 -7
- package/dist/esm/RouterProvider.js.map +1 -1
- package/dist/esm/ScriptOnce.js +2 -2
- package/dist/esm/ScriptOnce.js.map +1 -1
- package/dist/esm/Scripts.d.ts +2 -1
- package/dist/esm/Scripts.js +21 -11
- package/dist/esm/Scripts.js.map +1 -1
- package/dist/esm/Transitioner.js +58 -37
- package/dist/esm/Transitioner.js.map +1 -1
- package/dist/esm/headContentUtils.d.ts +2 -1
- package/dist/esm/headContentUtils.js +26 -23
- package/dist/esm/headContentUtils.js.map +1 -1
- package/dist/esm/index.dev.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/link.js +146 -104
- package/dist/esm/link.js.map +1 -1
- package/dist/esm/matchContext.d.ts +8 -2
- package/dist/esm/matchContext.js +7 -4
- package/dist/esm/matchContext.js.map +1 -1
- package/dist/esm/not-found.d.ts +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 +10 -0
- package/dist/esm/routerStores.js +73 -0
- package/dist/esm/routerStores.js.map +1 -0
- package/dist/esm/scroll-restoration.js +2 -2
- package/dist/esm/scroll-restoration.js.map +1 -1
- package/dist/esm/ssr/RouterClient.js +1 -1
- package/dist/esm/ssr/RouterClient.js.map +1 -1
- package/dist/esm/ssr/renderRouterToStream.js +1 -1
- 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/useBlocker.js +12 -3
- package/dist/esm/useBlocker.js.map +1 -1
- package/dist/esm/useCanGoBack.d.ts +2 -1
- package/dist/esm/useCanGoBack.js +4 -2
- package/dist/esm/useCanGoBack.js.map +1 -1
- package/dist/esm/useLoaderDeps.js +2 -3
- package/dist/esm/useLoaderDeps.js.map +1 -1
- package/dist/esm/useLocation.js +11 -2
- package/dist/esm/useLocation.js.map +1 -1
- package/dist/esm/useMatch.js +28 -16
- package/dist/esm/useMatch.js.map +1 -1
- package/dist/esm/useParams.js +1 -1
- package/dist/esm/useParams.js.map +1 -1
- package/dist/esm/useRouterState.js +11 -30
- package/dist/esm/useRouterState.js.map +1 -1
- package/dist/esm/useSearch.js +2 -1
- package/dist/esm/useSearch.js.map +1 -1
- package/dist/esm/utils.d.ts +0 -5
- package/dist/esm/utils.js +4 -17
- package/dist/esm/utils.js.map +1 -1
- package/dist/source/Asset.jsx +3 -3
- package/dist/source/Asset.jsx.map +1 -1
- package/dist/source/HeadContent.dev.jsx +5 -1
- package/dist/source/HeadContent.dev.jsx.map +1 -1
- package/dist/source/HeadContent.jsx +5 -1
- package/dist/source/HeadContent.jsx.map +1 -1
- package/dist/source/Match.d.ts +1 -3
- package/dist/source/Match.jsx +260 -264
- package/dist/source/Match.jsx.map +1 -1
- package/dist/source/Matches.jsx +46 -46
- package/dist/source/Matches.jsx.map +1 -1
- package/dist/source/RouterProvider.d.ts +1 -1
- package/dist/source/RouterProvider.jsx +13 -9
- package/dist/source/RouterProvider.jsx.map +1 -1
- package/dist/source/Scripts.d.ts +2 -1
- package/dist/source/Scripts.jsx +46 -47
- package/dist/source/Scripts.jsx.map +1 -1
- package/dist/source/Transitioner.jsx +80 -44
- package/dist/source/Transitioner.jsx.map +1 -1
- package/dist/source/headContentUtils.d.ts +2 -1
- package/dist/source/headContentUtils.jsx +79 -80
- package/dist/source/headContentUtils.jsx.map +1 -1
- package/dist/source/link.jsx +145 -112
- package/dist/source/link.jsx.map +1 -1
- package/dist/source/matchContext.d.ts +8 -2
- package/dist/source/matchContext.jsx +7 -3
- package/dist/source/matchContext.jsx.map +1 -1
- package/dist/source/not-found.d.ts +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 +10 -0
- package/dist/source/routerStores.js +82 -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 +1 -1
- 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/useBlocker.jsx +19 -8
- package/dist/source/useBlocker.jsx.map +1 -1
- package/dist/source/useCanGoBack.d.ts +2 -1
- package/dist/source/useCanGoBack.js +4 -2
- package/dist/source/useCanGoBack.js.map +1 -1
- package/dist/source/useLoaderDeps.jsx +2 -3
- package/dist/source/useLoaderDeps.jsx.map +1 -1
- package/dist/source/useLocation.jsx +13 -3
- package/dist/source/useLocation.jsx.map +1 -1
- package/dist/source/useMatch.jsx +33 -23
- package/dist/source/useMatch.jsx.map +1 -1
- package/dist/source/useParams.jsx +1 -1
- package/dist/source/useParams.jsx.map +1 -1
- package/dist/source/useRouterState.jsx +14 -55
- package/dist/source/useRouterState.jsx.map +1 -1
- package/dist/source/useSearch.jsx +2 -1
- package/dist/source/useSearch.jsx.map +1 -1
- package/dist/source/utils.d.ts +0 -5
- package/dist/source/utils.js +2 -15
- package/dist/source/utils.js.map +1 -1
- package/package.json +7 -7
- package/skills/solid-router/SKILL.md +2 -0
- package/src/Asset.tsx +3 -3
- package/src/HeadContent.dev.tsx +10 -1
- package/src/HeadContent.tsx +10 -1
- package/src/Match.tsx +395 -349
- package/src/Matches.tsx +55 -54
- package/src/RouterProvider.tsx +13 -10
- package/src/Scripts.tsx +55 -54
- package/src/Transitioner.tsx +103 -60
- package/src/headContentUtils.tsx +104 -96
- package/src/link.tsx +188 -146
- package/src/matchContext.tsx +16 -7
- package/src/not-found.tsx +6 -6
- package/src/router.ts +2 -1
- package/src/routerStores.ts +119 -0
- package/src/ssr/RouterClient.tsx +1 -1
- package/src/ssr/renderRouterToStream.tsx +1 -1
- package/src/ssr/renderRouterToString.tsx +1 -1
- package/src/useBlocker.tsx +80 -63
- package/src/useCanGoBack.ts +6 -2
- package/src/useLoaderDeps.tsx +2 -3
- package/src/useLocation.tsx +18 -5
- package/src/useMatch.tsx +37 -38
- package/src/useParams.tsx +2 -3
- package/src/useRouterState.tsx +21 -67
- package/src/useSearch.tsx +2 -1
- package/src/utils.ts +2 -24
|
@@ -1,34 +1,7 @@
|
|
|
1
|
-
import { createMemo, createSignal, onCleanup } from 'solid-js';
|
|
2
1
|
import { isServer } from '@tanstack/router-core/isServer';
|
|
2
|
+
import * as Solid from 'solid-js';
|
|
3
|
+
import { replaceEqualDeep } from '@tanstack/router-core';
|
|
3
4
|
import { useRouter } from './useRouter';
|
|
4
|
-
function deepEqual(a, b) {
|
|
5
|
-
if (Object.is(a, b))
|
|
6
|
-
return true;
|
|
7
|
-
if (isPromiseLike(a) || isPromiseLike(b))
|
|
8
|
-
return false;
|
|
9
|
-
if (typeof a !== 'object' ||
|
|
10
|
-
a === null ||
|
|
11
|
-
typeof b !== 'object' ||
|
|
12
|
-
b === null) {
|
|
13
|
-
return false;
|
|
14
|
-
}
|
|
15
|
-
const keysA = Object.keys(a);
|
|
16
|
-
const keysB = Object.keys(b);
|
|
17
|
-
if (keysA.length !== keysB.length)
|
|
18
|
-
return false;
|
|
19
|
-
for (const key of keysA) {
|
|
20
|
-
if (!Object.prototype.hasOwnProperty.call(b, key))
|
|
21
|
-
return false;
|
|
22
|
-
if (!deepEqual(a[key], b[key]))
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
function isPromiseLike(value) {
|
|
28
|
-
return (!!value &&
|
|
29
|
-
(typeof value === 'object' || typeof value === 'function') &&
|
|
30
|
-
typeof value.then === 'function');
|
|
31
|
-
}
|
|
32
5
|
export function useRouterState(opts) {
|
|
33
6
|
const contextRouter = useRouter({
|
|
34
7
|
warn: opts?.router === undefined,
|
|
@@ -39,33 +12,19 @@ export function useRouterState(opts) {
|
|
|
39
12
|
// implementation does not provide subscribe() semantics.
|
|
40
13
|
const _isServer = isServer ?? router.isServer;
|
|
41
14
|
if (_isServer) {
|
|
42
|
-
const state = router.state;
|
|
43
|
-
const selected =
|
|
44
|
-
return selected;
|
|
15
|
+
const state = router.stores.__store.state;
|
|
16
|
+
const selected = (opts?.select ? opts.select(state) : state);
|
|
17
|
+
return (() => selected);
|
|
45
18
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
// where reactive reads would be untracked.
|
|
56
|
-
const [storeState, setStoreState] = createSignal(router.__store.get());
|
|
57
|
-
const unsub = router.__store.subscribe((s) => {
|
|
58
|
-
setStoreState(s);
|
|
59
|
-
}).unsubscribe;
|
|
60
|
-
onCleanup(() => {
|
|
61
|
-
unsub();
|
|
62
|
-
});
|
|
63
|
-
// Run the selector inside a memo so that:
|
|
64
|
-
// 1. Reactive values read by the selector (e.g. props.matchId) are tracked
|
|
65
|
-
// 2. The result is memoized and only updates when the selected value changes
|
|
66
|
-
const selected = createMemo(() => selector(storeState()), undefined, {
|
|
67
|
-
equals: (a, b) => deepEqual(a, b),
|
|
19
|
+
if (!opts?.select) {
|
|
20
|
+
return (() => router.stores.__store.state);
|
|
21
|
+
}
|
|
22
|
+
const select = opts.select;
|
|
23
|
+
return Solid.createMemo((prev) => {
|
|
24
|
+
const res = select(router.stores.__store.state);
|
|
25
|
+
if (prev === undefined)
|
|
26
|
+
return res;
|
|
27
|
+
return replaceEqualDeep(prev, res);
|
|
68
28
|
});
|
|
69
|
-
return selected;
|
|
70
29
|
}
|
|
71
30
|
//# sourceMappingURL=useRouterState.jsx.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRouterState.jsx","sourceRoot":"","sources":["../../src/useRouterState.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useRouterState.jsx","sourceRoot":"","sources":["../../src/useRouterState.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AACzD,OAAO,KAAK,KAAK,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAkBvC,MAAM,UAAU,cAAc,CAI5B,IAAgD;IAEhD,MAAM,aAAa,GAAG,SAAS,CAAU;QACvC,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,SAAS;KACjC,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,aAAa,CAAA;IAE5C,gEAAgE;IAChE,sEAAsE;IACtE,yDAAyD;IACzD,MAAM,SAAS,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAA;IAC7C,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAEnC,CAAA;QACD,MAAM,QAAQ,GAAG,CACf,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CACE,CAAA;QAC7C,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAErB,CAAA;IACH,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAExC,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAE1B,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,IAA2B,EAAE,EAAE;QACtD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC/C,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,GAAG,CAAA;QAClC,OAAO,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC,CAAuD,CAAA;AAC1D,CAAC"}
|
|
@@ -5,7 +5,8 @@ export function useSearch(opts) {
|
|
|
5
5
|
strict: opts.strict,
|
|
6
6
|
shouldThrow: opts.shouldThrow,
|
|
7
7
|
select: (match) => {
|
|
8
|
-
|
|
8
|
+
const search = match.search;
|
|
9
|
+
return opts.select ? opts.select(search) : search;
|
|
9
10
|
},
|
|
10
11
|
});
|
|
11
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSearch.jsx","sourceRoot":"","sources":["../../src/useSearch.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AA6CrC,MAAM,UAAU,SAAS,CAOvB,IAMC;IAID,OAAO,QAAQ,CAAC;QACd,IAAI,EAAE,IAAI,CAAC,IAAK;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,CAAC,KAAU,EAAE,EAAE;YACrB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"useSearch.jsx","sourceRoot":"","sources":["../../src/useSearch.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AA6CrC,MAAM,UAAU,SAAS,CAOvB,IAMC;IAID,OAAO,QAAQ,CAAC;QACd,IAAI,EAAE,IAAI,CAAC,IAAK;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,CAAC,KAAU,EAAE,EAAE;YACrB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;YAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QACnD,CAAC;KACF,CAAQ,CAAA;AACX,CAAC"}
|
package/dist/source/utils.d.ts
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
import * as Solid from 'solid-js';
|
|
2
|
-
export declare const useLayoutEffect: typeof import("@solidjs/signals").createEffect;
|
|
3
|
-
export declare const usePrevious: (fn: () => boolean) => Solid.Accessor<{
|
|
4
|
-
current: boolean | null;
|
|
5
|
-
previous: boolean | null;
|
|
6
|
-
}>;
|
|
7
2
|
/**
|
|
8
3
|
* React hook to wrap `IntersectionObserver`.
|
|
9
4
|
*
|
package/dist/source/utils.js
CHANGED
|
@@ -1,17 +1,4 @@
|
|
|
1
1
|
import * as Solid from 'solid-js';
|
|
2
|
-
export const useLayoutEffect = typeof window !== 'undefined' ? Solid.createEffect : Solid.createEffect;
|
|
3
|
-
export const usePrevious = (fn) => {
|
|
4
|
-
return Solid.createMemo((prev = {
|
|
5
|
-
current: null,
|
|
6
|
-
previous: null,
|
|
7
|
-
}) => {
|
|
8
|
-
const current = fn();
|
|
9
|
-
if (prev.current !== current) {
|
|
10
|
-
return { previous: prev.current, current };
|
|
11
|
-
}
|
|
12
|
-
return prev;
|
|
13
|
-
});
|
|
14
|
-
};
|
|
15
2
|
/**
|
|
16
3
|
* React hook to wrap `IntersectionObserver`.
|
|
17
4
|
*
|
|
@@ -48,9 +35,9 @@ export function useIntersectionObserver(ref, callback, intersectionObserverOptio
|
|
|
48
35
|
callback(entry);
|
|
49
36
|
}, intersectionObserverOptions);
|
|
50
37
|
observerRef.observe(r);
|
|
51
|
-
|
|
38
|
+
return () => {
|
|
52
39
|
observerRef?.disconnect();
|
|
53
|
-
}
|
|
40
|
+
};
|
|
54
41
|
});
|
|
55
42
|
return () => observerRef;
|
|
56
43
|
}
|
package/dist/source/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,UAAU,CAAA;AAEjC
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,UAAU,CAAA;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAA6B,EAC7B,QAAgE,EAChE,8BAAwD,EAAE,EAC1D,UAAkC,EAAE;IAEpC,MAAM,+BAA+B,GACnC,OAAO,oBAAoB,KAAK,UAAU,CAAA;IAC5C,IAAI,WAAW,GAAgC,IAAI,CAAA;IAEnD,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;QAC5B,IAAI,CAAC,CAAC,IAAI,CAAC,+BAA+B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC/D,OAAM;QACR,CAAC;QAED,WAAW,GAAG,IAAI,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;YACjD,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC,EAAE,2BAA2B,CAAC,CAAA;QAE/B,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAEtB,OAAO,GAAG,EAAE;YACV,WAAW,EAAE,UAAU,EAAE,CAAA;QAC3B,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,EAAE,CAAC,WAAW,CAAA;AAC1B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/solid-router",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.7",
|
|
4
4
|
"description": "Modern and scalable routing for Solid applications",
|
|
5
5
|
"author": "Tanner Linsley",
|
|
6
6
|
"license": "MIT",
|
|
@@ -89,12 +89,12 @@
|
|
|
89
89
|
"dependencies": {
|
|
90
90
|
"@solid-devtools/logger": "^0.9.4",
|
|
91
91
|
"@solidjs/meta": "^0.29.4",
|
|
92
|
-
"@solidjs/web": "2.0.0-beta.
|
|
92
|
+
"@solidjs/web": "2.0.0-beta.4",
|
|
93
93
|
"isbot": "^5.1.22",
|
|
94
94
|
"tiny-invariant": "^1.3.3",
|
|
95
95
|
"tiny-warning": "^1.0.3",
|
|
96
96
|
"@tanstack/history": "1.161.6",
|
|
97
|
-
"@tanstack/router-core": "1.
|
|
97
|
+
"@tanstack/router-core": "1.168.1"
|
|
98
98
|
},
|
|
99
99
|
"devDependencies": {
|
|
100
100
|
"@solidjs/testing-library": "^0.8.10",
|
|
@@ -102,15 +102,15 @@
|
|
|
102
102
|
"@testing-library/jest-dom": "^6.6.3",
|
|
103
103
|
"combinate": "^1.1.11",
|
|
104
104
|
"eslint-plugin-solid": "^0.14.5",
|
|
105
|
-
"solid-js": "2.0.0-beta.
|
|
106
|
-
"@solidjs/web": "2.0.0-beta.
|
|
105
|
+
"solid-js": "2.0.0-beta.4",
|
|
106
|
+
"@solidjs/web": "2.0.0-beta.4",
|
|
107
107
|
"vite": "*",
|
|
108
108
|
"vite-plugin-solid": "3.0.0-next.3",
|
|
109
109
|
"zod": "^3.23.8"
|
|
110
110
|
},
|
|
111
111
|
"peerDependencies": {
|
|
112
|
-
"solid-js": "2.0.0-beta.
|
|
113
|
-
"@solidjs/web": "2.0.0-beta.
|
|
112
|
+
"solid-js": "2.0.0-beta.4",
|
|
113
|
+
"@solidjs/web": "2.0.0-beta.4"
|
|
114
114
|
},
|
|
115
115
|
"bin": {
|
|
116
116
|
"intent": "./bin/intent.js"
|
|
@@ -141,6 +141,8 @@ function InvalidateButton() {
|
|
|
141
141
|
|
|
142
142
|
### `useRouterState()` — returns `Accessor<T>`
|
|
143
143
|
|
|
144
|
+
Exposes the entire state and thus incurs a performance cost. For matches or location favor `useMatches` and `useLocation`.
|
|
145
|
+
|
|
144
146
|
```tsx
|
|
145
147
|
import { useRouterState } from '@tanstack/solid-router'
|
|
146
148
|
|
package/src/Asset.tsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isServer } from '@tanstack/router-core/isServer'
|
|
2
|
-
import { createEffect
|
|
2
|
+
import { createEffect } from 'solid-js'
|
|
3
3
|
import { useRouter } from './useRouter'
|
|
4
4
|
import type { RouterManagedTag } from '@tanstack/router-core'
|
|
5
5
|
import type { JSX } from 'solid-js'
|
|
@@ -168,11 +168,11 @@ function Script(props: {
|
|
|
168
168
|
document.head.appendChild(script)
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
-
|
|
171
|
+
return () => {
|
|
172
172
|
if (script?.parentNode) {
|
|
173
173
|
script.parentNode.removeChild(script)
|
|
174
174
|
}
|
|
175
|
-
}
|
|
175
|
+
}
|
|
176
176
|
},
|
|
177
177
|
)
|
|
178
178
|
|
package/src/HeadContent.dev.tsx
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { For, createEffect, createMemo } from 'solid-js'
|
|
2
|
+
import { Portal, isServer } from '@solidjs/web'
|
|
2
3
|
import { Asset } from './Asset'
|
|
3
4
|
import { useHydrated } from './ClientOnly'
|
|
5
|
+
import { useRouter } from './useRouter'
|
|
4
6
|
import { useTags } from './headContentUtils'
|
|
5
7
|
|
|
6
8
|
const DEV_STYLES_ATTR = 'data-tanstack-router-dev-styles'
|
|
@@ -17,6 +19,7 @@ const DEV_STYLES_ATTR = 'data-tanstack-router-dev-styles'
|
|
|
17
19
|
export function HeadContent() {
|
|
18
20
|
const tags = useTags()
|
|
19
21
|
const hydrated = useHydrated()
|
|
22
|
+
const router = useRouter()
|
|
20
23
|
|
|
21
24
|
// Fallback cleanup for hydration mismatch cases
|
|
22
25
|
// Runs when hydration completes to remove any orphaned dev styles links from DOM
|
|
@@ -39,7 +42,7 @@ export function HeadContent() {
|
|
|
39
42
|
return tags()
|
|
40
43
|
})
|
|
41
44
|
|
|
42
|
-
|
|
45
|
+
const content = () => (
|
|
43
46
|
<For each={filteredTags()}>
|
|
44
47
|
{(tag) => {
|
|
45
48
|
const t = tag() as any
|
|
@@ -47,4 +50,10 @@ export function HeadContent() {
|
|
|
47
50
|
}}
|
|
48
51
|
</For>
|
|
49
52
|
)
|
|
53
|
+
|
|
54
|
+
return (isServer ?? router.isServer) ? (
|
|
55
|
+
content()
|
|
56
|
+
) : (
|
|
57
|
+
<Portal mount={document.head}>{content()}</Portal>
|
|
58
|
+
)
|
|
50
59
|
}
|
package/src/HeadContent.tsx
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { For } from 'solid-js'
|
|
2
|
+
import { Portal, isServer } from '@solidjs/web'
|
|
2
3
|
import { Asset } from './Asset'
|
|
4
|
+
import { useRouter } from './useRouter'
|
|
3
5
|
import { useTags } from './headContentUtils'
|
|
4
6
|
|
|
5
7
|
/**
|
|
@@ -10,8 +12,9 @@ import { useTags } from './headContentUtils'
|
|
|
10
12
|
*/
|
|
11
13
|
export function HeadContent() {
|
|
12
14
|
const tags = useTags()
|
|
15
|
+
const router = useRouter()
|
|
13
16
|
|
|
14
|
-
|
|
17
|
+
const content = () => (
|
|
15
18
|
<For each={tags()}>
|
|
16
19
|
{(tag) => {
|
|
17
20
|
const t = tag() as any
|
|
@@ -19,4 +22,10 @@ export function HeadContent() {
|
|
|
19
22
|
}}
|
|
20
23
|
</For>
|
|
21
24
|
)
|
|
25
|
+
|
|
26
|
+
return (isServer ?? router.isServer) ? (
|
|
27
|
+
content()
|
|
28
|
+
) : (
|
|
29
|
+
<Portal mount={document.head}>{content()}</Portal>
|
|
30
|
+
)
|
|
22
31
|
}
|