@tanstack/solid-router 1.166.7 → 2.0.0-alpha.1
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 +111 -68
- package/dist/cjs/Asset.cjs.map +1 -1
- package/dist/cjs/CatchBoundary.cjs +15 -15
- package/dist/cjs/CatchBoundary.cjs.map +1 -1
- package/dist/cjs/ClientOnly.cjs +2 -2
- package/dist/cjs/ClientOnly.cjs.map +1 -1
- package/dist/cjs/HeadContent.cjs +16 -8
- package/dist/cjs/HeadContent.cjs.map +1 -1
- package/dist/cjs/HeadContent.dev.cjs +18 -10
- package/dist/cjs/HeadContent.dev.cjs.map +1 -1
- package/dist/cjs/Match.cjs +125 -81
- package/dist/cjs/Match.cjs.map +1 -1
- package/dist/cjs/Matches.cjs +23 -16
- package/dist/cjs/Matches.cjs.map +1 -1
- package/dist/cjs/RouterProvider.cjs +3 -2
- package/dist/cjs/RouterProvider.cjs.map +1 -1
- package/dist/cjs/SafeFragment.cjs +1 -1
- package/dist/cjs/ScriptOnce.cjs +4 -2
- package/dist/cjs/ScriptOnce.cjs.map +1 -1
- package/dist/cjs/Scripts.cjs +6 -2
- package/dist/cjs/Scripts.cjs.map +1 -1
- package/dist/cjs/Transitioner.cjs +11 -16
- package/dist/cjs/Transitioner.cjs.map +1 -1
- package/dist/cjs/awaited.cjs +20 -16
- package/dist/cjs/awaited.cjs.map +1 -1
- package/dist/cjs/lazyRouteComponent.cjs +3 -3
- package/dist/cjs/lazyRouteComponent.cjs.map +1 -1
- package/dist/cjs/link.cjs +40 -22
- package/dist/cjs/link.cjs.map +1 -1
- package/dist/cjs/not-found.cjs +1 -1
- package/dist/cjs/renderRouteNotFound.cjs +1 -1
- package/dist/cjs/route.cjs +1 -1
- package/dist/cjs/scroll-restoration.cjs +1 -1
- package/dist/cjs/ssr/RouterClient.cjs +4 -23
- package/dist/cjs/ssr/RouterClient.cjs.map +1 -1
- package/dist/cjs/ssr/RouterServer.cjs +4 -47
- package/dist/cjs/ssr/RouterServer.cjs.map +1 -1
- package/dist/cjs/ssr/RouterServer.d.cts +0 -1
- package/dist/cjs/ssr/defaultRenderHandler.cjs +1 -1
- package/dist/cjs/ssr/defaultStreamHandler.cjs +1 -1
- package/dist/cjs/ssr/renderRouterToStream.cjs +2 -3
- package/dist/cjs/ssr/renderRouterToStream.cjs.map +1 -1
- package/dist/cjs/ssr/renderRouterToString.cjs +2 -2
- package/dist/cjs/ssr/renderRouterToString.cjs.map +1 -1
- package/dist/cjs/ssr/renderRouterToString.d.cts +1 -1
- package/dist/cjs/useBlocker.cjs +9 -5
- package/dist/cjs/useBlocker.cjs.map +1 -1
- package/dist/cjs/useMatch.cjs +3 -6
- package/dist/cjs/useMatch.cjs.map +1 -1
- package/dist/cjs/useNavigate.cjs +1 -1
- package/dist/cjs/useNavigate.cjs.map +1 -1
- package/dist/cjs/useRouterState.cjs +15 -9
- package/dist/cjs/useRouterState.cjs.map +1 -1
- package/dist/cjs/utils.cjs +2 -4
- package/dist/cjs/utils.cjs.map +1 -1
- package/dist/cjs/utils.d.cts +1 -0
- package/dist/esm/Asset.js +111 -68
- package/dist/esm/Asset.js.map +1 -1
- package/dist/esm/CatchBoundary.js +15 -15
- package/dist/esm/CatchBoundary.js.map +1 -1
- package/dist/esm/ClientOnly.js +2 -2
- package/dist/esm/ClientOnly.js.map +1 -1
- package/dist/esm/HeadContent.dev.js +18 -10
- package/dist/esm/HeadContent.dev.js.map +1 -1
- package/dist/esm/HeadContent.js +16 -8
- package/dist/esm/HeadContent.js.map +1 -1
- package/dist/esm/Match.js +89 -45
- package/dist/esm/Match.js.map +1 -1
- package/dist/esm/Matches.js +23 -16
- package/dist/esm/Matches.js.map +1 -1
- package/dist/esm/RouterProvider.js +3 -2
- package/dist/esm/RouterProvider.js.map +1 -1
- package/dist/esm/SafeFragment.js +1 -1
- package/dist/esm/ScriptOnce.js +4 -2
- package/dist/esm/ScriptOnce.js.map +1 -1
- package/dist/esm/Scripts.js +6 -2
- package/dist/esm/Scripts.js.map +1 -1
- package/dist/esm/Transitioner.js +11 -16
- package/dist/esm/Transitioner.js.map +1 -1
- package/dist/esm/awaited.js +18 -14
- package/dist/esm/awaited.js.map +1 -1
- package/dist/esm/lazyRouteComponent.js +3 -3
- package/dist/esm/lazyRouteComponent.js.map +1 -1
- package/dist/esm/link.js +39 -21
- package/dist/esm/link.js.map +1 -1
- package/dist/esm/not-found.js +1 -1
- package/dist/esm/renderRouteNotFound.js +1 -1
- package/dist/esm/route.js +1 -1
- package/dist/esm/scroll-restoration.js +1 -1
- package/dist/esm/ssr/RouterClient.js +4 -23
- package/dist/esm/ssr/RouterClient.js.map +1 -1
- package/dist/esm/ssr/RouterServer.d.ts +0 -1
- package/dist/esm/ssr/RouterServer.js +5 -48
- package/dist/esm/ssr/RouterServer.js.map +1 -1
- package/dist/esm/ssr/defaultRenderHandler.js +1 -1
- package/dist/esm/ssr/defaultStreamHandler.js +1 -1
- package/dist/esm/ssr/renderRouterToStream.js +2 -4
- package/dist/esm/ssr/renderRouterToStream.js.map +1 -1
- package/dist/esm/ssr/renderRouterToString.d.ts +1 -1
- package/dist/esm/ssr/renderRouterToString.js +2 -2
- package/dist/esm/ssr/renderRouterToString.js.map +1 -1
- package/dist/esm/useBlocker.js +9 -5
- package/dist/esm/useBlocker.js.map +1 -1
- package/dist/esm/useMatch.js +3 -6
- package/dist/esm/useMatch.js.map +1 -1
- package/dist/esm/useNavigate.js +1 -1
- package/dist/esm/useNavigate.js.map +1 -1
- package/dist/esm/useRouterState.js +15 -9
- package/dist/esm/useRouterState.js.map +1 -1
- package/dist/esm/utils.d.ts +1 -0
- package/dist/esm/utils.js +2 -4
- package/dist/esm/utils.js.map +1 -1
- package/dist/source/Asset.jsx +58 -35
- package/dist/source/Asset.jsx.map +1 -1
- package/dist/source/CatchBoundary.jsx +9 -5
- package/dist/source/CatchBoundary.jsx.map +1 -1
- package/dist/source/ClientOnly.jsx +1 -1
- package/dist/source/ClientOnly.jsx.map +1 -1
- package/dist/source/HeadContent.dev.jsx +8 -6
- package/dist/source/HeadContent.dev.jsx.map +1 -1
- package/dist/source/HeadContent.jsx +6 -4
- package/dist/source/HeadContent.jsx.map +1 -1
- package/dist/source/Match.jsx +76 -35
- package/dist/source/Match.jsx.map +1 -1
- package/dist/source/Matches.jsx +25 -17
- package/dist/source/Matches.jsx.map +1 -1
- package/dist/source/RouterProvider.jsx +2 -3
- package/dist/source/RouterProvider.jsx.map +1 -1
- package/dist/source/Scripts.jsx +4 -3
- package/dist/source/Scripts.jsx.map +1 -1
- package/dist/source/Transitioner.jsx +15 -16
- package/dist/source/Transitioner.jsx.map +1 -1
- package/dist/source/awaited.jsx +7 -8
- package/dist/source/awaited.jsx.map +1 -1
- package/dist/source/lazyRouteComponent.jsx +3 -3
- package/dist/source/lazyRouteComponent.jsx.map +1 -1
- package/dist/source/link.jsx +53 -48
- package/dist/source/link.jsx.map +1 -1
- package/dist/source/ssr/RouterClient.jsx +1 -13
- package/dist/source/ssr/RouterClient.jsx.map +1 -1
- package/dist/source/ssr/RouterServer.d.ts +0 -1
- package/dist/source/ssr/RouterServer.jsx +1 -34
- package/dist/source/ssr/RouterServer.jsx.map +1 -1
- package/dist/source/ssr/renderRouterToStream.jsx +2 -6
- package/dist/source/ssr/renderRouterToStream.jsx.map +1 -1
- package/dist/source/ssr/renderRouterToString.d.ts +1 -1
- package/dist/source/ssr/renderRouterToString.jsx +2 -2
- package/dist/source/ssr/renderRouterToString.jsx.map +1 -1
- package/dist/source/useBlocker.jsx +8 -4
- package/dist/source/useBlocker.jsx.map +1 -1
- package/dist/source/useMatch.jsx +3 -8
- package/dist/source/useMatch.jsx.map +1 -1
- package/dist/source/useNavigate.jsx +1 -1
- package/dist/source/useNavigate.jsx.map +1 -1
- package/dist/source/useRouterState.jsx +23 -10
- package/dist/source/useRouterState.jsx.map +1 -1
- package/dist/source/utils.d.ts +1 -0
- package/dist/source/utils.js +3 -4
- package/dist/source/utils.js.map +1 -1
- package/package.json +7 -6
- package/src/Asset.tsx +123 -95
- package/src/CatchBoundary.tsx +9 -7
- package/src/ClientOnly.tsx +8 -3
- package/src/HeadContent.dev.tsx +16 -11
- package/src/HeadContent.tsx +6 -4
- package/src/Match.tsx +112 -44
- package/src/Matches.tsx +39 -30
- package/src/RouterProvider.tsx +7 -4
- package/src/Scripts.tsx +4 -3
- package/src/Transitioner.tsx +51 -58
- package/src/awaited.tsx +11 -12
- package/src/lazyRouteComponent.tsx +3 -3
- package/src/link.tsx +68 -60
- package/src/ssr/RouterClient.tsx +1 -22
- package/src/ssr/RouterServer.tsx +1 -53
- package/src/ssr/renderRouterToStream.tsx +5 -15
- package/src/ssr/renderRouterToString.tsx +2 -2
- package/src/useBlocker.tsx +8 -4
- package/src/useMatch.tsx +6 -11
- package/src/useNavigate.tsx +1 -1
- package/src/useRouterState.tsx +34 -22
- package/src/utils.ts +5 -4
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 Solid = require("
|
|
4
|
-
const Solid
|
|
3
|
+
const Solid$1 = require("@solidjs/web");
|
|
4
|
+
const Solid = 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");
|
|
@@ -30,7 +30,8 @@ function _interopNamespaceDefault(e) {
|
|
|
30
30
|
n.default = e;
|
|
31
31
|
return Object.freeze(n);
|
|
32
32
|
}
|
|
33
|
-
const Solid__namespace = /* @__PURE__ */ _interopNamespaceDefault(Solid
|
|
33
|
+
const Solid__namespace = /* @__PURE__ */ _interopNamespaceDefault(Solid);
|
|
34
|
+
const MatchContext = matchContext.matchContext;
|
|
34
35
|
const Match = (props) => {
|
|
35
36
|
const router = useRouter.useRouter();
|
|
36
37
|
const matchState = useRouterState.useRouterState({
|
|
@@ -46,7 +47,7 @@ const Match = (props) => {
|
|
|
46
47
|
};
|
|
47
48
|
}
|
|
48
49
|
});
|
|
49
|
-
if (!matchState
|
|
50
|
+
if (!Solid__namespace.untrack(matchState)) return null;
|
|
50
51
|
const route = () => router.routesById[matchState().routeId];
|
|
51
52
|
const resolvePendingComponent = () => route().options.pendingComponent ?? router.options.defaultPendingComponent;
|
|
52
53
|
const routeErrorComponent = () => route().options.errorComponent ?? router.options.defaultErrorComponent;
|
|
@@ -55,8 +56,8 @@ const Match = (props) => {
|
|
|
55
56
|
// If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component
|
|
56
57
|
route().options.notFoundComponent ?? router.options.notFoundRoute?.options.component
|
|
57
58
|
) : route().options.notFoundComponent;
|
|
58
|
-
const resolvedNoSsr = matchState().ssr === false || matchState().ssr === "data-only";
|
|
59
|
-
const ResolvedSuspenseBoundary = () => Solid__namespace.
|
|
59
|
+
const resolvedNoSsr = Solid__namespace.createMemo(() => matchState().ssr === false || matchState().ssr === "data-only");
|
|
60
|
+
const ResolvedSuspenseBoundary = () => resolvedNoSsr() ? SafeFragment.SafeFragment : Solid__namespace.Loading;
|
|
60
61
|
const ResolvedCatchBoundary = () => routeErrorComponent() ? CatchBoundary.CatchBoundary : SafeFragment.SafeFragment;
|
|
61
62
|
const ResolvedNotFoundBoundary = () => routeNotFoundComponent() ? notFound.CatchNotFound : SafeFragment.SafeFragment;
|
|
62
63
|
const resetKey = useRouterState.useRouterState({
|
|
@@ -68,20 +69,23 @@ const Match = (props) => {
|
|
|
68
69
|
return s.matches[index - 1]?.routeId;
|
|
69
70
|
}
|
|
70
71
|
});
|
|
71
|
-
const ShellComponent = route().isRoot ? route().options.shellComponent ?? SafeFragment.SafeFragment : SafeFragment.SafeFragment;
|
|
72
|
-
return Solid.createComponent(
|
|
72
|
+
const ShellComponent = Solid__namespace.createMemo(() => route().isRoot ? route().options.shellComponent ?? SafeFragment.SafeFragment : SafeFragment.SafeFragment);
|
|
73
|
+
return Solid$1.createComponent(Solid$1.Dynamic, {
|
|
74
|
+
get component() {
|
|
75
|
+
return ShellComponent();
|
|
76
|
+
},
|
|
73
77
|
get children() {
|
|
74
|
-
return [Solid.createComponent(
|
|
78
|
+
return [Solid$1.createComponent(MatchContext, {
|
|
75
79
|
value: () => props.matchId,
|
|
76
80
|
get children() {
|
|
77
|
-
return Solid.createComponent(Solid.Dynamic, {
|
|
81
|
+
return Solid$1.createComponent(Solid$1.Dynamic, {
|
|
78
82
|
get component() {
|
|
79
83
|
return ResolvedSuspenseBoundary();
|
|
80
84
|
},
|
|
81
85
|
get fallback() {
|
|
82
86
|
return (
|
|
83
87
|
// Don't show fallback on server when using no-ssr mode to avoid hydration mismatch
|
|
84
|
-
Solid.memo(() => !!((isServer.isServer ?? router.isServer) || resolvedNoSsr))() ? void 0 : Solid.createComponent(Solid.Dynamic, {
|
|
88
|
+
Solid$1.memo(() => !!((isServer.isServer ?? router.isServer) || resolvedNoSsr()))() ? void 0 : Solid$1.createComponent(Solid$1.Dynamic, {
|
|
85
89
|
get component() {
|
|
86
90
|
return resolvePendingComponent();
|
|
87
91
|
}
|
|
@@ -89,7 +93,7 @@ const Match = (props) => {
|
|
|
89
93
|
);
|
|
90
94
|
},
|
|
91
95
|
get children() {
|
|
92
|
-
return Solid.createComponent(Solid.Dynamic, {
|
|
96
|
+
return Solid$1.createComponent(Solid$1.Dynamic, {
|
|
93
97
|
get component() {
|
|
94
98
|
return ResolvedCatchBoundary();
|
|
95
99
|
},
|
|
@@ -99,41 +103,43 @@ const Match = (props) => {
|
|
|
99
103
|
},
|
|
100
104
|
onCatch: (error) => {
|
|
101
105
|
if (routerCore.isNotFound(error)) throw error;
|
|
102
|
-
warning(false, `Error in route match: ${matchState
|
|
106
|
+
warning(false, `Error in route match: ${Solid__namespace.untrack(matchState).routeId}`);
|
|
103
107
|
routeOnCatch()?.(error);
|
|
104
108
|
},
|
|
105
109
|
get children() {
|
|
106
|
-
return Solid.createComponent(Solid.Dynamic, {
|
|
110
|
+
return Solid$1.createComponent(Solid$1.Dynamic, {
|
|
107
111
|
get component() {
|
|
108
112
|
return ResolvedNotFoundBoundary();
|
|
109
113
|
},
|
|
110
114
|
fallback: (error) => {
|
|
111
115
|
if (!routeNotFoundComponent() || error.routeId && error.routeId !== matchState().routeId || !error.routeId && !route().isRoot) throw error;
|
|
112
|
-
return Solid.createComponent(Solid.Dynamic, Solid.mergeProps({
|
|
116
|
+
return Solid$1.createComponent(Solid$1.Dynamic, Solid$1.mergeProps({
|
|
113
117
|
get component() {
|
|
114
118
|
return routeNotFoundComponent();
|
|
115
119
|
}
|
|
116
120
|
}, error));
|
|
117
121
|
},
|
|
118
122
|
get children() {
|
|
119
|
-
return Solid.createComponent(Solid__namespace.Switch, {
|
|
123
|
+
return Solid$1.createComponent(Solid__namespace.Switch, {
|
|
120
124
|
get children() {
|
|
121
|
-
return [Solid.createComponent(Solid__namespace.Match, {
|
|
122
|
-
when
|
|
125
|
+
return [Solid$1.createComponent(Solid__namespace.Match, {
|
|
126
|
+
get when() {
|
|
127
|
+
return resolvedNoSsr();
|
|
128
|
+
},
|
|
123
129
|
get children() {
|
|
124
|
-
return Solid.createComponent(Solid__namespace.Show, {
|
|
130
|
+
return Solid$1.createComponent(Solid__namespace.Show, {
|
|
125
131
|
get when() {
|
|
126
132
|
return !(isServer.isServer ?? router.isServer);
|
|
127
133
|
},
|
|
128
134
|
get fallback() {
|
|
129
|
-
return Solid.createComponent(Solid.Dynamic, {
|
|
135
|
+
return Solid$1.createComponent(Solid$1.Dynamic, {
|
|
130
136
|
get component() {
|
|
131
137
|
return resolvePendingComponent();
|
|
132
138
|
}
|
|
133
139
|
});
|
|
134
140
|
},
|
|
135
141
|
get children() {
|
|
136
|
-
return Solid.createComponent(MatchInner, {
|
|
142
|
+
return Solid$1.createComponent(MatchInner, {
|
|
137
143
|
get matchId() {
|
|
138
144
|
return props.matchId;
|
|
139
145
|
}
|
|
@@ -141,10 +147,12 @@ const Match = (props) => {
|
|
|
141
147
|
}
|
|
142
148
|
});
|
|
143
149
|
}
|
|
144
|
-
}), Solid.createComponent(Solid__namespace.Match, {
|
|
145
|
-
when
|
|
150
|
+
}), Solid$1.createComponent(Solid__namespace.Match, {
|
|
151
|
+
get when() {
|
|
152
|
+
return !resolvedNoSsr();
|
|
153
|
+
},
|
|
146
154
|
get children() {
|
|
147
|
-
return Solid.createComponent(MatchInner, {
|
|
155
|
+
return Solid$1.createComponent(MatchInner, {
|
|
148
156
|
get matchId() {
|
|
149
157
|
return props.matchId;
|
|
150
158
|
}
|
|
@@ -160,10 +168,11 @@ const Match = (props) => {
|
|
|
160
168
|
}
|
|
161
169
|
});
|
|
162
170
|
}
|
|
163
|
-
}), Solid.memo(() => Solid.memo(() => parentRouteId() === routerCore.rootRouteId)() ? [Solid.createComponent(OnRendered, {}), Solid.createComponent(scrollRestoration.ScrollRestoration, {})] : null)];
|
|
171
|
+
}), Solid$1.memo(() => Solid$1.memo(() => parentRouteId() === routerCore.rootRouteId)() ? [Solid$1.createComponent(OnRendered, {}), Solid$1.createComponent(scrollRestoration.ScrollRestoration, {})] : null)];
|
|
164
172
|
}
|
|
165
173
|
});
|
|
166
174
|
};
|
|
175
|
+
const lastOnRenderedKey = /* @__PURE__ */ new WeakMap();
|
|
167
176
|
function OnRendered() {
|
|
168
177
|
const router = useRouter.useRouter();
|
|
169
178
|
const location = useRouterState.useRouterState({
|
|
@@ -171,12 +180,15 @@ function OnRendered() {
|
|
|
171
180
|
return s.resolvedLocation?.state.__TSR_key;
|
|
172
181
|
}
|
|
173
182
|
});
|
|
174
|
-
Solid__namespace.createEffect(
|
|
183
|
+
Solid__namespace.createEffect(() => [location()], ([location2]) => {
|
|
184
|
+
if (!location2) return;
|
|
185
|
+
if (lastOnRenderedKey.get(router) === location2) return;
|
|
186
|
+
lastOnRenderedKey.set(router, location2);
|
|
175
187
|
router.emit({
|
|
176
188
|
type: "onRendered",
|
|
177
189
|
...routerCore.getLocationChangeInfo(router.state)
|
|
178
190
|
});
|
|
179
|
-
})
|
|
191
|
+
});
|
|
180
192
|
return null;
|
|
181
193
|
}
|
|
182
194
|
const MatchInner = (props) => {
|
|
@@ -209,50 +221,55 @@ const MatchInner = (props) => {
|
|
|
209
221
|
};
|
|
210
222
|
}
|
|
211
223
|
});
|
|
212
|
-
if (!matchState
|
|
224
|
+
if (!Solid__namespace.untrack(matchState)) return null;
|
|
213
225
|
const route = () => router.routesById[matchState().routeId];
|
|
214
226
|
const match = () => matchState().match;
|
|
215
227
|
const componentKey = () => matchState().key ?? matchState().match.id;
|
|
216
228
|
const out = () => {
|
|
217
|
-
const
|
|
229
|
+
const currentRoute = Solid__namespace.untrack(route);
|
|
230
|
+
const Comp = currentRoute.options.component ?? router.options.defaultComponent;
|
|
218
231
|
if (Comp) {
|
|
219
|
-
return Solid.createComponent(Comp, {});
|
|
232
|
+
return Solid$1.createComponent(Comp, {});
|
|
220
233
|
}
|
|
221
|
-
return Solid.createComponent(Outlet, {});
|
|
234
|
+
return Solid$1.createComponent(Outlet, {});
|
|
222
235
|
};
|
|
223
|
-
const keyedOut = () => Solid.createComponent(Solid__namespace.Show, {
|
|
236
|
+
const keyedOut = () => Solid$1.createComponent(Solid__namespace.Show, {
|
|
224
237
|
get when() {
|
|
225
238
|
return componentKey();
|
|
226
239
|
},
|
|
227
240
|
keyed: true,
|
|
228
241
|
children: (_key) => out()
|
|
229
242
|
});
|
|
230
|
-
return Solid.createComponent(Solid__namespace.Switch, {
|
|
243
|
+
return Solid$1.createComponent(Solid__namespace.Switch, {
|
|
231
244
|
get children() {
|
|
232
|
-
return [Solid.createComponent(Solid__namespace.Match, {
|
|
245
|
+
return [Solid$1.createComponent(Solid__namespace.Match, {
|
|
233
246
|
get when() {
|
|
234
247
|
return match()._displayPending;
|
|
235
248
|
},
|
|
236
249
|
children: (_) => {
|
|
237
|
-
const
|
|
238
|
-
|
|
250
|
+
const matchId = Solid__namespace.untrack(() => match().id);
|
|
251
|
+
const displayPendingResult = Solid__namespace.createMemo(() => router.getMatch(matchId)?._nonReactive.displayPendingPromise);
|
|
252
|
+
return Solid$1.memo(displayPendingResult);
|
|
239
253
|
}
|
|
240
|
-
}), Solid.createComponent(Solid__namespace.Match, {
|
|
254
|
+
}), Solid$1.createComponent(Solid__namespace.Match, {
|
|
241
255
|
get when() {
|
|
242
256
|
return match()._forcePending;
|
|
243
257
|
},
|
|
244
258
|
children: (_) => {
|
|
245
|
-
const
|
|
246
|
-
|
|
259
|
+
const matchId = Solid__namespace.untrack(() => match().id);
|
|
260
|
+
const minPendingResult = Solid__namespace.createMemo(() => router.getMatch(matchId)?._nonReactive.minPendingPromise);
|
|
261
|
+
return Solid$1.memo(minPendingResult);
|
|
247
262
|
}
|
|
248
|
-
}), Solid.createComponent(Solid__namespace.Match, {
|
|
263
|
+
}), Solid$1.createComponent(Solid__namespace.Match, {
|
|
249
264
|
get when() {
|
|
250
265
|
return match().status === "pending";
|
|
251
266
|
},
|
|
252
267
|
children: (_) => {
|
|
253
|
-
const
|
|
268
|
+
const currentMatch = Solid__namespace.untrack(match);
|
|
269
|
+
const currentRoute = Solid__namespace.untrack(route);
|
|
270
|
+
const pendingMinMs = currentRoute.options.pendingMinMs ?? router.options.defaultPendingMinMs;
|
|
254
271
|
if (pendingMinMs) {
|
|
255
|
-
const routerMatch = router.getMatch(
|
|
272
|
+
const routerMatch = router.getMatch(currentMatch.id);
|
|
256
273
|
if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {
|
|
257
274
|
if (!(isServer.isServer ?? router.isServer)) {
|
|
258
275
|
const minPendingPromise = routerCore.createControlledPromise();
|
|
@@ -264,49 +281,63 @@ const MatchInner = (props) => {
|
|
|
264
281
|
}
|
|
265
282
|
}
|
|
266
283
|
}
|
|
267
|
-
const
|
|
284
|
+
const loaderResult = Solid__namespace.createMemo(async () => {
|
|
268
285
|
await new Promise((r) => setTimeout(r, 0));
|
|
269
|
-
return router.getMatch(
|
|
286
|
+
return router.getMatch(currentMatch.id)?._nonReactive.loadPromise;
|
|
270
287
|
});
|
|
271
|
-
const FallbackComponent =
|
|
272
|
-
return [FallbackComponent && pendingMinMs > 0 ? Solid.createComponent(Solid.Dynamic, {
|
|
288
|
+
const FallbackComponent = currentRoute.options.pendingComponent ?? router.options.defaultPendingComponent;
|
|
289
|
+
return [FallbackComponent && pendingMinMs > 0 ? Solid$1.createComponent(Solid$1.Dynamic, {
|
|
273
290
|
component: FallbackComponent
|
|
274
|
-
}) : null, Solid.memo(loaderResult)];
|
|
291
|
+
}) : null, Solid$1.memo(loaderResult)];
|
|
275
292
|
}
|
|
276
|
-
}), Solid.createComponent(Solid__namespace.Match, {
|
|
293
|
+
}), Solid$1.createComponent(Solid__namespace.Match, {
|
|
277
294
|
get when() {
|
|
278
295
|
return match().status === "notFound";
|
|
279
296
|
},
|
|
280
297
|
children: (_) => {
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
298
|
+
const currentMatch = Solid__namespace.untrack(match);
|
|
299
|
+
const currentRoute = Solid__namespace.untrack(route);
|
|
300
|
+
const currentRouteId = Solid__namespace.untrack(() => matchState().routeId);
|
|
301
|
+
invariant(routerCore.isNotFound(currentMatch.error), "Expected a notFound error");
|
|
302
|
+
return Solid$1.createComponent(Solid__namespace.Show, {
|
|
303
|
+
when: currentRouteId,
|
|
286
304
|
keyed: true,
|
|
287
|
-
children: (_routeId) => renderRouteNotFound.renderRouteNotFound(router,
|
|
305
|
+
children: (_routeId) => renderRouteNotFound.renderRouteNotFound(router, currentRoute, currentMatch.error)
|
|
288
306
|
});
|
|
289
307
|
}
|
|
290
|
-
}), Solid.createComponent(Solid__namespace.Match, {
|
|
308
|
+
}), Solid$1.createComponent(Solid__namespace.Match, {
|
|
291
309
|
get when() {
|
|
292
310
|
return match().status === "redirected";
|
|
293
311
|
},
|
|
294
312
|
children: (_) => {
|
|
295
|
-
|
|
296
|
-
|
|
313
|
+
const matchId = Solid__namespace.untrack(() => match().id);
|
|
314
|
+
invariant(routerCore.isRedirect(Solid__namespace.untrack(match).error), "Expected a redirect error");
|
|
315
|
+
const loaderResult = Solid__namespace.createMemo(async () => {
|
|
297
316
|
await new Promise((r) => setTimeout(r, 0));
|
|
298
|
-
return router.getMatch(
|
|
317
|
+
return router.getMatch(matchId)?._nonReactive.loadPromise;
|
|
299
318
|
});
|
|
300
|
-
return Solid.memo(loaderResult);
|
|
319
|
+
return Solid$1.memo(loaderResult);
|
|
301
320
|
}
|
|
302
|
-
}), Solid.createComponent(Solid__namespace.Match, {
|
|
321
|
+
}), Solid$1.createComponent(Solid__namespace.Match, {
|
|
303
322
|
get when() {
|
|
304
323
|
return match().status === "error";
|
|
305
324
|
},
|
|
306
325
|
children: (_) => {
|
|
307
|
-
|
|
326
|
+
if (isServer.isServer ?? router.isServer) {
|
|
327
|
+
const currentMatch = Solid__namespace.untrack(match);
|
|
328
|
+
const RouteErrorComponent = (Solid__namespace.untrack(route).options.errorComponent ?? router.options.defaultErrorComponent) || CatchBoundary.ErrorComponent;
|
|
329
|
+
return Solid$1.createComponent(RouteErrorComponent, {
|
|
330
|
+
get error() {
|
|
331
|
+
return currentMatch.error;
|
|
332
|
+
},
|
|
333
|
+
info: {
|
|
334
|
+
componentStack: ""
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
throw Solid__namespace.untrack(match).error;
|
|
308
339
|
}
|
|
309
|
-
}), Solid.createComponent(Solid__namespace.Match, {
|
|
340
|
+
}), Solid$1.createComponent(Solid__namespace.Match, {
|
|
310
341
|
get when() {
|
|
311
342
|
return match().status === "success";
|
|
312
343
|
},
|
|
@@ -342,6 +373,13 @@ const Outlet = () => {
|
|
|
342
373
|
return v;
|
|
343
374
|
}
|
|
344
375
|
});
|
|
376
|
+
const childRouteId = useRouterState.useRouterState({
|
|
377
|
+
select: (s) => {
|
|
378
|
+
const matches = s.matches;
|
|
379
|
+
const index = matches.findIndex((d) => d.id === matchId());
|
|
380
|
+
return matches[index + 1]?.routeId;
|
|
381
|
+
}
|
|
382
|
+
});
|
|
345
383
|
const childMatchStatus = useRouterState.useRouterState({
|
|
346
384
|
select: (s) => {
|
|
347
385
|
const matches = s.matches;
|
|
@@ -350,12 +388,12 @@ const Outlet = () => {
|
|
|
350
388
|
}
|
|
351
389
|
});
|
|
352
390
|
const shouldShowNotFound = () => childMatchStatus() !== "redirected" && parentGlobalNotFound();
|
|
353
|
-
return Solid.createComponent(Solid__namespace.Show, {
|
|
391
|
+
return Solid$1.createComponent(Solid__namespace.Show, {
|
|
354
392
|
get when() {
|
|
355
|
-
return Solid.memo(() => !!!shouldShowNotFound())() && childMatchId();
|
|
393
|
+
return Solid$1.memo(() => !!!shouldShowNotFound())() && childMatchId();
|
|
356
394
|
},
|
|
357
395
|
get fallback() {
|
|
358
|
-
return Solid.createComponent(Solid__namespace.Show, {
|
|
396
|
+
return Solid$1.createComponent(Solid__namespace.Show, {
|
|
359
397
|
get when() {
|
|
360
398
|
return shouldShowNotFound();
|
|
361
399
|
},
|
|
@@ -366,33 +404,39 @@ const Outlet = () => {
|
|
|
366
404
|
},
|
|
367
405
|
children: (matchIdAccessor) => {
|
|
368
406
|
const currentMatchId = Solid__namespace.createMemo(() => matchIdAccessor());
|
|
369
|
-
return Solid.createComponent(Solid__namespace.Show, {
|
|
407
|
+
return Solid$1.createComponent(Solid__namespace.Show, {
|
|
370
408
|
get when() {
|
|
371
409
|
return routeId() === routerCore.rootRouteId;
|
|
372
410
|
},
|
|
373
411
|
get fallback() {
|
|
374
|
-
return Solid.createComponent(Match, {
|
|
412
|
+
return Solid$1.createComponent(Match, {
|
|
375
413
|
get matchId() {
|
|
376
414
|
return currentMatchId();
|
|
377
415
|
}
|
|
378
416
|
});
|
|
379
417
|
},
|
|
380
418
|
get children() {
|
|
381
|
-
return Solid.createComponent(Solid__namespace.
|
|
382
|
-
get
|
|
383
|
-
return
|
|
384
|
-
get component() {
|
|
385
|
-
return router.options.defaultPendingComponent;
|
|
386
|
-
}
|
|
387
|
-
});
|
|
419
|
+
return Solid$1.createComponent(Solid__namespace.Show, {
|
|
420
|
+
get when() {
|
|
421
|
+
return childRouteId();
|
|
388
422
|
},
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
423
|
+
keyed: true,
|
|
424
|
+
children: (_routeId) => Solid$1.createComponent(Solid__namespace.Loading, {
|
|
425
|
+
get fallback() {
|
|
426
|
+
return Solid$1.createComponent(Solid$1.Dynamic, {
|
|
427
|
+
get component() {
|
|
428
|
+
return router.options.defaultPendingComponent;
|
|
429
|
+
}
|
|
430
|
+
});
|
|
431
|
+
},
|
|
432
|
+
get children() {
|
|
433
|
+
return Solid$1.createComponent(Match, {
|
|
434
|
+
get matchId() {
|
|
435
|
+
return currentMatchId();
|
|
436
|
+
}
|
|
437
|
+
});
|
|
438
|
+
}
|
|
439
|
+
})
|
|
396
440
|
});
|
|
397
441
|
}
|
|
398
442
|
});
|
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 rootRouteId,\n} from '@tanstack/router-core'\nimport { isServer } from '@tanstack/router-core/isServer'\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 // During navigation transitions, matches can be temporarily removed\n // Return null to avoid errors - the component will handle this gracefully\n if (!match) {\n return null\n }\n\n return {\n routeId: match.routeId,\n ssr: match.ssr,\n _displayPending: match._displayPending,\n }\n },\n })\n\n // If match doesn't exist yet, return null (component is being unmounted or not ready)\n if (!matchState()) return null\n\n const route: () => AnyRoute = () => router.routesById[matchState()!.routeId]\n\n const resolvePendingComponent = () =>\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 = () => Solid.Suspense\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={\n // Don't show fallback on server when using no-ssr mode to avoid hydration mismatch\n (isServer ?? router.isServer) || resolvedNoSsr ? undefined : (\n <Dynamic component={resolvePendingComponent()} />\n )\n }\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: ${matchState()!.routeId}`)\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={!(isServer ?? router.isServer)}\n fallback={<Dynamic component={resolvePendingComponent()} />}\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 match = s.matches.find((d) => d.id === props.matchId)\n\n // During navigation transitions, matches can be temporarily removed\n if (!match) {\n return null\n }\n\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: {\n id: match.id,\n status: match.status,\n error: match.error,\n _forcePending: match._forcePending,\n _displayPending: match._displayPending,\n },\n }\n },\n })\n\n if (!matchState()) return null\n\n const route = () => router.routesById[matchState()!.routeId]!\n\n const match = () => matchState()!.match\n\n const componentKey = () => matchState()!.key ?? matchState()!.match.id\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 const keyedOut = () => (\n <Solid.Show when={componentKey()} keyed>\n {(_key) => out()}\n </Solid.Show>\n )\n\n return (\n <Solid.Switch>\n <Solid.Match when={match()._displayPending}>\n {(_) => {\n const [displayPendingResult] = Solid.createResource(\n () =>\n router.getMatch(match().id)?._nonReactive.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)?._nonReactive.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) {\n const routerMatch = router.getMatch(match().id)\n if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {\n // Create a promise that will resolve after the minPendingMs\n if (!(isServer ?? router.isServer)) {\n const minPendingPromise = createControlledPromise<void>()\n\n routerMatch._nonReactive.minPendingPromise = minPendingPromise\n\n setTimeout(() => {\n minPendingPromise.resolve()\n // We've handled the minPendingPromise, so we can delete it\n routerMatch._nonReactive.minPendingPromise = undefined\n }, pendingMinMs)\n }\n }\n }\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?._nonReactive.loadPromise\n })\n\n const FallbackComponent =\n route().options.pendingComponent ??\n router.options.defaultPendingComponent\n\n return (\n <>\n {FallbackComponent && pendingMinMs > 0 ? (\n <Dynamic component={FallbackComponent} />\n ) : null}\n {loaderResult()}\n </>\n )\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'notFound'}>\n {(_) => {\n invariant(isNotFound(match().error), 'Expected a notFound error')\n\n // Use Show with keyed to ensure re-render when routeId changes\n return (\n <Solid.Show when={matchState()!.routeId} keyed>\n {(_routeId) =>\n renderRouteNotFound(router, route(), match().error)\n }\n </Solid.Show>\n )\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)?._nonReactive.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'error'}>\n {(_) => {\n throw match().error\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'success'}>\n {keyedOut()}\n </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\n // During navigation transitions, parent match can be temporarily removed\n // Return false to avoid errors - the component will handle this gracefully\n if (!parentMatch) {\n return false\n }\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 const childMatchStatus = useRouterState({\n select: (s) => {\n const matches = s.matches\n const index = matches.findIndex((d) => d.id === matchId())\n return matches[index + 1]?.status\n },\n })\n\n // Only show not-found if we're not in a redirected state\n const shouldShowNotFound = () =>\n childMatchStatus() !== 'redirected' && parentGlobalNotFound()\n\n return (\n <Solid.Show\n when={!shouldShowNotFound() && childMatchId()}\n fallback={\n <Solid.Show when={shouldShowNotFound()}>\n {renderRouteNotFound(router, route(), undefined)}\n </Solid.Show>\n }\n >\n {(matchIdAccessor) => {\n // Use a memo to avoid stale accessor errors while keeping reactivity\n const currentMatchId = Solid.createMemo(() => matchIdAccessor())\n\n return (\n <Solid.Show\n when={routeId() === rootRouteId}\n fallback={<Match matchId={currentMatchId()} />}\n >\n <Solid.Suspense\n fallback={\n <Dynamic component={router.options.defaultPendingComponent} />\n }\n >\n <Match matchId={currentMatchId()} />\n </Solid.Suspense>\n </Solid.Show>\n )\n }}\n </Solid.Show>\n )\n}\n"],"names":["Match","props","router","useRouter","matchState","useRouterState","select","s","match","matches","find","d","id","matchId","routeId","ssr","_displayPending","route","routesById","resolvePendingComponent","options","pendingComponent","defaultPendingComponent","routeErrorComponent","errorComponent","defaultErrorComponent","routeOnCatch","onCatch","defaultOnCatch","routeNotFoundComponent","isRoot","notFoundComponent","notFoundRoute","component","resolvedNoSsr","ResolvedSuspenseBoundary","Solid","Suspense","ResolvedCatchBoundary","CatchBoundary","SafeFragment","ResolvedNotFoundBoundary","CatchNotFound","resetKey","loadedAt","parentRouteId","index","findIndex","ShellComponent","shellComponent","_$createComponent","children","matchContext","Provider","value","Dynamic","fallback","_$memo","isServer","undefined","getResetKey","ErrorComponent","error","isNotFound","warning","_$mergeProps","Switch","when","Show","MatchInner","rootRouteId","OnRendered","ScrollRestoration","location","resolvedLocation","state","__TSR_key","createEffect","on","emit","type","getLocationChangeInfo","remountFn","remountDeps","defaultRemountDeps","loaderDeps","params","_strictParams","search","_strictSearch","key","JSON","stringify","status","_forcePending","componentKey","out","Comp","defaultComponent","Outlet","keyedOut","keyed","_key","_","displayPendingResult","createResource","getMatch","_nonReactive","displayPendingPromise","minPendingResult","minPendingPromise","pendingMinMs","defaultPendingMinMs","routerMatch","createControlledPromise","setTimeout","resolve","loaderResult","Promise","r","loadPromise","FallbackComponent","invariant","_routeId","renderRouteNotFound","isRedirect","useContext","parentGlobalNotFound","parentMatch","globalNotFound","childMatchId","v","childMatchStatus","shouldShowNotFound","matchIdAccessor","currentMatchId","createMemo"],"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 rootRouteId,\n} from '@tanstack/router-core'\nimport { isServer } from '@tanstack/router-core/isServer'\nimport { Dynamic } from '@solidjs/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\nconst MatchContext = matchContext as unknown as Solid.Component<{\n value: any\n children?: any\n}>\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 // During navigation transitions, matches can be temporarily removed\n // Return null to avoid errors - the component will handle this gracefully\n if (!match) {\n return null\n }\n\n return {\n routeId: match.routeId,\n ssr: match.ssr,\n _displayPending: match._displayPending,\n }\n },\n })\n\n // If match doesn't exist yet, return null (component is being unmounted or not ready)\n if (!Solid.untrack(matchState)) return null\n\n const route: () => AnyRoute = () => router.routesById[matchState()!.routeId]\n\n const resolvePendingComponent = () =>\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 = Solid.createMemo(\n () => matchState()!.ssr === false || matchState()!.ssr === 'data-only',\n )\n\n const ResolvedSuspenseBoundary = () =>\n resolvedNoSsr() ? SafeFragment : Solid.Loading\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 = Solid.createMemo(() =>\n route().isRoot\n ? ((route().options as RootRouteOptions).shellComponent ?? SafeFragment)\n : SafeFragment,\n )\n\n return (\n <Dynamic component={ShellComponent()}>\n <MatchContext value={() => props.matchId}>\n <Dynamic\n component={ResolvedSuspenseBoundary()}\n fallback={\n // Don't show fallback on server when using no-ssr mode to avoid hydration mismatch\n (isServer ?? router.isServer) || resolvedNoSsr() ? undefined : (\n <Dynamic component={resolvePendingComponent()} />\n )\n }\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(\n false,\n `Error in route match: ${Solid.untrack(matchState)!.routeId}`,\n )\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={!(isServer ?? router.isServer)}\n fallback={<Dynamic component={resolvePendingComponent()} />}\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>\n\n {parentRouteId() === rootRouteId ? (\n <>\n <OnRendered />\n <ScrollRestoration />\n </>\n ) : null}\n </Dynamic>\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).\n//\n// In Solid, createEffect(source, fn) fires on initial mount as well as on\n// reactive changes. OnRendered can also remount when the first child route\n// changes (e.g. navigating from / to /posts). We deduplicate by tracking\n// the last emitted resolvedLocation key per router so each unique resolved\n// location only triggers one onRendered event regardless of remounts.\nconst lastOnRenderedKey = new WeakMap<object, string>()\n\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 () => [location()] as const,\n ([location]) => {\n if (!location) return\n if (lastOnRenderedKey.get(router) === location) return\n lastOnRenderedKey.set(router, 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 match = s.matches.find((d) => d.id === props.matchId)\n\n // During navigation transitions, matches can be temporarily removed\n if (!match) {\n return null\n }\n\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: {\n id: match.id,\n status: match.status,\n error: match.error,\n _forcePending: match._forcePending,\n _displayPending: match._displayPending,\n },\n }\n },\n })\n\n if (!Solid.untrack(matchState)) return null\n\n const route = () => router.routesById[matchState()!.routeId]!\n\n const match = () => matchState()!.match\n\n const componentKey = () => matchState()!.key ?? matchState()!.match.id\n\n const out = () => {\n const currentRoute = Solid.untrack(route)\n const Comp =\n currentRoute.options.component ?? router.options.defaultComponent\n if (Comp) {\n return <Comp />\n }\n return <Outlet />\n }\n\n const keyedOut = () => (\n <Solid.Show when={componentKey()} keyed>\n {(_key) => out()}\n </Solid.Show>\n )\n\n return (\n <Solid.Switch>\n <Solid.Match when={match()._displayPending}>\n {(_) => {\n const matchId = Solid.untrack(() => match().id)\n const displayPendingResult = Solid.createMemo(\n () => router.getMatch(matchId)?._nonReactive.displayPendingPromise,\n )\n\n return <>{displayPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match()._forcePending}>\n {(_) => {\n const matchId = Solid.untrack(() => match().id)\n const minPendingResult = Solid.createMemo(\n () => router.getMatch(matchId)?._nonReactive.minPendingPromise,\n )\n\n return <>{minPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'pending'}>\n {(_) => {\n const currentMatch = Solid.untrack(match)\n const currentRoute = Solid.untrack(route)\n const pendingMinMs =\n currentRoute.options.pendingMinMs ??\n router.options.defaultPendingMinMs\n\n if (pendingMinMs) {\n const routerMatch = router.getMatch(currentMatch.id)\n if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {\n // Create a promise that will resolve after the minPendingMs\n if (!(isServer ?? router.isServer)) {\n const minPendingPromise = createControlledPromise<void>()\n\n routerMatch._nonReactive.minPendingPromise = minPendingPromise\n\n setTimeout(() => {\n minPendingPromise.resolve()\n // We've handled the minPendingPromise, so we can delete it\n routerMatch._nonReactive.minPendingPromise = undefined\n }, pendingMinMs)\n }\n }\n }\n\n const loaderResult = Solid.createMemo(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(currentMatch.id)?._nonReactive.loadPromise\n })\n\n const FallbackComponent =\n currentRoute.options.pendingComponent ??\n router.options.defaultPendingComponent\n\n return (\n <>\n {FallbackComponent && pendingMinMs > 0 ? (\n <Dynamic component={FallbackComponent} />\n ) : null}\n {loaderResult()}\n </>\n )\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'notFound'}>\n {(_) => {\n const currentMatch = Solid.untrack(match)\n const currentRoute = Solid.untrack(route)\n const currentRouteId = Solid.untrack(() => matchState()!.routeId)\n invariant(isNotFound(currentMatch.error), 'Expected a notFound error')\n\n // Use Show with keyed to ensure re-render when routeId changes\n return (\n <Solid.Show when={currentRouteId} keyed>\n {(_routeId) =>\n renderRouteNotFound(router, currentRoute, currentMatch.error)\n }\n </Solid.Show>\n )\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'redirected'}>\n {(_) => {\n const matchId = Solid.untrack(() => match().id)\n invariant(\n isRedirect(Solid.untrack(match).error),\n 'Expected a redirect error',\n )\n\n const loaderResult = Solid.createMemo(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(matchId)?._nonReactive.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'error'}>\n {(_) => {\n if (isServer ?? router.isServer) {\n const currentMatch = Solid.untrack(match)\n const RouteErrorComponent =\n (Solid.untrack(route).options.errorComponent ??\n router.options.defaultErrorComponent) ||\n ErrorComponent\n\n return (\n <RouteErrorComponent\n error={currentMatch.error}\n info={{\n componentStack: '',\n }}\n />\n )\n }\n\n throw Solid.untrack(match).error\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'success'}>\n {keyedOut()}\n </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\n // During navigation transitions, parent match can be temporarily removed\n // Return false to avoid errors - the component will handle this gracefully\n if (!parentMatch) {\n return false\n }\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 const childRouteId = useRouterState({\n select: (s) => {\n const matches = s.matches\n const index = matches.findIndex((d) => d.id === matchId())\n return matches[index + 1]?.routeId\n },\n })\n\n const childMatchStatus = useRouterState({\n select: (s) => {\n const matches = s.matches\n const index = matches.findIndex((d) => d.id === matchId())\n return matches[index + 1]?.status\n },\n })\n\n // Only show not-found if we're not in a redirected state\n const shouldShowNotFound = () =>\n childMatchStatus() !== 'redirected' && parentGlobalNotFound()\n\n return (\n <Solid.Show\n when={!shouldShowNotFound() && childMatchId()}\n fallback={\n <Solid.Show when={shouldShowNotFound()}>\n {renderRouteNotFound(router, route(), undefined)}\n </Solid.Show>\n }\n >\n {(matchIdAccessor) => {\n // Use a memo to avoid stale accessor errors while keeping reactivity\n const currentMatchId = Solid.createMemo(() => matchIdAccessor())\n\n return (\n <Solid.Show\n when={routeId() === rootRouteId}\n fallback={<Match matchId={currentMatchId()} />}\n >\n <Solid.Show when={childRouteId()} keyed>\n {(_routeId) => (\n <Solid.Loading\n fallback={\n <Dynamic\n component={router.options.defaultPendingComponent}\n />\n }\n >\n <Match matchId={currentMatchId()} />\n </Solid.Loading>\n )}\n </Solid.Show>\n </Solid.Show>\n )\n }}\n </Solid.Show>\n )\n}\n"],"names":["MatchContext","matchContext","Match","props","router","useRouter","matchState","useRouterState","select","s","match","matches","find","d","id","matchId","routeId","ssr","_displayPending","Solid","untrack","route","routesById","resolvePendingComponent","options","pendingComponent","defaultPendingComponent","routeErrorComponent","errorComponent","defaultErrorComponent","routeOnCatch","onCatch","defaultOnCatch","routeNotFoundComponent","isRoot","notFoundComponent","notFoundRoute","component","resolvedNoSsr","createMemo","ResolvedSuspenseBoundary","SafeFragment","Loading","ResolvedCatchBoundary","CatchBoundary","ResolvedNotFoundBoundary","CatchNotFound","resetKey","loadedAt","parentRouteId","index","findIndex","ShellComponent","shellComponent","_$createComponent","Dynamic","children","value","fallback","_$memo","isServer","undefined","getResetKey","ErrorComponent","error","isNotFound","warning","_$mergeProps","Switch","when","Show","MatchInner","rootRouteId","OnRendered","ScrollRestoration","lastOnRenderedKey","WeakMap","location","resolvedLocation","state","__TSR_key","createEffect","get","set","emit","type","getLocationChangeInfo","remountFn","remountDeps","defaultRemountDeps","loaderDeps","params","_strictParams","search","_strictSearch","key","JSON","stringify","status","_forcePending","componentKey","out","currentRoute","Comp","defaultComponent","Outlet","keyedOut","keyed","_key","_","displayPendingResult","getMatch","_nonReactive","displayPendingPromise","minPendingResult","minPendingPromise","currentMatch","pendingMinMs","defaultPendingMinMs","routerMatch","createControlledPromise","setTimeout","resolve","loaderResult","Promise","r","loadPromise","FallbackComponent","currentRouteId","invariant","_routeId","renderRouteNotFound","isRedirect","RouteErrorComponent","info","componentStack","useContext","parentGlobalNotFound","parentMatch","globalNotFound","childMatchId","v","childRouteId","childMatchStatus","shouldShowNotFound","matchIdAccessor","currentMatchId"],"mappings":"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"}
|
package/dist/cjs/Matches.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const Solid$1 = require("
|
|
3
|
+
const Solid$1 = require("@solidjs/web");
|
|
4
4
|
const Solid = require("solid-js");
|
|
5
5
|
const warning = require("tiny-warning");
|
|
6
6
|
const routerCore = require("@tanstack/router-core");
|
|
@@ -29,9 +29,10 @@ function _interopNamespaceDefault(e) {
|
|
|
29
29
|
return Object.freeze(n);
|
|
30
30
|
}
|
|
31
31
|
const Solid__namespace = /* @__PURE__ */ _interopNamespaceDefault(Solid);
|
|
32
|
+
const MatchContext = matchContext.matchContext;
|
|
32
33
|
function Matches() {
|
|
33
34
|
const router = useRouter.useRouter();
|
|
34
|
-
const ResolvedSuspense = (isServer.isServer ?? router.isServer) || typeof document !== "undefined" && router.ssr ? SafeFragment.SafeFragment : Solid__namespace.
|
|
35
|
+
const ResolvedSuspense = router.options.disableGlobalCatchBoundary || (isServer.isServer ?? router.isServer) || typeof document !== "undefined" && router.ssr ? SafeFragment.SafeFragment : Solid__namespace.Loading;
|
|
35
36
|
const rootRoute = () => router.routesById[routerCore.rootRouteId];
|
|
36
37
|
const PendingComponent = rootRoute().options.pendingComponent ?? router.options.defaultPendingComponent;
|
|
37
38
|
const OptionalWrapper = router.options.InnerWrap || SafeFragment.SafeFragment;
|
|
@@ -58,24 +59,30 @@ function MatchesInner() {
|
|
|
58
59
|
const resetKey = useRouterState.useRouterState({
|
|
59
60
|
select: (s) => s.loadedAt
|
|
60
61
|
});
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
const matchContent = () => Solid$1.createComponent(Solid__namespace.Show, {
|
|
63
|
+
get when() {
|
|
64
|
+
return matchId();
|
|
65
|
+
},
|
|
66
|
+
get children() {
|
|
67
|
+
return Solid$1.createComponent(Match.Match, {
|
|
68
|
+
get matchId() {
|
|
69
|
+
return matchId();
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
if (router.options.disableGlobalCatchBoundary) {
|
|
75
|
+
return Solid$1.createComponent(MatchContext, {
|
|
76
|
+
value: matchId,
|
|
66
77
|
get children() {
|
|
67
|
-
return
|
|
68
|
-
get matchId() {
|
|
69
|
-
return matchId();
|
|
70
|
-
}
|
|
71
|
-
});
|
|
78
|
+
return matchContent();
|
|
72
79
|
}
|
|
73
80
|
});
|
|
74
|
-
}
|
|
75
|
-
return Solid$1.createComponent(
|
|
81
|
+
}
|
|
82
|
+
return Solid$1.createComponent(MatchContext, {
|
|
76
83
|
value: matchId,
|
|
77
84
|
get children() {
|
|
78
|
-
return Solid$1.
|
|
85
|
+
return Solid$1.createComponent(CatchBoundary.CatchBoundary, {
|
|
79
86
|
getResetKey: () => resetKey(),
|
|
80
87
|
errorComponent: CatchBoundary.ErrorComponent,
|
|
81
88
|
get onCatch() {
|
|
@@ -86,7 +93,7 @@ function MatchesInner() {
|
|
|
86
93
|
} : void 0;
|
|
87
94
|
},
|
|
88
95
|
get children() {
|
|
89
|
-
return
|
|
96
|
+
return matchContent();
|
|
90
97
|
}
|
|
91
98
|
});
|
|
92
99
|
}
|