@tanstack/solid-router 1.121.0-alpha.22 → 1.121.0-alpha.28
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 +65 -21
- package/dist/cjs/Asset.cjs.map +1 -1
- package/dist/cjs/Asset.d.cts +2 -1
- package/dist/cjs/CatchBoundary.cjs +14 -15
- package/dist/cjs/CatchBoundary.cjs.map +1 -1
- package/dist/cjs/ClientOnly.cjs +12 -14
- package/dist/cjs/ClientOnly.cjs.map +1 -1
- package/dist/cjs/ClientOnly.d.cts +0 -20
- package/dist/cjs/HeadContent.cjs +28 -23
- package/dist/cjs/HeadContent.cjs.map +1 -1
- package/dist/cjs/Match.cjs +167 -141
- package/dist/cjs/Match.cjs.map +1 -1
- package/dist/cjs/Matches.cjs +26 -24
- package/dist/cjs/Matches.cjs.map +1 -1
- package/dist/cjs/Matches.d.cts +1 -0
- package/dist/cjs/RouterProvider.cjs +5 -5
- package/dist/cjs/RouterProvider.cjs.map +1 -1
- package/dist/cjs/SafeFragment.cjs +2 -2
- package/dist/cjs/SafeFragment.cjs.map +1 -1
- package/dist/cjs/ScriptOnce.cjs +4 -9
- package/dist/cjs/ScriptOnce.cjs.map +1 -1
- package/dist/cjs/ScriptOnce.d.cts +1 -1
- package/dist/cjs/Scripts.cjs +9 -13
- package/dist/cjs/Scripts.cjs.map +1 -1
- package/dist/cjs/ScrollRestoration.cjs +3 -4
- package/dist/cjs/ScrollRestoration.cjs.map +1 -1
- package/dist/cjs/Transitioner.cjs +9 -8
- package/dist/cjs/Transitioner.cjs.map +1 -1
- package/dist/cjs/awaited.cjs +2 -2
- package/dist/cjs/awaited.cjs.map +1 -1
- package/dist/cjs/fileRoute.cjs +5 -5
- package/dist/cjs/fileRoute.cjs.map +1 -1
- package/dist/cjs/index.cjs +0 -12
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +3 -6
- package/dist/cjs/lazyRouteComponent.cjs +6 -26
- package/dist/cjs/lazyRouteComponent.cjs.map +1 -1
- package/dist/cjs/lazyRouteComponent.d.cts +1 -1
- package/dist/cjs/link.cjs +37 -31
- package/dist/cjs/link.cjs.map +1 -1
- package/dist/cjs/not-found.cjs +5 -7
- package/dist/cjs/not-found.cjs.map +1 -1
- package/dist/cjs/renderRouteNotFound.cjs +4 -4
- package/dist/cjs/renderRouteNotFound.cjs.map +1 -1
- package/dist/cjs/route.cjs +16 -16
- package/dist/cjs/route.cjs.map +1 -1
- package/dist/cjs/route.d.cts +14 -5
- package/dist/cjs/router.cjs.map +1 -1
- package/dist/cjs/routerContext.cjs.map +1 -1
- package/dist/cjs/scroll-restoration.cjs +12 -6
- package/dist/cjs/scroll-restoration.cjs.map +1 -1
- package/dist/cjs/ssr/RouterClient.cjs +45 -0
- package/dist/cjs/ssr/RouterClient.cjs.map +1 -0
- package/dist/cjs/ssr/RouterClient.d.cts +4 -0
- package/dist/cjs/ssr/RouterServer.cjs +56 -0
- package/dist/cjs/ssr/RouterServer.cjs.map +1 -0
- package/dist/cjs/ssr/RouterServer.d.cts +5 -0
- package/dist/cjs/ssr/client.cjs +5 -0
- package/dist/cjs/ssr/client.cjs.map +1 -0
- package/dist/cjs/ssr/client.d.cts +1 -0
- package/dist/cjs/ssr/defaultRenderHandler.cjs +18 -0
- package/dist/cjs/ssr/defaultRenderHandler.cjs.map +1 -0
- package/dist/cjs/ssr/defaultRenderHandler.d.cts +1 -0
- package/dist/cjs/ssr/defaultStreamHandler.cjs +20 -0
- package/dist/cjs/ssr/defaultStreamHandler.cjs.map +1 -0
- package/dist/cjs/ssr/defaultStreamHandler.d.cts +1 -0
- package/dist/cjs/ssr/renderRouterToStream.cjs +45 -0
- package/dist/cjs/ssr/renderRouterToStream.cjs.map +1 -0
- package/dist/cjs/ssr/renderRouterToStream.d.cts +8 -0
- package/dist/cjs/ssr/renderRouterToString.cjs +43 -0
- package/dist/cjs/ssr/renderRouterToString.cjs.map +1 -0
- package/dist/cjs/ssr/renderRouterToString.d.cts +7 -0
- package/dist/cjs/ssr/server.cjs +20 -0
- package/dist/cjs/ssr/server.cjs.map +1 -0
- package/dist/cjs/ssr/server.d.cts +6 -0
- package/dist/cjs/useBlocker.cjs +41 -35
- package/dist/cjs/useBlocker.cjs.map +1 -1
- package/dist/cjs/useCanGoBack.cjs.map +1 -1
- package/dist/cjs/useLoaderData.cjs.map +1 -1
- package/dist/cjs/useLoaderDeps.cjs.map +1 -1
- package/dist/cjs/useLocation.cjs +1 -1
- package/dist/cjs/useLocation.cjs.map +1 -1
- package/dist/cjs/useMatch.cjs.map +1 -1
- package/dist/cjs/useNavigate.cjs +9 -3
- package/dist/cjs/useNavigate.cjs.map +1 -1
- package/dist/cjs/useParams.cjs.map +1 -1
- package/dist/cjs/useRouter.cjs +1 -1
- package/dist/cjs/useRouter.cjs.map +1 -1
- package/dist/cjs/useRouterState.cjs +3 -3
- package/dist/cjs/useRouterState.cjs.map +1 -1
- package/dist/cjs/useSearch.cjs.map +1 -1
- package/dist/cjs/utils.cjs +1 -1
- package/dist/cjs/utils.cjs.map +1 -1
- package/dist/esm/Asset.d.ts +2 -1
- package/dist/esm/Asset.js +60 -16
- package/dist/esm/Asset.js.map +1 -1
- package/dist/esm/CatchBoundary.js +1 -2
- package/dist/esm/CatchBoundary.js.map +1 -1
- package/dist/esm/ClientOnly.d.ts +0 -20
- package/dist/esm/ClientOnly.js +11 -13
- package/dist/esm/ClientOnly.js.map +1 -1
- package/dist/esm/HeadContent.js +23 -18
- package/dist/esm/HeadContent.js.map +1 -1
- package/dist/esm/Match.js +148 -122
- package/dist/esm/Match.js.map +1 -1
- package/dist/esm/Matches.d.ts +1 -0
- package/dist/esm/Matches.js +18 -16
- package/dist/esm/Matches.js.map +1 -1
- package/dist/esm/RouterProvider.js.map +1 -1
- package/dist/esm/SafeFragment.js.map +1 -1
- package/dist/esm/ScriptOnce.d.ts +1 -1
- package/dist/esm/ScriptOnce.js +2 -7
- package/dist/esm/ScriptOnce.js.map +1 -1
- package/dist/esm/Scripts.js +7 -11
- package/dist/esm/Scripts.js.map +1 -1
- package/dist/esm/ScrollRestoration.js +3 -4
- package/dist/esm/ScrollRestoration.js.map +1 -1
- package/dist/esm/Transitioner.js +9 -8
- package/dist/esm/Transitioner.js.map +1 -1
- package/dist/esm/awaited.js.map +1 -1
- package/dist/esm/fileRoute.js +5 -5
- package/dist/esm/fileRoute.js.map +1 -1
- package/dist/esm/index.d.ts +3 -6
- package/dist/esm/index.js +2 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lazyRouteComponent.d.ts +1 -1
- package/dist/esm/lazyRouteComponent.js +2 -22
- package/dist/esm/lazyRouteComponent.js.map +1 -1
- package/dist/esm/link.js +34 -28
- package/dist/esm/link.js.map +1 -1
- package/dist/esm/not-found.js +2 -4
- package/dist/esm/not-found.js.map +1 -1
- package/dist/esm/renderRouteNotFound.js.map +1 -1
- package/dist/esm/route.d.ts +14 -5
- package/dist/esm/route.js +12 -12
- package/dist/esm/route.js.map +1 -1
- package/dist/esm/router.js.map +1 -1
- package/dist/esm/routerContext.js.map +1 -1
- package/dist/esm/scroll-restoration.js +10 -4
- package/dist/esm/scroll-restoration.js.map +1 -1
- package/dist/esm/ssr/RouterClient.d.ts +4 -0
- package/dist/esm/ssr/RouterClient.js +45 -0
- package/dist/esm/ssr/RouterClient.js.map +1 -0
- package/dist/esm/ssr/RouterServer.d.ts +5 -0
- package/dist/esm/ssr/RouterServer.js +56 -0
- package/dist/esm/ssr/RouterServer.js.map +1 -0
- package/dist/esm/ssr/client.d.ts +1 -0
- package/dist/esm/ssr/client.js +5 -0
- package/dist/esm/ssr/client.js.map +1 -0
- package/dist/esm/ssr/defaultRenderHandler.d.ts +1 -0
- package/dist/esm/ssr/defaultRenderHandler.js +18 -0
- package/dist/esm/ssr/defaultRenderHandler.js.map +1 -0
- package/dist/esm/ssr/defaultStreamHandler.d.ts +1 -0
- package/dist/esm/ssr/defaultStreamHandler.js +20 -0
- package/dist/esm/ssr/defaultStreamHandler.js.map +1 -0
- package/dist/esm/ssr/renderRouterToStream.d.ts +8 -0
- package/dist/esm/ssr/renderRouterToStream.js +28 -0
- package/dist/esm/ssr/renderRouterToStream.js.map +1 -0
- package/dist/esm/ssr/renderRouterToString.d.ts +7 -0
- package/dist/esm/ssr/renderRouterToString.js +26 -0
- package/dist/esm/ssr/renderRouterToString.js.map +1 -0
- package/dist/esm/ssr/server.d.ts +6 -0
- package/dist/esm/ssr/server.js +14 -0
- package/dist/esm/ssr/server.js.map +1 -0
- package/dist/esm/useBlocker.js +41 -35
- package/dist/esm/useBlocker.js.map +1 -1
- package/dist/esm/useCanGoBack.js.map +1 -1
- package/dist/esm/useLoaderData.js.map +1 -1
- package/dist/esm/useLoaderDeps.js.map +1 -1
- package/dist/esm/useLocation.js +1 -1
- package/dist/esm/useLocation.js.map +1 -1
- package/dist/esm/useMatch.js.map +1 -1
- package/dist/esm/useNavigate.js +9 -3
- package/dist/esm/useNavigate.js.map +1 -1
- package/dist/esm/useParams.js.map +1 -1
- package/dist/esm/useRouter.js +1 -1
- package/dist/esm/useRouter.js.map +1 -1
- package/dist/esm/useRouterState.js +3 -3
- package/dist/esm/useRouterState.js.map +1 -1
- package/dist/esm/useSearch.js.map +1 -1
- package/dist/esm/utils.js +1 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist/source/Asset.d.ts +2 -1
- package/dist/source/Asset.jsx +45 -7
- package/dist/source/Asset.jsx.map +1 -1
- package/dist/source/ClientOnly.d.ts +0 -20
- package/dist/source/ClientOnly.jsx +3 -29
- package/dist/source/ClientOnly.jsx.map +1 -1
- package/dist/source/HeadContent.jsx +13 -0
- package/dist/source/HeadContent.jsx.map +1 -1
- package/dist/source/Match.jsx +74 -61
- package/dist/source/Match.jsx.map +1 -1
- package/dist/source/Matches.d.ts +1 -0
- package/dist/source/Matches.jsx +14 -11
- package/dist/source/Matches.jsx.map +1 -1
- package/dist/source/ScriptOnce.d.ts +1 -1
- package/dist/source/ScriptOnce.jsx +2 -12
- package/dist/source/ScriptOnce.jsx.map +1 -1
- package/dist/source/Transitioner.jsx +8 -8
- package/dist/source/Transitioner.jsx.map +1 -1
- package/dist/source/index.d.ts +3 -6
- package/dist/source/index.jsx +1 -4
- package/dist/source/index.jsx.map +1 -1
- package/dist/source/lazyRouteComponent.d.ts +1 -1
- package/dist/source/lazyRouteComponent.jsx +7 -21
- package/dist/source/lazyRouteComponent.jsx.map +1 -1
- package/dist/source/link.jsx +22 -17
- package/dist/source/link.jsx.map +1 -1
- package/dist/source/not-found.jsx.map +1 -1
- package/dist/source/route.d.ts +14 -5
- package/dist/source/route.jsx.map +1 -1
- package/dist/source/scroll-restoration.jsx +9 -2
- package/dist/source/scroll-restoration.jsx.map +1 -1
- package/dist/source/ssr/RouterClient.d.ts +4 -0
- package/dist/source/ssr/RouterClient.jsx +28 -0
- package/dist/source/ssr/RouterClient.jsx.map +1 -0
- package/dist/source/ssr/RouterServer.d.ts +5 -0
- package/dist/source/ssr/RouterServer.jsx +38 -0
- package/dist/source/ssr/RouterServer.jsx.map +1 -0
- package/dist/source/ssr/client.d.ts +1 -0
- package/dist/source/ssr/client.js +2 -0
- package/dist/source/ssr/client.js.map +1 -0
- package/dist/source/ssr/defaultRenderHandler.d.ts +1 -0
- package/dist/source/ssr/defaultRenderHandler.jsx +9 -0
- package/dist/source/ssr/defaultRenderHandler.jsx.map +1 -0
- package/dist/source/ssr/defaultStreamHandler.d.ts +1 -0
- package/dist/source/ssr/defaultStreamHandler.jsx +10 -0
- package/dist/source/ssr/defaultStreamHandler.jsx.map +1 -0
- package/dist/source/ssr/renderRouterToStream.d.ts +8 -0
- package/dist/source/ssr/renderRouterToStream.jsx +17 -0
- package/dist/source/ssr/renderRouterToStream.jsx.map +1 -0
- package/dist/source/ssr/renderRouterToString.d.ts +7 -0
- package/dist/source/ssr/renderRouterToString.jsx +20 -0
- package/dist/source/ssr/renderRouterToString.jsx.map +1 -0
- package/dist/source/ssr/server.d.ts +6 -0
- package/dist/source/ssr/server.js +7 -0
- package/dist/source/ssr/server.js.map +1 -0
- package/dist/source/useBlocker.jsx +44 -27
- package/dist/source/useBlocker.jsx.map +1 -1
- package/dist/source/useNavigate.jsx +12 -2
- package/dist/source/useNavigate.jsx.map +1 -1
- package/package.json +34 -7
- package/src/Asset.tsx +76 -7
- package/src/ClientOnly.tsx +5 -32
- package/src/HeadContent.tsx +17 -0
- package/src/Match.tsx +103 -81
- package/src/Matches.tsx +28 -19
- package/src/ScriptOnce.tsx +1 -13
- package/src/Transitioner.tsx +7 -7
- package/src/index.tsx +1 -18
- package/src/lazyRouteComponent.tsx +6 -26
- package/src/link.tsx +29 -21
- package/src/not-found.tsx +1 -1
- package/src/route.tsx +16 -5
- package/src/scroll-restoration.tsx +10 -3
- package/src/ssr/RouterClient.tsx +43 -0
- package/src/ssr/RouterServer.tsx +60 -0
- package/src/ssr/client.ts +1 -0
- package/src/ssr/defaultRenderHandler.tsx +12 -0
- package/src/ssr/defaultStreamHandler.tsx +13 -0
- package/src/ssr/renderRouterToStream.tsx +36 -0
- package/src/ssr/renderRouterToString.tsx +31 -0
- package/src/ssr/server.ts +6 -0
- package/src/useBlocker.tsx +48 -32
- package/src/useNavigate.tsx +14 -2
package/dist/cjs/Match.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const
|
|
4
|
-
const Solid = require("solid-js");
|
|
3
|
+
const Solid = require("solid-js/web");
|
|
4
|
+
const Solid$1 = require("solid-js");
|
|
5
5
|
const invariant = require("tiny-invariant");
|
|
6
6
|
const warning = require("tiny-warning");
|
|
7
7
|
const routerCore = require("@tanstack/router-core");
|
|
@@ -29,34 +29,29 @@ function _interopNamespaceDefault(e) {
|
|
|
29
29
|
n.default = e;
|
|
30
30
|
return Object.freeze(n);
|
|
31
31
|
}
|
|
32
|
-
const Solid__namespace = /* @__PURE__ */ _interopNamespaceDefault(Solid);
|
|
32
|
+
const Solid__namespace = /* @__PURE__ */ _interopNamespaceDefault(Solid$1);
|
|
33
33
|
const Match = (props) => {
|
|
34
34
|
const router = useRouter.useRouter();
|
|
35
|
-
const
|
|
35
|
+
const matchState = useRouterState.useRouterState({
|
|
36
36
|
select: (s) => {
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
const match = s.matches.find((d) => d.id === props.matchId);
|
|
38
|
+
invariant(match, `Could not find match for matchId "${props.matchId}". Please file an issue!`);
|
|
39
|
+
return routerCore.pick(match, ["routeId", "ssr", "_displayPending"]);
|
|
39
40
|
}
|
|
40
41
|
});
|
|
41
|
-
|
|
42
|
-
const route = () => router.routesById[routeId()];
|
|
42
|
+
const route = () => router.routesById[matchState().routeId];
|
|
43
43
|
const PendingComponent = () => route().options.pendingComponent ?? router.options.defaultPendingComponent;
|
|
44
44
|
const routeErrorComponent = () => route().options.errorComponent ?? router.options.defaultErrorComponent;
|
|
45
45
|
const routeOnCatch = () => route().options.onCatch ?? router.options.defaultOnCatch;
|
|
46
|
-
const routeNotFoundComponent = () =>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
return (
|
|
56
|
-
// If we're on the root route, allow forcefully wrapping in suspense
|
|
57
|
-
(!route().isRoot || route().options.wrapInSuspense) && (route().options.wrapInSuspense ?? PendingComponent() ?? ((_a = route().options.errorComponent) == null ? void 0 : _a.preload)) ? Solid__namespace.Suspense : SafeFragment.SafeFragment
|
|
58
|
-
);
|
|
59
|
-
};
|
|
46
|
+
const routeNotFoundComponent = () => route().isRoot ? (
|
|
47
|
+
// If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component
|
|
48
|
+
route().options.notFoundComponent ?? router.options.notFoundRoute?.options.component
|
|
49
|
+
) : route().options.notFoundComponent;
|
|
50
|
+
const resolvedNoSsr = matchState().ssr === false || matchState().ssr === "data-only";
|
|
51
|
+
const ResolvedSuspenseBoundary = () => (
|
|
52
|
+
// If we're on the root route, allow forcefully wrapping in suspense
|
|
53
|
+
(!route().isRoot || route().options.wrapInSuspense || resolvedNoSsr || matchState()._displayPending) && (route().options.wrapInSuspense ?? PendingComponent() ?? (route().options.errorComponent?.preload || resolvedNoSsr)) ? Solid__namespace.Suspense : SafeFragment.SafeFragment
|
|
54
|
+
);
|
|
60
55
|
const ResolvedCatchBoundary = () => routeErrorComponent() ? CatchBoundary.CatchBoundary : SafeFragment.SafeFragment;
|
|
61
56
|
const ResolvedNotFoundBoundary = () => routeNotFoundComponent() ? notFound.CatchNotFound : SafeFragment.SafeFragment;
|
|
62
57
|
const resetKey = useRouterState.useRouterState({
|
|
@@ -64,57 +59,92 @@ const Match = (props) => {
|
|
|
64
59
|
});
|
|
65
60
|
const parentRouteId = useRouterState.useRouterState({
|
|
66
61
|
select: (s) => {
|
|
67
|
-
var _a;
|
|
68
62
|
const index = s.matches.findIndex((d) => d.id === props.matchId);
|
|
69
|
-
return
|
|
63
|
+
return s.matches[index - 1]?.routeId;
|
|
70
64
|
}
|
|
71
65
|
});
|
|
72
|
-
|
|
73
|
-
|
|
66
|
+
const ShellComponent = route().isRoot ? route().options.shellComponent ?? SafeFragment.SafeFragment : SafeFragment.SafeFragment;
|
|
67
|
+
return Solid.createComponent(ShellComponent, {
|
|
74
68
|
get children() {
|
|
75
|
-
return
|
|
76
|
-
|
|
77
|
-
return ResolvedSuspenseBoundary();
|
|
78
|
-
},
|
|
79
|
-
get fallback() {
|
|
80
|
-
return web.createComponent(web.Dynamic, {
|
|
81
|
-
get component() {
|
|
82
|
-
return PendingComponent();
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
},
|
|
69
|
+
return [Solid.createComponent(matchContext.matchContext.Provider, {
|
|
70
|
+
value: () => props.matchId,
|
|
86
71
|
get children() {
|
|
87
|
-
return
|
|
72
|
+
return Solid.createComponent(Solid.Dynamic, {
|
|
88
73
|
get component() {
|
|
89
|
-
return
|
|
90
|
-
},
|
|
91
|
-
getResetKey: () => resetKey(),
|
|
92
|
-
get errorComponent() {
|
|
93
|
-
return routeErrorComponent() || CatchBoundary.ErrorComponent;
|
|
74
|
+
return ResolvedSuspenseBoundary();
|
|
94
75
|
},
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
76
|
+
get fallback() {
|
|
77
|
+
return Solid.createComponent(Solid.Dynamic, {
|
|
78
|
+
get component() {
|
|
79
|
+
return PendingComponent();
|
|
80
|
+
}
|
|
81
|
+
});
|
|
100
82
|
},
|
|
101
83
|
get children() {
|
|
102
|
-
return
|
|
84
|
+
return Solid.createComponent(Solid.Dynamic, {
|
|
103
85
|
get component() {
|
|
104
|
-
return
|
|
86
|
+
return ResolvedCatchBoundary();
|
|
105
87
|
},
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
return
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
88
|
+
getResetKey: () => resetKey(),
|
|
89
|
+
get errorComponent() {
|
|
90
|
+
return routeErrorComponent() || CatchBoundary.ErrorComponent;
|
|
91
|
+
},
|
|
92
|
+
onCatch: (error) => {
|
|
93
|
+
if (routerCore.isNotFound(error)) throw error;
|
|
94
|
+
warning(false, `Error in route match: ${props.matchId}`);
|
|
95
|
+
routeOnCatch()?.(error);
|
|
113
96
|
},
|
|
114
97
|
get children() {
|
|
115
|
-
return
|
|
116
|
-
get
|
|
117
|
-
return
|
|
98
|
+
return Solid.createComponent(Solid.Dynamic, {
|
|
99
|
+
get component() {
|
|
100
|
+
return ResolvedNotFoundBoundary();
|
|
101
|
+
},
|
|
102
|
+
fallback: (error) => {
|
|
103
|
+
if (!routeNotFoundComponent() || error.routeId && error.routeId !== matchState().routeId || !error.routeId && !route().isRoot) throw error;
|
|
104
|
+
return Solid.createComponent(Solid.Dynamic, Solid.mergeProps({
|
|
105
|
+
get component() {
|
|
106
|
+
return routeNotFoundComponent();
|
|
107
|
+
}
|
|
108
|
+
}, error));
|
|
109
|
+
},
|
|
110
|
+
get children() {
|
|
111
|
+
return Solid.createComponent(Solid__namespace.Switch, {
|
|
112
|
+
get children() {
|
|
113
|
+
return [Solid.createComponent(Solid__namespace.Match, {
|
|
114
|
+
when: resolvedNoSsr,
|
|
115
|
+
get children() {
|
|
116
|
+
return Solid.createComponent(Solid__namespace.Show, {
|
|
117
|
+
get when() {
|
|
118
|
+
return !router.isServer;
|
|
119
|
+
},
|
|
120
|
+
get fallback() {
|
|
121
|
+
return Solid.createComponent(Solid.Dynamic, {
|
|
122
|
+
get component() {
|
|
123
|
+
return PendingComponent();
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
},
|
|
127
|
+
get children() {
|
|
128
|
+
return Solid.createComponent(MatchInner, {
|
|
129
|
+
get matchId() {
|
|
130
|
+
return props.matchId;
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}), Solid.createComponent(Solid__namespace.Match, {
|
|
137
|
+
when: !resolvedNoSsr,
|
|
138
|
+
get children() {
|
|
139
|
+
return Solid.createComponent(MatchInner, {
|
|
140
|
+
get matchId() {
|
|
141
|
+
return props.matchId;
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
})];
|
|
146
|
+
}
|
|
147
|
+
});
|
|
118
148
|
}
|
|
119
149
|
});
|
|
120
150
|
}
|
|
@@ -122,16 +152,15 @@ const Match = (props) => {
|
|
|
122
152
|
}
|
|
123
153
|
});
|
|
124
154
|
}
|
|
125
|
-
});
|
|
155
|
+
}), Solid.memo(() => Solid.memo(() => parentRouteId() === routerCore.rootRouteId)() ? [Solid.createComponent(OnRendered, {}), Solid.createComponent(scrollRestoration.ScrollRestoration, {})] : null)];
|
|
126
156
|
}
|
|
127
|
-
})
|
|
157
|
+
});
|
|
128
158
|
};
|
|
129
159
|
function OnRendered() {
|
|
130
160
|
const router = useRouter.useRouter();
|
|
131
161
|
const location = useRouterState.useRouterState({
|
|
132
162
|
select: (s) => {
|
|
133
|
-
|
|
134
|
-
return (_a = s.resolvedLocation) == null ? void 0 : _a.state.key;
|
|
163
|
+
return s.resolvedLocation?.state.__TSR_key;
|
|
135
164
|
}
|
|
136
165
|
});
|
|
137
166
|
Solid__namespace.createEffect(Solid__namespace.on([location], () => {
|
|
@@ -150,7 +179,7 @@ const MatchInner = (props) => {
|
|
|
150
179
|
const match2 = s.matches[matchIndex];
|
|
151
180
|
const routeId = match2.routeId;
|
|
152
181
|
const remountFn = router.routesById[routeId].options.remountDeps ?? router.options.defaultRemountDeps;
|
|
153
|
-
const remountDeps = remountFn
|
|
182
|
+
const remountDeps = remountFn?.({
|
|
154
183
|
routeId,
|
|
155
184
|
loaderDeps: match2.loaderDeps,
|
|
156
185
|
params: match2._strictParams,
|
|
@@ -160,7 +189,7 @@ const MatchInner = (props) => {
|
|
|
160
189
|
return {
|
|
161
190
|
key,
|
|
162
191
|
routeId,
|
|
163
|
-
match: routerCore.pick(match2, ["id", "status", "error"])
|
|
192
|
+
match: routerCore.pick(match2, ["id", "status", "error", "_forcePending", "_displayPending"])
|
|
164
193
|
};
|
|
165
194
|
}
|
|
166
195
|
});
|
|
@@ -169,59 +198,43 @@ const MatchInner = (props) => {
|
|
|
169
198
|
const out = () => {
|
|
170
199
|
const Comp = route().options.component ?? router.options.defaultComponent;
|
|
171
200
|
if (Comp) {
|
|
172
|
-
return
|
|
201
|
+
return Solid.createComponent(Solid__namespace.Show, {
|
|
202
|
+
get when() {
|
|
203
|
+
return matchState().match.id;
|
|
204
|
+
},
|
|
205
|
+
keyed: true,
|
|
206
|
+
get children() {
|
|
207
|
+
return Solid.createComponent(Comp, {});
|
|
208
|
+
}
|
|
209
|
+
});
|
|
173
210
|
}
|
|
174
|
-
return
|
|
211
|
+
return Solid.createComponent(Outlet, {});
|
|
175
212
|
};
|
|
176
|
-
return
|
|
213
|
+
return Solid.createComponent(Solid__namespace.Switch, {
|
|
177
214
|
get children() {
|
|
178
|
-
return [
|
|
215
|
+
return [Solid.createComponent(Solid__namespace.Match, {
|
|
179
216
|
get when() {
|
|
180
|
-
return match().
|
|
217
|
+
return match()._displayPending;
|
|
181
218
|
},
|
|
182
219
|
children: (_) => {
|
|
183
|
-
|
|
184
|
-
return
|
|
220
|
+
const [displayPendingResult] = Solid__namespace.createResource(() => router.getMatch(match().id)?.displayPendingPromise);
|
|
221
|
+
return Solid.memo(displayPendingResult);
|
|
185
222
|
}
|
|
186
|
-
}),
|
|
223
|
+
}), Solid.createComponent(Solid__namespace.Match, {
|
|
187
224
|
get when() {
|
|
188
|
-
return match().
|
|
225
|
+
return match()._forcePending;
|
|
189
226
|
},
|
|
190
227
|
children: (_) => {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
var _a;
|
|
194
|
-
await new Promise((r) => setTimeout(r, 0));
|
|
195
|
-
return (_a = router.getMatch(match().id)) == null ? void 0 : _a.loadPromise;
|
|
196
|
-
});
|
|
197
|
-
return web.memo(loaderResult);
|
|
228
|
+
const [minPendingResult] = Solid__namespace.createResource(() => router.getMatch(match().id)?.minPendingPromise);
|
|
229
|
+
return Solid.memo(minPendingResult);
|
|
198
230
|
}
|
|
199
|
-
}),
|
|
200
|
-
get when() {
|
|
201
|
-
return match().status === "error";
|
|
202
|
-
},
|
|
203
|
-
children: (_) => {
|
|
204
|
-
if (router.isServer) {
|
|
205
|
-
const RouteErrorComponent = (route().options.errorComponent ?? router.options.defaultErrorComponent) || CatchBoundary.ErrorComponent;
|
|
206
|
-
return web.createComponent(RouteErrorComponent, {
|
|
207
|
-
get error() {
|
|
208
|
-
return match().error;
|
|
209
|
-
},
|
|
210
|
-
info: {
|
|
211
|
-
componentStack: ""
|
|
212
|
-
}
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
throw match().error;
|
|
216
|
-
}
|
|
217
|
-
}), web.createComponent(Solid__namespace.Match, {
|
|
231
|
+
}), Solid.createComponent(Solid__namespace.Match, {
|
|
218
232
|
get when() {
|
|
219
233
|
return match().status === "pending";
|
|
220
234
|
},
|
|
221
235
|
children: (_) => {
|
|
222
|
-
var _a;
|
|
223
236
|
const pendingMinMs = route().options.pendingMinMs ?? router.options.defaultPendingMinMs;
|
|
224
|
-
if (pendingMinMs && !
|
|
237
|
+
if (pendingMinMs && !router.getMatch(match().id)?.minPendingPromise) {
|
|
225
238
|
if (!router.isServer) {
|
|
226
239
|
const minPendingPromise = routerCore.createControlledPromise();
|
|
227
240
|
Promise.resolve().then(() => {
|
|
@@ -240,13 +253,50 @@ const MatchInner = (props) => {
|
|
|
240
253
|
}
|
|
241
254
|
}
|
|
242
255
|
const [loaderResult] = Solid__namespace.createResource(async () => {
|
|
243
|
-
var _a2;
|
|
244
256
|
await new Promise((r) => setTimeout(r, 0));
|
|
245
|
-
return
|
|
257
|
+
return router.getMatch(match().id)?.loadPromise;
|
|
246
258
|
});
|
|
247
|
-
return
|
|
259
|
+
return Solid.memo(loaderResult);
|
|
248
260
|
}
|
|
249
|
-
}),
|
|
261
|
+
}), Solid.createComponent(Solid__namespace.Match, {
|
|
262
|
+
get when() {
|
|
263
|
+
return match().status === "notFound";
|
|
264
|
+
},
|
|
265
|
+
children: (_) => {
|
|
266
|
+
invariant(routerCore.isNotFound(match().error), "Expected a notFound error");
|
|
267
|
+
return renderRouteNotFound.renderRouteNotFound(router, route(), match().error);
|
|
268
|
+
}
|
|
269
|
+
}), Solid.createComponent(Solid__namespace.Match, {
|
|
270
|
+
get when() {
|
|
271
|
+
return match().status === "redirected";
|
|
272
|
+
},
|
|
273
|
+
children: (_) => {
|
|
274
|
+
invariant(routerCore.isRedirect(match().error), "Expected a redirect error");
|
|
275
|
+
const [loaderResult] = Solid__namespace.createResource(async () => {
|
|
276
|
+
await new Promise((r) => setTimeout(r, 0));
|
|
277
|
+
return router.getMatch(match().id)?.loadPromise;
|
|
278
|
+
});
|
|
279
|
+
return Solid.memo(loaderResult);
|
|
280
|
+
}
|
|
281
|
+
}), Solid.createComponent(Solid__namespace.Match, {
|
|
282
|
+
get when() {
|
|
283
|
+
return match().status === "error";
|
|
284
|
+
},
|
|
285
|
+
children: (_) => {
|
|
286
|
+
if (router.isServer) {
|
|
287
|
+
const RouteErrorComponent = (route().options.errorComponent ?? router.options.defaultErrorComponent) || CatchBoundary.ErrorComponent;
|
|
288
|
+
return Solid.createComponent(RouteErrorComponent, {
|
|
289
|
+
get error() {
|
|
290
|
+
return match().error;
|
|
291
|
+
},
|
|
292
|
+
info: {
|
|
293
|
+
componentStack: ""
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
throw match().error;
|
|
298
|
+
}
|
|
299
|
+
}), Solid.createComponent(Solid__namespace.Match, {
|
|
250
300
|
get when() {
|
|
251
301
|
return match().status === "success";
|
|
252
302
|
},
|
|
@@ -261,10 +311,7 @@ const Outlet = () => {
|
|
|
261
311
|
const router = useRouter.useRouter();
|
|
262
312
|
const matchId = Solid__namespace.useContext(matchContext.matchContext);
|
|
263
313
|
const routeId = useRouterState.useRouterState({
|
|
264
|
-
select: (s) =>
|
|
265
|
-
var _a;
|
|
266
|
-
return (_a = s.matches.find((d) => d.id === matchId())) == null ? void 0 : _a.routeId;
|
|
267
|
-
}
|
|
314
|
+
select: (s) => s.matches.find((d) => d.id === matchId())?.routeId
|
|
268
315
|
});
|
|
269
316
|
const route = () => router.routesById[routeId()];
|
|
270
317
|
const parentGlobalNotFound = useRouterState.useRouterState({
|
|
@@ -277,69 +324,48 @@ const Outlet = () => {
|
|
|
277
324
|
});
|
|
278
325
|
const childMatchId = useRouterState.useRouterState({
|
|
279
326
|
select: (s) => {
|
|
280
|
-
var _a;
|
|
281
327
|
const matches = s.matches;
|
|
282
328
|
const index = matches.findIndex((d) => d.id === matchId());
|
|
283
|
-
const v =
|
|
329
|
+
const v = matches[index + 1]?.id;
|
|
284
330
|
return v;
|
|
285
331
|
}
|
|
286
332
|
});
|
|
287
|
-
return
|
|
333
|
+
return Solid.createComponent(Solid__namespace.Switch, {
|
|
288
334
|
get children() {
|
|
289
|
-
return [
|
|
290
|
-
get when() {
|
|
291
|
-
return router.isShell;
|
|
292
|
-
},
|
|
293
|
-
get children() {
|
|
294
|
-
return web.createComponent(Solid__namespace.Suspense, {
|
|
295
|
-
get fallback() {
|
|
296
|
-
return web.createComponent(web.Dynamic, {
|
|
297
|
-
get component() {
|
|
298
|
-
return router.options.defaultPendingComponent;
|
|
299
|
-
}
|
|
300
|
-
});
|
|
301
|
-
},
|
|
302
|
-
get children() {
|
|
303
|
-
return web.createComponent(CatchBoundary.ErrorComponent, {
|
|
304
|
-
error: new Error("ShellBoundaryError")
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
});
|
|
308
|
-
}
|
|
309
|
-
}), web.createComponent(Solid__namespace.Match, {
|
|
335
|
+
return [Solid.createComponent(Solid__namespace.Match, {
|
|
310
336
|
get when() {
|
|
311
337
|
return parentGlobalNotFound();
|
|
312
338
|
},
|
|
313
339
|
get children() {
|
|
314
340
|
return renderRouteNotFound.renderRouteNotFound(router, route(), void 0);
|
|
315
341
|
}
|
|
316
|
-
}),
|
|
342
|
+
}), Solid.createComponent(Solid__namespace.Match, {
|
|
317
343
|
get when() {
|
|
318
344
|
return childMatchId();
|
|
319
345
|
},
|
|
320
346
|
children: (matchId2) => {
|
|
321
|
-
return
|
|
347
|
+
return Solid.createComponent(Solid__namespace.Show, {
|
|
322
348
|
get when() {
|
|
323
349
|
return matchId2() === routerCore.rootRouteId;
|
|
324
350
|
},
|
|
325
351
|
get fallback() {
|
|
326
|
-
return
|
|
352
|
+
return Solid.createComponent(Match, {
|
|
327
353
|
get matchId() {
|
|
328
354
|
return matchId2();
|
|
329
355
|
}
|
|
330
356
|
});
|
|
331
357
|
},
|
|
332
358
|
get children() {
|
|
333
|
-
return
|
|
359
|
+
return Solid.createComponent(Solid__namespace.Suspense, {
|
|
334
360
|
get fallback() {
|
|
335
|
-
return
|
|
361
|
+
return Solid.createComponent(Solid.Dynamic, {
|
|
336
362
|
get component() {
|
|
337
363
|
return router.options.defaultPendingComponent;
|
|
338
364
|
}
|
|
339
365
|
});
|
|
340
366
|
},
|
|
341
367
|
get children() {
|
|
342
|
-
return
|
|
368
|
+
return Solid.createComponent(Match, {
|
|
343
369
|
get matchId() {
|
|
344
370
|
return matchId2();
|
|
345
371
|
}
|
package/dist/cjs/Match.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Match.cjs","sources":["../../src/Match.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport invariant from 'tiny-invariant'\nimport warning from 'tiny-warning'\nimport {\n createControlledPromise,\n getLocationChangeInfo,\n isNotFound,\n isRedirect,\n pick,\n rootRouteId,\n} from '@tanstack/router-core'\nimport { Dynamic } from 'solid-js/web'\nimport { CatchBoundary, ErrorComponent } from './CatchBoundary'\nimport { useRouterState } from './useRouterState'\nimport { useRouter } from './useRouter'\nimport { CatchNotFound } from './not-found'\nimport { matchContext } from './matchContext'\nimport { SafeFragment } from './SafeFragment'\nimport { renderRouteNotFound } from './renderRouteNotFound'\nimport { ScrollRestoration } from './scroll-restoration'\nimport type { AnyRoute } from '@tanstack/router-core'\n\nexport const Match = (props: { matchId: string }) => {\n const router = useRouter()\n const routeId = useRouterState({\n select: (s) => {\n return s.matches.find((d) => d.id === props.matchId)?.routeId as string\n },\n })\n\n invariant(\n routeId,\n `Could not find routeId for matchId \"${props.matchId}\". Please file an issue!`,\n )\n\n const route: () => AnyRoute = () => router.routesById[routeId()]\n\n const PendingComponent = () =>\n route().options.pendingComponent ?? router.options.defaultPendingComponent\n\n const routeErrorComponent = () =>\n route().options.errorComponent ?? router.options.defaultErrorComponent\n\n const routeOnCatch = () =>\n route().options.onCatch ?? router.options.defaultOnCatch\n\n const routeNotFoundComponent = () =>\n route().isRoot\n ? // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component\n (route().options.notFoundComponent ??\n router.options.notFoundRoute?.options.component)\n : route().options.notFoundComponent\n\n const ResolvedSuspenseBoundary = () =>\n // If we're on the root route, allow forcefully wrapping in suspense\n (!route().isRoot || route().options.wrapInSuspense) &&\n (route().options.wrapInSuspense ??\n PendingComponent() ??\n (route().options.errorComponent as any)?.preload)\n ? Solid.Suspense\n : SafeFragment\n\n const ResolvedCatchBoundary = () =>\n routeErrorComponent() ? CatchBoundary : SafeFragment\n\n const ResolvedNotFoundBoundary = () =>\n routeNotFoundComponent() ? CatchNotFound : SafeFragment\n\n const resetKey = useRouterState({\n select: (s) => s.loadedAt,\n })\n\n const parentRouteId = useRouterState({\n select: (s) => {\n const index = s.matches.findIndex((d) => d.id === props.matchId)\n return s.matches[index - 1]?.routeId as string\n },\n })\n\n return (\n <>\n <matchContext.Provider value={() => props.matchId}>\n <Dynamic\n component={ResolvedSuspenseBoundary()}\n fallback={<Dynamic component={PendingComponent()} />}\n >\n <Dynamic\n component={ResolvedCatchBoundary()}\n getResetKey={() => resetKey()}\n errorComponent={routeErrorComponent() || ErrorComponent}\n onCatch={(error: Error) => {\n // Forward not found errors (we don't want to show the error component for these)\n if (isNotFound(error)) throw error\n warning(false, `Error in route match: ${props.matchId}`)\n routeOnCatch()?.(error)\n }}\n >\n <Dynamic\n component={ResolvedNotFoundBoundary()}\n fallback={(error: any) => {\n // If the current not found handler doesn't exist or it has a\n // route ID which doesn't match the current route, rethrow the error\n if (\n !routeNotFoundComponent() ||\n (error.routeId && error.routeId !== routeId) ||\n (!error.routeId && !route().isRoot)\n )\n throw error\n\n return (\n <Dynamic component={routeNotFoundComponent()} {...error} />\n )\n }}\n >\n <MatchInner matchId={props.matchId} />\n </Dynamic>\n </Dynamic>\n </Dynamic>\n </matchContext.Provider>\n\n {parentRouteId() === rootRouteId ? (\n <>\n <OnRendered />\n <ScrollRestoration />\n </>\n ) : null}\n </>\n )\n}\n\n// On Rendered can't happen above the root layout because it actually\n// renders a dummy dom element to track the rendered state of the app.\n// We render a script tag with a key that changes based on the current\n// location state.key. Also, because it's below the root layout, it\n// allows us to fire onRendered events even after a hydration mismatch\n// error that occurred above the root layout (like bad head/link tags,\n// which is common).\nfunction OnRendered() {\n const router = useRouter()\n\n const location = useRouterState({\n select: (s) => {\n return s.resolvedLocation?.state.key\n },\n })\n Solid.createEffect(\n Solid.on([location], () => {\n router.emit({\n type: 'onRendered',\n ...getLocationChangeInfo(router.state),\n })\n }),\n )\n return null\n}\n\nexport const MatchInner = (props: { matchId: string }): any => {\n const router = useRouter()\n\n // { match, key, routeId } =\n const matchState: Solid.Accessor<any> = useRouterState({\n select: (s) => {\n const matchIndex = s.matches.findIndex((d) => d.id === props.matchId)\n const match = s.matches[matchIndex]!\n const routeId = match.routeId as string\n\n const remountFn =\n (router.routesById[routeId] as AnyRoute).options.remountDeps ??\n router.options.defaultRemountDeps\n const remountDeps = remountFn?.({\n routeId,\n loaderDeps: match.loaderDeps,\n params: match._strictParams,\n search: match._strictSearch,\n })\n const key = remountDeps ? JSON.stringify(remountDeps) : undefined\n\n return {\n key,\n routeId,\n match: pick(match, ['id', 'status', 'error']),\n }\n },\n })\n\n const route = () => router.routesById[matchState().routeId]!\n\n // function useChangedDiff(value: any) {\n // const ref = Solid.useRef(value)\n // const changed = ref.current !== value\n // if (changed) {\n // console.log(\n // 'Changed:',\n // value,\n // Object.fromEntries(\n // Object.entries(value).filter(\n // ([key, val]) => val !== ref.current[key],\n // ),\n // ),\n // )\n // }\n // ref.current = value\n // }\n\n // useChangedDiff(match)\n const match = () => matchState().match\n\n const out = () => {\n const Comp = route().options.component ?? router.options.defaultComponent\n if (Comp) {\n return <Comp />\n }\n return <Outlet />\n }\n\n return (\n <Solid.Switch>\n <Solid.Match when={match().status === 'notFound'}>\n {(_) => {\n invariant(isNotFound(match().error), 'Expected a notFound error')\n\n return renderRouteNotFound(router, route(), match().error)\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'redirected'}>\n {(_) => {\n invariant(isRedirect(match().error), 'Expected a redirect error')\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'error'}>\n {(_) => {\n if (router.isServer) {\n const RouteErrorComponent =\n (route().options.errorComponent ??\n router.options.defaultErrorComponent) ||\n ErrorComponent\n\n return (\n <RouteErrorComponent\n error={match().error}\n info={{\n componentStack: '',\n }}\n />\n )\n }\n\n throw match().error\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'pending'}>\n {(_) => {\n const pendingMinMs =\n route().options.pendingMinMs ?? router.options.defaultPendingMinMs\n\n if (pendingMinMs && !router.getMatch(match().id)?.minPendingPromise) {\n // Create a promise that will resolve after the minPendingMs\n if (!router.isServer) {\n const minPendingPromise = createControlledPromise<void>()\n\n Promise.resolve().then(() => {\n router.updateMatch(match().id, (prev) => ({\n ...prev,\n minPendingPromise,\n }))\n })\n\n setTimeout(() => {\n minPendingPromise.resolve()\n\n // We've handled the minPendingPromise, so we can delete it\n router.updateMatch(match().id, (prev) => ({\n ...prev,\n minPendingPromise: undefined,\n }))\n }, pendingMinMs)\n }\n }\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'success'}>{out()}</Solid.Match>\n </Solid.Switch>\n )\n}\n\nexport const Outlet = () => {\n const router = useRouter()\n const matchId = Solid.useContext(matchContext)\n const routeId = useRouterState({\n select: (s) => s.matches.find((d) => d.id === matchId())?.routeId as string,\n })\n\n const route = () => router.routesById[routeId()]!\n\n const parentGlobalNotFound = useRouterState({\n select: (s) => {\n const matches = s.matches\n const parentMatch = matches.find((d) => d.id === matchId())\n invariant(\n parentMatch,\n `Could not find parent match for matchId \"${matchId()}\"`,\n )\n return parentMatch.globalNotFound\n },\n })\n\n const childMatchId = useRouterState({\n select: (s) => {\n const matches = s.matches\n const index = matches.findIndex((d) => d.id === matchId())\n const v = matches[index + 1]?.id\n return v\n },\n })\n\n return (\n <Solid.Switch>\n <Solid.Match when={router.isShell}>\n <Solid.Suspense\n fallback={\n <Dynamic component={router.options.defaultPendingComponent} />\n }\n >\n <ErrorComponent error={new Error('ShellBoundaryError')} />\n </Solid.Suspense>\n </Solid.Match>\n\n <Solid.Match when={parentGlobalNotFound()}>\n {renderRouteNotFound(router, route(), undefined)}\n </Solid.Match>\n <Solid.Match when={childMatchId()}>\n {(matchId) => {\n // const nextMatch = <Match matchId={matchId()} />\n\n return (\n <Solid.Show\n when={matchId() === rootRouteId}\n fallback={<Match matchId={matchId()} />}\n >\n <Solid.Suspense\n fallback={\n <Dynamic component={router.options.defaultPendingComponent} />\n }\n >\n <Match matchId={matchId()} />\n </Solid.Suspense>\n </Solid.Show>\n )\n }}\n </Solid.Match>\n </Solid.Switch>\n )\n}\n"],"names":["Match","props","router","useRouter","routeId","useRouterState","select","s","matches","find","d","id","matchId","invariant","route","routesById","PendingComponent","options","pendingComponent","defaultPendingComponent","routeErrorComponent","errorComponent","defaultErrorComponent","routeOnCatch","onCatch","defaultOnCatch","routeNotFoundComponent","isRoot","notFoundComponent","notFoundRoute","component","ResolvedSuspenseBoundary","wrapInSuspense","preload","Solid","Suspense","SafeFragment","ResolvedCatchBoundary","CatchBoundary","ResolvedNotFoundBoundary","CatchNotFound","resetKey","loadedAt","parentRouteId","index","findIndex","_$createComponent","matchContext","Provider","value","children","Dynamic","fallback","getResetKey","ErrorComponent","error","isNotFound","warning","_$mergeProps","MatchInner","_$memo","rootRouteId","OnRendered","ScrollRestoration","location","resolvedLocation","state","key","createEffect","on","emit","type","getLocationChangeInfo","matchState","matchIndex","match","remountFn","remountDeps","defaultRemountDeps","loaderDeps","params","_strictParams","search","_strictSearch","JSON","stringify","undefined","pick","out","Comp","defaultComponent","Outlet","Switch","when","status","_","renderRouteNotFound","isRedirect","loaderResult","createResource","Promise","r","setTimeout","getMatch","loadPromise","isServer","RouteErrorComponent","info","componentStack","pendingMinMs","defaultPendingMinMs","minPendingPromise","createControlledPromise","resolve","then","updateMatch","prev","useContext","parentGlobalNotFound","parentMatch","globalNotFound","childMatchId","v","isShell","Error","Show"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Match.cjs","sources":["../../src/Match.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport invariant from 'tiny-invariant'\nimport warning from 'tiny-warning'\nimport {\n createControlledPromise,\n getLocationChangeInfo,\n isNotFound,\n isRedirect,\n pick,\n rootRouteId,\n} from '@tanstack/router-core'\nimport { Dynamic } from 'solid-js/web'\nimport { CatchBoundary, ErrorComponent } from './CatchBoundary'\nimport { useRouterState } from './useRouterState'\nimport { useRouter } from './useRouter'\nimport { CatchNotFound } from './not-found'\nimport { matchContext } from './matchContext'\nimport { SafeFragment } from './SafeFragment'\nimport { renderRouteNotFound } from './renderRouteNotFound'\nimport { ScrollRestoration } from './scroll-restoration'\nimport type { AnyRoute, RootRouteOptions } from '@tanstack/router-core'\n\nexport const Match = (props: { matchId: string }) => {\n const router = useRouter()\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === props.matchId)\n\n invariant(\n match,\n `Could not find match for matchId \"${props.matchId}\". Please file an issue!`,\n )\n return pick(match, ['routeId', 'ssr', '_displayPending'])\n },\n })\n\n const route: () => AnyRoute = () => router.routesById[matchState().routeId]\n\n const PendingComponent = () =>\n route().options.pendingComponent ?? router.options.defaultPendingComponent\n\n const routeErrorComponent = () =>\n route().options.errorComponent ?? router.options.defaultErrorComponent\n\n const routeOnCatch = () =>\n route().options.onCatch ?? router.options.defaultOnCatch\n\n const routeNotFoundComponent = () =>\n route().isRoot\n ? // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component\n (route().options.notFoundComponent ??\n router.options.notFoundRoute?.options.component)\n : route().options.notFoundComponent\n\n const resolvedNoSsr =\n matchState().ssr === false || matchState().ssr === 'data-only'\n\n const ResolvedSuspenseBoundary = () =>\n // If we're on the root route, allow forcefully wrapping in suspense\n (!route().isRoot ||\n route().options.wrapInSuspense ||\n resolvedNoSsr ||\n matchState()._displayPending) &&\n (route().options.wrapInSuspense ??\n PendingComponent() ??\n ((route().options.errorComponent as any)?.preload || resolvedNoSsr))\n ? Solid.Suspense\n : SafeFragment\n\n const ResolvedCatchBoundary = () =>\n routeErrorComponent() ? CatchBoundary : SafeFragment\n\n const ResolvedNotFoundBoundary = () =>\n routeNotFoundComponent() ? CatchNotFound : SafeFragment\n\n const resetKey = useRouterState({\n select: (s) => s.loadedAt,\n })\n\n const parentRouteId = useRouterState({\n select: (s) => {\n const index = s.matches.findIndex((d) => d.id === props.matchId)\n return s.matches[index - 1]?.routeId as string\n },\n })\n\n const ShellComponent = route().isRoot\n ? ((route().options as RootRouteOptions).shellComponent ?? SafeFragment)\n : SafeFragment\n\n return (\n <ShellComponent>\n <matchContext.Provider value={() => props.matchId}>\n <Dynamic\n component={ResolvedSuspenseBoundary()}\n fallback={<Dynamic component={PendingComponent()} />}\n >\n <Dynamic\n component={ResolvedCatchBoundary()}\n getResetKey={() => resetKey()}\n errorComponent={routeErrorComponent() || ErrorComponent}\n onCatch={(error: Error) => {\n // Forward not found errors (we don't want to show the error component for these)\n if (isNotFound(error)) throw error\n warning(false, `Error in route match: ${props.matchId}`)\n routeOnCatch()?.(error)\n }}\n >\n <Dynamic\n component={ResolvedNotFoundBoundary()}\n fallback={(error: any) => {\n // If the current not found handler doesn't exist or it has a\n // route ID which doesn't match the current route, rethrow the error\n if (\n !routeNotFoundComponent() ||\n (error.routeId && error.routeId !== matchState().routeId) ||\n (!error.routeId && !route().isRoot)\n )\n throw error\n\n return (\n <Dynamic component={routeNotFoundComponent()} {...error} />\n )\n }}\n >\n <Solid.Switch>\n <Solid.Match when={resolvedNoSsr}>\n <Solid.Show\n when={!router.isServer}\n fallback={<Dynamic component={PendingComponent()} />}\n >\n <MatchInner matchId={props.matchId} />\n </Solid.Show>\n </Solid.Match>\n <Solid.Match when={!resolvedNoSsr}>\n <MatchInner matchId={props.matchId} />\n </Solid.Match>\n </Solid.Switch>\n </Dynamic>\n </Dynamic>\n </Dynamic>\n </matchContext.Provider>\n\n {parentRouteId() === rootRouteId ? (\n <>\n <OnRendered />\n <ScrollRestoration />\n </>\n ) : null}\n </ShellComponent>\n )\n}\n\n// On Rendered can't happen above the root layout because it actually\n// renders a dummy dom element to track the rendered state of the app.\n// We render a script tag with a key that changes based on the current\n// location state.__TSR_key. Also, because it's below the root layout, it\n// allows us to fire onRendered events even after a hydration mismatch\n// error that occurred above the root layout (like bad head/link tags,\n// which is common).\nfunction OnRendered() {\n const router = useRouter()\n\n const location = useRouterState({\n select: (s) => {\n return s.resolvedLocation?.state.__TSR_key\n },\n })\n Solid.createEffect(\n Solid.on([location], () => {\n router.emit({\n type: 'onRendered',\n ...getLocationChangeInfo(router.state),\n })\n }),\n )\n return null\n}\n\nexport const MatchInner = (props: { matchId: string }): any => {\n const router = useRouter()\n\n const matchState = useRouterState({\n select: (s) => {\n const matchIndex = s.matches.findIndex((d) => d.id === props.matchId)\n const match = s.matches[matchIndex]!\n const routeId = match.routeId as string\n\n const remountFn =\n (router.routesById[routeId] as AnyRoute).options.remountDeps ??\n router.options.defaultRemountDeps\n const remountDeps = remountFn?.({\n routeId,\n loaderDeps: match.loaderDeps,\n params: match._strictParams,\n search: match._strictSearch,\n })\n const key = remountDeps ? JSON.stringify(remountDeps) : undefined\n\n return {\n key,\n routeId,\n match: pick(match, [\n 'id',\n 'status',\n 'error',\n '_forcePending',\n '_displayPending',\n ]),\n }\n },\n })\n\n const route = () => router.routesById[matchState().routeId]!\n\n const match = () => matchState().match\n\n const out = () => {\n const Comp = route().options.component ?? router.options.defaultComponent\n if (Comp) {\n return (\n <Solid.Show when={matchState().match.id} keyed>\n <Comp />\n </Solid.Show>\n )\n }\n return <Outlet />\n }\n\n return (\n <Solid.Switch>\n <Solid.Match when={match()._displayPending}>\n {(_) => {\n const [displayPendingResult] = Solid.createResource(\n () => router.getMatch(match().id)?.displayPendingPromise,\n )\n\n return <>{displayPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match()._forcePending}>\n {(_) => {\n const [minPendingResult] = Solid.createResource(\n () => router.getMatch(match().id)?.minPendingPromise,\n )\n\n return <>{minPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'pending'}>\n {(_) => {\n const pendingMinMs =\n route().options.pendingMinMs ?? router.options.defaultPendingMinMs\n\n if (pendingMinMs && !router.getMatch(match().id)?.minPendingPromise) {\n // Create a promise that will resolve after the minPendingMs\n if (!router.isServer) {\n const minPendingPromise = createControlledPromise<void>()\n\n Promise.resolve().then(() => {\n router.updateMatch(match().id, (prev) => ({\n ...prev,\n minPendingPromise,\n }))\n })\n\n setTimeout(() => {\n minPendingPromise.resolve()\n\n // We've handled the minPendingPromise, so we can delete it\n router.updateMatch(match().id, (prev) => ({\n ...prev,\n minPendingPromise: undefined,\n }))\n }, pendingMinMs)\n }\n }\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'notFound'}>\n {(_) => {\n invariant(isNotFound(match().error), 'Expected a notFound error')\n\n return renderRouteNotFound(router, route(), match().error)\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'redirected'}>\n {(_) => {\n invariant(isRedirect(match().error), 'Expected a redirect error')\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'error'}>\n {(_) => {\n if (router.isServer) {\n const RouteErrorComponent =\n (route().options.errorComponent ??\n router.options.defaultErrorComponent) ||\n ErrorComponent\n\n return (\n <RouteErrorComponent\n error={match().error}\n info={{\n componentStack: '',\n }}\n />\n )\n }\n\n throw match().error\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'success'}>{out()}</Solid.Match>\n </Solid.Switch>\n )\n}\n\nexport const Outlet = () => {\n const router = useRouter()\n const matchId = Solid.useContext(matchContext)\n const routeId = useRouterState({\n select: (s) => s.matches.find((d) => d.id === matchId())?.routeId as string,\n })\n\n const route = () => router.routesById[routeId()]!\n\n const parentGlobalNotFound = useRouterState({\n select: (s) => {\n const matches = s.matches\n const parentMatch = matches.find((d) => d.id === matchId())\n invariant(\n parentMatch,\n `Could not find parent match for matchId \"${matchId()}\"`,\n )\n return parentMatch.globalNotFound\n },\n })\n\n const childMatchId = useRouterState({\n select: (s) => {\n const matches = s.matches\n const index = matches.findIndex((d) => d.id === matchId())\n const v = matches[index + 1]?.id\n return v\n },\n })\n\n return (\n <Solid.Switch>\n <Solid.Match when={parentGlobalNotFound()}>\n {renderRouteNotFound(router, route(), undefined)}\n </Solid.Match>\n <Solid.Match when={childMatchId()}>\n {(matchId) => {\n // const nextMatch = <Match matchId={matchId()} />\n\n return (\n <Solid.Show\n when={matchId() === rootRouteId}\n fallback={<Match matchId={matchId()} />}\n >\n <Solid.Suspense\n fallback={\n <Dynamic component={router.options.defaultPendingComponent} />\n }\n >\n <Match matchId={matchId()} />\n </Solid.Suspense>\n </Solid.Show>\n )\n }}\n </Solid.Match>\n </Solid.Switch>\n )\n}\n"],"names":["Match","props","router","useRouter","matchState","useRouterState","select","s","match","matches","find","d","id","matchId","invariant","pick","route","routesById","routeId","PendingComponent","options","pendingComponent","defaultPendingComponent","routeErrorComponent","errorComponent","defaultErrorComponent","routeOnCatch","onCatch","defaultOnCatch","routeNotFoundComponent","isRoot","notFoundComponent","notFoundRoute","component","resolvedNoSsr","ssr","ResolvedSuspenseBoundary","wrapInSuspense","_displayPending","preload","Solid","Suspense","SafeFragment","ResolvedCatchBoundary","CatchBoundary","ResolvedNotFoundBoundary","CatchNotFound","resetKey","loadedAt","parentRouteId","index","findIndex","ShellComponent","shellComponent","_$createComponent","children","matchContext","Provider","value","Dynamic","fallback","getResetKey","ErrorComponent","error","isNotFound","warning","_$mergeProps","Switch","when","Show","isServer","MatchInner","_$memo","rootRouteId","OnRendered","ScrollRestoration","location","resolvedLocation","state","__TSR_key","createEffect","on","emit","type","getLocationChangeInfo","matchIndex","remountFn","remountDeps","defaultRemountDeps","loaderDeps","params","_strictParams","search","_strictSearch","key","JSON","stringify","undefined","out","Comp","defaultComponent","keyed","Outlet","_","displayPendingResult","createResource","getMatch","displayPendingPromise","_forcePending","minPendingResult","minPendingPromise","status","pendingMinMs","defaultPendingMinMs","createControlledPromise","Promise","resolve","then","updateMatch","prev","setTimeout","loaderResult","r","loadPromise","renderRouteNotFound","isRedirect","RouteErrorComponent","info","componentStack","useContext","parentGlobalNotFound","parentMatch","globalNotFound","childMatchId","v"],"mappings":"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"}
|