@tanstack/solid-router 2.0.0-alpha.6 → 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 +55 -34
- 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 +56 -35
- 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 +78 -42
- 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 +2 -2
- 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 +101 -58
- 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
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",
|
|
@@ -94,7 +94,7 @@
|
|
|
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",
|
|
@@ -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
|
}
|