@tanstack/react-router 1.0.0 → 1.0.2
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/build/cjs/RouterProvider.js +3 -1
- package/build/cjs/RouterProvider.js.map +1 -1
- package/build/cjs/link.js +4 -1
- package/build/cjs/link.js.map +1 -1
- package/build/cjs/router.js +5 -4
- package/build/cjs/router.js.map +1 -1
- package/build/cjs/useNavigate.js +9 -6
- package/build/cjs/useNavigate.js.map +1 -1
- package/build/esm/index.js +21 -12
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +367 -367
- package/build/types/index.d.ts +24 -932
- package/build/types/link.d.ts +1 -1
- package/build/types/useNavigate.d.ts +2 -2
- package/build/umd/index.development.js +21 -12
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +2 -2
- package/src/RouterProvider.tsx +3 -1
- package/src/link.tsx +13 -7
- package/src/router.ts +5 -4
- package/src/useNavigate.tsx +10 -8
- package/build/cjs/_virtual/with-selector.development.js +0 -16
- package/build/cjs/_virtual/with-selector.development.js.map +0 -1
- package/build/cjs/_virtual/with-selector.js +0 -16
- package/build/cjs/_virtual/with-selector.js.map +0 -1
- package/build/cjs/_virtual/with-selector.production.min.js +0 -16
- package/build/cjs/_virtual/with-selector.production.min.js.map +0 -1
- package/build/cjs/build/esm/index.js +0 -79
- package/build/cjs/build/esm/index.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/@tanstack_react-store@0.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-store/build/modern/index.js +0 -47
- package/build/cjs/node_modules/.pnpm/@tanstack_react-store@0.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-store/build/modern/index.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/@tanstack_store@0.1.3/node_modules/@tanstack/store/build/modern/index.js +0 -70
- package/build/cjs/node_modules/.pnpm/@tanstack_store@0.1.3/node_modules/@tanstack/store/build/modern/index.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +0 -188
- package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +0 -39
- package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +0 -1
- package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/shim/with-selector.js +0 -26
- package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/shim/with-selector.js.map +0 -1
- package/build/cjs/packages/react-router/src/CatchBoundary.js +0 -123
- package/build/cjs/packages/react-router/src/CatchBoundary.js.map +0 -1
- package/build/cjs/packages/react-router/src/Matches.js +0 -235
- package/build/cjs/packages/react-router/src/Matches.js.map +0 -1
- package/build/cjs/packages/react-router/src/RouterProvider.js +0 -144
- package/build/cjs/packages/react-router/src/RouterProvider.js.map +0 -1
- package/build/cjs/packages/react-router/src/awaited.js +0 -43
- package/build/cjs/packages/react-router/src/awaited.js.map +0 -1
- package/build/cjs/packages/react-router/src/defer.js +0 -37
- package/build/cjs/packages/react-router/src/defer.js.map +0 -1
- package/build/cjs/packages/react-router/src/fileRoute.js +0 -27
- package/build/cjs/packages/react-router/src/fileRoute.js.map +0 -1
- package/build/cjs/packages/react-router/src/index.js +0 -61
- package/build/cjs/packages/react-router/src/index.js.map +0 -1
- package/build/cjs/packages/react-router/src/lazyRouteComponent.js +0 -54
- package/build/cjs/packages/react-router/src/lazyRouteComponent.js.map +0 -1
- package/build/cjs/packages/react-router/src/link.js +0 -148
- package/build/cjs/packages/react-router/src/link.js.map +0 -1
- package/build/cjs/packages/react-router/src/path.js +0 -209
- package/build/cjs/packages/react-router/src/path.js.map +0 -1
- package/build/cjs/packages/react-router/src/qss.js +0 -63
- package/build/cjs/packages/react-router/src/qss.js.map +0 -1
- package/build/cjs/packages/react-router/src/react.js +0 -634
- package/build/cjs/packages/react-router/src/react.js.map +0 -1
- package/build/cjs/packages/react-router/src/redirects.js +0 -25
- package/build/cjs/packages/react-router/src/redirects.js.map +0 -1
- package/build/cjs/packages/react-router/src/route.js +0 -134
- package/build/cjs/packages/react-router/src/route.js.map +0 -1
- package/build/cjs/packages/react-router/src/router.js +0 -1111
- package/build/cjs/packages/react-router/src/router.js.map +0 -1
- package/build/cjs/packages/react-router/src/scroll-restoration.js +0 -53
- package/build/cjs/packages/react-router/src/scroll-restoration.js.map +0 -1
- package/build/cjs/packages/react-router/src/searchParams.js +0 -81
- package/build/cjs/packages/react-router/src/searchParams.js.map +0 -1
- package/build/cjs/packages/react-router/src/useBlocker.js +0 -61
- package/build/cjs/packages/react-router/src/useBlocker.js.map +0 -1
- package/build/cjs/packages/react-router/src/useNavigate.js +0 -75
- package/build/cjs/packages/react-router/src/useNavigate.js.map +0 -1
- package/build/cjs/packages/react-router/src/useParams.js +0 -26
- package/build/cjs/packages/react-router/src/useParams.js.map +0 -1
- package/build/cjs/packages/react-router/src/useSearch.js +0 -25
- package/build/cjs/packages/react-router/src/useSearch.js.map +0 -1
- package/build/cjs/packages/react-router/src/utils.js +0 -239
- package/build/cjs/packages/react-router/src/utils.js.map +0 -1
- package/build/cjs/react/CatchBoundary.js +0 -123
- package/build/cjs/react/CatchBoundary.js.map +0 -1
- package/build/cjs/react/awaited.js +0 -43
- package/build/cjs/react/awaited.js.map +0 -1
- package/build/cjs/react/defer.js +0 -37
- package/build/cjs/react/defer.js.map +0 -1
- package/build/cjs/react.js +0 -650
- package/build/cjs/react.js.map +0 -1
- package/build/cjs/routerConfig.js +0 -209
- package/build/cjs/routerConfig.js.map +0 -1
- package/build/cjs/src/CatchBoundary.js +0 -126
- package/build/cjs/src/CatchBoundary.js.map +0 -1
- package/build/cjs/src/Matches.js +0 -235
- package/build/cjs/src/Matches.js.map +0 -1
- package/build/cjs/src/RouterProvider.js +0 -1051
- package/build/cjs/src/RouterProvider.js.map +0 -1
- package/build/cjs/src/awaited.js +0 -45
- package/build/cjs/src/awaited.js.map +0 -1
- package/build/cjs/src/defer.js +0 -39
- package/build/cjs/src/defer.js.map +0 -1
- package/build/cjs/src/fileRoute.js +0 -29
- package/build/cjs/src/fileRoute.js.map +0 -1
- package/build/cjs/src/index.js +0 -134
- package/build/cjs/src/index.js.map +0 -1
- package/build/cjs/src/lazyRouteComponent.js +0 -57
- package/build/cjs/src/lazyRouteComponent.js.map +0 -1
- package/build/cjs/src/link.js +0 -151
- package/build/cjs/src/link.js.map +0 -1
- package/build/cjs/src/path.js +0 -211
- package/build/cjs/src/path.js.map +0 -1
- package/build/cjs/src/qss.js +0 -65
- package/build/cjs/src/qss.js.map +0 -1
- package/build/cjs/src/redirects.js +0 -27
- package/build/cjs/src/redirects.js.map +0 -1
- package/build/cjs/src/route.js +0 -139
- package/build/cjs/src/route.js.map +0 -1
- package/build/cjs/src/router.js +0 -203
- package/build/cjs/src/router.js.map +0 -1
- package/build/cjs/src/scroll-restoration.js +0 -186
- package/build/cjs/src/scroll-restoration.js.map +0 -1
- package/build/cjs/src/searchParams.js +0 -83
- package/build/cjs/src/searchParams.js.map +0 -1
- package/build/cjs/src/useBlocker.js +0 -64
- package/build/cjs/src/useBlocker.js.map +0 -1
- package/build/cjs/src/useNavigate.js +0 -78
- package/build/cjs/src/useNavigate.js.map +0 -1
- package/build/cjs/src/useParams.js +0 -28
- package/build/cjs/src/useParams.js.map +0 -1
- package/build/cjs/src/useSearch.js +0 -27
- package/build/cjs/src/useSearch.js.map +0 -1
- package/build/cjs/src/utils.js +0 -230
- package/build/cjs/src/utils.js.map +0 -1
- package/build/cjs/useStore.js +0 -99
- package/build/cjs/useStore.js.map +0 -1
- package/build/types/RouteMatch.d.ts +0 -23
- package/build/types/injectHtml.d.ts +0 -0
- package/build/types/react/CatchBoundary.d.ts +0 -33
- package/build/types/react/awaited.d.ts +0 -9
- package/build/types/react/defer.d.ts +0 -19
- package/build/types/react.d.ts +0 -141
- package/build/types/useStore.d.ts +0 -12
package/build/cjs/src/Matches.js
DELETED
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @tanstack/react-router/src/index.tsx
|
|
3
|
-
*
|
|
4
|
-
* Copyright (c) TanStack
|
|
5
|
-
*
|
|
6
|
-
* This source code is licensed under the MIT license found in the
|
|
7
|
-
* LICENSE.md file in the root directory of this source tree.
|
|
8
|
-
*
|
|
9
|
-
* @license MIT
|
|
10
|
-
*/
|
|
11
|
-
'use strict';
|
|
12
|
-
|
|
13
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
|
-
|
|
15
|
-
var React = require('react');
|
|
16
|
-
var invariant = require('tiny-invariant');
|
|
17
|
-
var warning = require('tiny-warning');
|
|
18
|
-
var CatchBoundary = require('./CatchBoundary.js');
|
|
19
|
-
var RouterProvider = require('./RouterProvider.js');
|
|
20
|
-
var route = require('./route.js');
|
|
21
|
-
|
|
22
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
23
|
-
|
|
24
|
-
function _interopNamespace(e) {
|
|
25
|
-
if (e && e.__esModule) return e;
|
|
26
|
-
var n = Object.create(null);
|
|
27
|
-
if (e) {
|
|
28
|
-
Object.keys(e).forEach(function (k) {
|
|
29
|
-
if (k !== 'default') {
|
|
30
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
31
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
32
|
-
enumerable: true,
|
|
33
|
-
get: function () { return e[k]; }
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
n["default"] = e;
|
|
39
|
-
return Object.freeze(n);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
43
|
-
var invariant__default = /*#__PURE__*/_interopDefaultLegacy(invariant);
|
|
44
|
-
var warning__default = /*#__PURE__*/_interopDefaultLegacy(warning);
|
|
45
|
-
|
|
46
|
-
function Matches() {
|
|
47
|
-
const {
|
|
48
|
-
routesById,
|
|
49
|
-
state
|
|
50
|
-
} = RouterProvider.useRouter();
|
|
51
|
-
const {
|
|
52
|
-
matches
|
|
53
|
-
} = state;
|
|
54
|
-
const locationKey = RouterProvider.useRouterState().location.state.key;
|
|
55
|
-
const route$1 = routesById[route.rootRouteId];
|
|
56
|
-
const errorComponent = React__namespace.useCallback(props => {
|
|
57
|
-
return /*#__PURE__*/React__namespace.createElement(CatchBoundary.ErrorComponent, {
|
|
58
|
-
...props,
|
|
59
|
-
useMatch: route$1.useMatch,
|
|
60
|
-
useRouteContext: route$1.useRouteContext,
|
|
61
|
-
useSearch: route$1.useSearch,
|
|
62
|
-
useParams: route$1.useParams
|
|
63
|
-
});
|
|
64
|
-
}, [route$1]);
|
|
65
|
-
return /*#__PURE__*/React__namespace.createElement(matchesContext.Provider, {
|
|
66
|
-
value: matches
|
|
67
|
-
}, /*#__PURE__*/React__namespace.createElement(CatchBoundary.CatchBoundary, {
|
|
68
|
-
resetKey: locationKey,
|
|
69
|
-
errorComponent: errorComponent,
|
|
70
|
-
onCatch: () => {
|
|
71
|
-
warning__default["default"](false, `Error in router! Consider setting an 'errorComponent' in your RootRoute! 👍`);
|
|
72
|
-
}
|
|
73
|
-
}, matches.length ? /*#__PURE__*/React__namespace.createElement(Match, {
|
|
74
|
-
matches: matches
|
|
75
|
-
}) : null));
|
|
76
|
-
}
|
|
77
|
-
const defaultPending = () => null;
|
|
78
|
-
function SafeFragment(props) {
|
|
79
|
-
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, props.children);
|
|
80
|
-
}
|
|
81
|
-
function Match({
|
|
82
|
-
matches
|
|
83
|
-
}) {
|
|
84
|
-
const {
|
|
85
|
-
options,
|
|
86
|
-
routesById
|
|
87
|
-
} = RouterProvider.useRouter();
|
|
88
|
-
const match = matches[0];
|
|
89
|
-
const routeId = match?.routeId;
|
|
90
|
-
const route = routesById[routeId];
|
|
91
|
-
const locationKey = RouterProvider.useRouterState().location.state?.key;
|
|
92
|
-
const PendingComponent = route.options.pendingComponent ?? options.defaultPendingComponent ?? defaultPending;
|
|
93
|
-
const routeErrorComponent = route.options.errorComponent ?? options.defaultErrorComponent ?? CatchBoundary.ErrorComponent;
|
|
94
|
-
const ResolvedSuspenseBoundary = route.options.wrapInSuspense ? React__namespace.Suspense : SafeFragment;
|
|
95
|
-
const errorComponent = routeErrorComponent ? React__namespace.useCallback(props => {
|
|
96
|
-
return /*#__PURE__*/React__namespace.createElement(routeErrorComponent, {
|
|
97
|
-
...props,
|
|
98
|
-
useMatch: route.useMatch,
|
|
99
|
-
useRouteContext: route.useRouteContext,
|
|
100
|
-
useSearch: route.useSearch,
|
|
101
|
-
useParams: route.useParams
|
|
102
|
-
});
|
|
103
|
-
}, [route]) : undefined;
|
|
104
|
-
return /*#__PURE__*/React__namespace.createElement(matchesContext.Provider, {
|
|
105
|
-
value: matches
|
|
106
|
-
}, /*#__PURE__*/React__namespace.createElement(ResolvedSuspenseBoundary, {
|
|
107
|
-
fallback: /*#__PURE__*/React__namespace.createElement(PendingComponent, {
|
|
108
|
-
useMatch: route.useMatch,
|
|
109
|
-
useRouteContext: route.useRouteContext,
|
|
110
|
-
useSearch: route.useSearch,
|
|
111
|
-
useParams: route.useParams
|
|
112
|
-
})
|
|
113
|
-
}, errorComponent ? /*#__PURE__*/React__namespace.createElement(CatchBoundary.CatchBoundary, {
|
|
114
|
-
resetKey: locationKey,
|
|
115
|
-
errorComponent: errorComponent,
|
|
116
|
-
onCatch: () => {
|
|
117
|
-
warning__default["default"](false, `Error in route match: ${match.id}`);
|
|
118
|
-
}
|
|
119
|
-
}, /*#__PURE__*/React__namespace.createElement(MatchInner, {
|
|
120
|
-
match: match
|
|
121
|
-
})) : /*#__PURE__*/React__namespace.createElement(SafeFragment, null, /*#__PURE__*/React__namespace.createElement(MatchInner, {
|
|
122
|
-
match: match
|
|
123
|
-
}))));
|
|
124
|
-
}
|
|
125
|
-
function MatchInner({
|
|
126
|
-
match
|
|
127
|
-
}) {
|
|
128
|
-
const {
|
|
129
|
-
options,
|
|
130
|
-
routesById
|
|
131
|
-
} = RouterProvider.useRouter();
|
|
132
|
-
const route = routesById[match.routeId];
|
|
133
|
-
if (match.status === 'error') {
|
|
134
|
-
throw match.error;
|
|
135
|
-
}
|
|
136
|
-
if (match.status === 'pending') {
|
|
137
|
-
throw match.loadPromise;
|
|
138
|
-
}
|
|
139
|
-
if (match.status === 'success') {
|
|
140
|
-
let comp = route.options.component ?? options.defaultComponent;
|
|
141
|
-
if (comp) {
|
|
142
|
-
return /*#__PURE__*/React__namespace.createElement(comp, {
|
|
143
|
-
useMatch: route.useMatch,
|
|
144
|
-
useRouteContext: route.useRouteContext,
|
|
145
|
-
useSearch: route.useSearch,
|
|
146
|
-
useParams: route.useParams,
|
|
147
|
-
useLoaderData: route.useLoaderData
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
return /*#__PURE__*/React__namespace.createElement(Outlet, null);
|
|
151
|
-
}
|
|
152
|
-
invariant__default["default"](false, 'Idle routeMatch status encountered during rendering! You should never see this. File an issue!');
|
|
153
|
-
}
|
|
154
|
-
function Outlet() {
|
|
155
|
-
const matches = React__namespace.useContext(matchesContext).slice(1);
|
|
156
|
-
if (!matches[0]) {
|
|
157
|
-
return null;
|
|
158
|
-
}
|
|
159
|
-
return /*#__PURE__*/React__namespace.createElement(Match, {
|
|
160
|
-
matches: matches
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
function useMatchRoute() {
|
|
164
|
-
const {
|
|
165
|
-
matchRoute
|
|
166
|
-
} = RouterProvider.useRouter();
|
|
167
|
-
return React__namespace.useCallback(opts => {
|
|
168
|
-
const {
|
|
169
|
-
pending,
|
|
170
|
-
caseSensitive,
|
|
171
|
-
...rest
|
|
172
|
-
} = opts;
|
|
173
|
-
return matchRoute(rest, {
|
|
174
|
-
pending,
|
|
175
|
-
caseSensitive
|
|
176
|
-
});
|
|
177
|
-
}, []);
|
|
178
|
-
}
|
|
179
|
-
function MatchRoute(props) {
|
|
180
|
-
const matchRoute = useMatchRoute();
|
|
181
|
-
const params = matchRoute(props);
|
|
182
|
-
if (typeof props.children === 'function') {
|
|
183
|
-
return props.children(params);
|
|
184
|
-
}
|
|
185
|
-
return !!params ? props.children : null;
|
|
186
|
-
}
|
|
187
|
-
function useMatch(opts) {
|
|
188
|
-
const nearestMatch = React__namespace.useContext(matchesContext)[0];
|
|
189
|
-
const nearestMatchRouteId = nearestMatch?.routeId;
|
|
190
|
-
const matchRouteId = RouterProvider.useRouterState({
|
|
191
|
-
select: state => {
|
|
192
|
-
const match = opts?.from ? state.matches.find(d => d.routeId === opts?.from) : state.matches.find(d => d.id === nearestMatch.id);
|
|
193
|
-
return match.routeId;
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
if (opts?.strict ?? true) {
|
|
197
|
-
invariant__default["default"](nearestMatchRouteId == matchRouteId, `useMatch("${matchRouteId}") is being called in a component that is meant to render the '${nearestMatchRouteId}' route. Did you mean to 'useMatch("${matchRouteId}", { strict: false })' or 'useRoute("${matchRouteId}")' instead?`);
|
|
198
|
-
}
|
|
199
|
-
const matchSelection = RouterProvider.useRouterState({
|
|
200
|
-
select: state => {
|
|
201
|
-
const match = opts?.from ? state.matches.find(d => d.routeId === opts?.from) : state.matches.find(d => d.id === nearestMatch.id);
|
|
202
|
-
invariant__default["default"](match, `Could not find ${opts?.from ? `an active match from "${opts.from}"` : 'a nearest match!'}`);
|
|
203
|
-
return opts?.select ? opts.select(match) : match;
|
|
204
|
-
}
|
|
205
|
-
});
|
|
206
|
-
return matchSelection;
|
|
207
|
-
}
|
|
208
|
-
const matchesContext = /*#__PURE__*/React__namespace.createContext(null);
|
|
209
|
-
function useMatches(opts) {
|
|
210
|
-
const contextMatches = React__namespace.useContext(matchesContext);
|
|
211
|
-
return RouterProvider.useRouterState({
|
|
212
|
-
select: state => {
|
|
213
|
-
const matches = state.matches.slice(state.matches.findIndex(d => d.id === contextMatches[0]?.id));
|
|
214
|
-
return opts?.select ? opts.select(matches) : matches;
|
|
215
|
-
}
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
function useLoaderData(opts) {
|
|
219
|
-
const match = useMatch({
|
|
220
|
-
...opts,
|
|
221
|
-
select: undefined
|
|
222
|
-
});
|
|
223
|
-
return typeof opts.select === 'function' ? opts.select(match?.loaderData) : match?.loaderData;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
exports.Match = Match;
|
|
227
|
-
exports.MatchRoute = MatchRoute;
|
|
228
|
-
exports.Matches = Matches;
|
|
229
|
-
exports.Outlet = Outlet;
|
|
230
|
-
exports.matchesContext = matchesContext;
|
|
231
|
-
exports.useLoaderData = useLoaderData;
|
|
232
|
-
exports.useMatch = useMatch;
|
|
233
|
-
exports.useMatchRoute = useMatchRoute;
|
|
234
|
-
exports.useMatches = useMatches;
|
|
235
|
-
//# sourceMappingURL=Matches.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Matches.js","sources":["../../../src/Matches.tsx"],"sourcesContent":["import * as React from 'react'\nimport invariant from 'tiny-invariant'\nimport warning from 'tiny-warning'\nimport { CatchBoundary, ErrorComponent } from './CatchBoundary'\nimport { RouteMatch } from './RouterProvider'\nimport { useRouter, useRouterState } from './RouterProvider'\nimport { ResolveRelativePath, ToOptions } from './link'\nimport { AnyRoute, ReactNode, rootRouteId } from './route'\nimport { RouteById, RouteByPath, RouteIds, RoutePaths } from './routeInfo'\nimport { RegisteredRouter } from './router'\nimport { NoInfer, StrictOrFrom } from './utils'\n\nexport function Matches() {\n const { routesById, state } = useRouter()\n const { matches } = state\n\n const locationKey = useRouterState().location.state.key\n\n const route = routesById[rootRouteId]!\n\n const errorComponent = React.useCallback(\n (props: any) => {\n return React.createElement(ErrorComponent, {\n ...props,\n useMatch: route.useMatch,\n useRouteContext: route.useRouteContext,\n useSearch: route.useSearch,\n useParams: route.useParams,\n })\n },\n [route],\n )\n\n return (\n <matchesContext.Provider value={matches}>\n <CatchBoundary\n resetKey={locationKey}\n errorComponent={errorComponent}\n onCatch={() => {\n warning(\n false,\n `Error in router! Consider setting an 'errorComponent' in your RootRoute! 👍`,\n )\n }}\n >\n {matches.length ? <Match matches={matches} /> : null}\n </CatchBoundary>\n </matchesContext.Provider>\n )\n}\n\nconst defaultPending = () => null\nfunction SafeFragment(props: any) {\n return <>{props.children}</>\n}\n\nexport function Match({ matches }: { matches: RouteMatch[] }) {\n const { options, routesById } = useRouter()\n const match = matches[0]!\n const routeId = match?.routeId\n const route = routesById[routeId]!\n const locationKey = useRouterState().location.state?.key\n\n const PendingComponent = (route.options.pendingComponent ??\n options.defaultPendingComponent ??\n defaultPending) as any\n\n const routeErrorComponent =\n route.options.errorComponent ??\n options.defaultErrorComponent ??\n ErrorComponent\n\n const ResolvedSuspenseBoundary = route.options.wrapInSuspense\n ? React.Suspense\n : SafeFragment\n\n const errorComponent = routeErrorComponent\n ? React.useCallback(\n (props: any) => {\n return React.createElement(routeErrorComponent, {\n ...props,\n useMatch: route.useMatch,\n useRouteContext: route.useRouteContext,\n useSearch: route.useSearch,\n useParams: route.useParams,\n })\n },\n [route],\n )\n : undefined\n\n return (\n <matchesContext.Provider value={matches}>\n <ResolvedSuspenseBoundary\n fallback={React.createElement(PendingComponent, {\n useMatch: route.useMatch,\n useRouteContext: route.useRouteContext,\n useSearch: route.useSearch,\n useParams: route.useParams,\n })}\n >\n {errorComponent ? (\n <CatchBoundary\n resetKey={locationKey}\n errorComponent={errorComponent}\n onCatch={() => {\n warning(false, `Error in route match: ${match.id}`)\n }}\n >\n <MatchInner match={match} />\n </CatchBoundary>\n ) : (\n <SafeFragment>\n <MatchInner match={match} />\n </SafeFragment>\n )}\n </ResolvedSuspenseBoundary>\n </matchesContext.Provider>\n )\n}\nfunction MatchInner({ match }: { match: RouteMatch }): any {\n const { options, routesById } = useRouter()\n const route = routesById[match.routeId]!\n\n if (match.status === 'error') {\n throw match.error\n }\n\n if (match.status === 'pending') {\n throw match.loadPromise\n }\n\n if (match.status === 'success') {\n let comp = route.options.component ?? options.defaultComponent\n\n if (comp) {\n return React.createElement(comp, {\n useMatch: route.useMatch,\n useRouteContext: route.useRouteContext as any,\n useSearch: route.useSearch,\n useParams: route.useParams as any,\n useLoaderData: route.useLoaderData,\n })\n }\n\n return <Outlet />\n }\n\n invariant(\n false,\n 'Idle routeMatch status encountered during rendering! You should never see this. File an issue!',\n )\n}\n\nexport function Outlet() {\n const matches = React.useContext(matchesContext).slice(1)\n\n if (!matches[0]) {\n return null\n }\n\n return <Match matches={matches} />\n}\n\nexport interface MatchRouteOptions {\n pending?: boolean\n caseSensitive?: boolean\n includeSearch?: boolean\n fuzzy?: boolean\n}\n\nexport type MakeUseMatchRouteOptions<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n> = ToOptions<AnyRoute, TFrom, TTo, TMaskFrom, TMaskTo> & MatchRouteOptions\n\nexport function useMatchRoute<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n>() {\n const { matchRoute } = useRouter()\n\n return React.useCallback(\n <\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n TResolved extends string = ResolveRelativePath<TFrom, NoInfer<TTo>>,\n >(\n opts: MakeUseMatchRouteOptions<\n TRouteTree,\n TFrom,\n TTo,\n TMaskFrom,\n TMaskTo\n >,\n ): false | RouteById<TRouteTree, TResolved>['types']['allParams'] => {\n const { pending, caseSensitive, ...rest } = opts\n\n return matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n },\n [],\n )\n}\n\nexport type MakeMatchRouteOptions<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n> = ToOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo> &\n MatchRouteOptions & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | ((\n params?: RouteByPath<\n TRouteTree,\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['types']['allParams'],\n ) => ReactNode)\n | React.ReactNode\n }\n\nexport function MatchRoute<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n>(\n props: MakeMatchRouteOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>,\n): any {\n const matchRoute = useMatchRoute()\n const params = matchRoute(props as any)\n\n if (typeof props.children === 'function') {\n return (props.children as any)(params)\n }\n\n return !!params ? props.children : null\n}\n\nexport function useMatch<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>,\n TStrict extends boolean = true,\n TRouteMatchState = RouteMatch<TRouteTree, TFrom>,\n TSelected = TRouteMatchState,\n>(\n opts: StrictOrFrom<TFrom> & {\n select?: (match: TRouteMatchState) => TSelected\n },\n): TStrict extends true ? TSelected : TSelected | undefined {\n const nearestMatch = React.useContext(matchesContext)[0]!\n const nearestMatchRouteId = nearestMatch?.routeId\n\n const matchRouteId = useRouterState({\n select: (state) => {\n const match = opts?.from\n ? state.matches.find((d) => d.routeId === opts?.from)\n : state.matches.find((d) => d.id === nearestMatch.id)\n\n return match!.routeId\n },\n })\n\n if (opts?.strict ?? true) {\n invariant(\n nearestMatchRouteId == matchRouteId,\n `useMatch(\"${\n matchRouteId as string\n }\") is being called in a component that is meant to render the '${nearestMatchRouteId}' route. Did you mean to 'useMatch(\"${\n matchRouteId as string\n }\", { strict: false })' or 'useRoute(\"${\n matchRouteId as string\n }\")' instead?`,\n )\n }\n\n const matchSelection = useRouterState({\n select: (state) => {\n const match = opts?.from\n ? state.matches.find((d) => d.routeId === opts?.from)\n : state.matches.find((d) => d.id === nearestMatch.id)\n\n invariant(\n match,\n `Could not find ${\n opts?.from\n ? `an active match from \"${opts.from}\"`\n : 'a nearest match!'\n }`,\n )\n\n return opts?.select ? opts.select(match as any) : match\n },\n })\n\n return matchSelection as any\n}\n\nexport const matchesContext = React.createContext<RouteMatch[]>(null!)\n\nexport function useMatches<T = RouteMatch[]>(opts?: {\n select?: (matches: RouteMatch[]) => T\n}): T {\n const contextMatches = React.useContext(matchesContext)\n\n return useRouterState({\n select: (state) => {\n const matches = state.matches.slice(\n state.matches.findIndex((d) => d.id === contextMatches[0]?.id),\n )\n return opts?.select ? opts.select(matches) : (matches as T)\n },\n })\n}\n\nexport function useLoaderData<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>,\n TStrict extends boolean = true,\n TRouteMatch extends RouteMatch<TRouteTree, TFrom> = RouteMatch<\n TRouteTree,\n TFrom\n >,\n TSelected = TRouteMatch['loaderData'],\n>(\n opts: StrictOrFrom<TFrom> & {\n select?: (match: TRouteMatch) => TSelected\n },\n): TStrict extends true ? TSelected : TSelected | undefined {\n const match = useMatch({ ...opts, select: undefined })!\n\n return typeof opts.select === 'function'\n ? opts.select(match?.loaderData)\n : match?.loaderData\n}\n"],"names":["Matches","routesById","state","useRouter","matches","locationKey","useRouterState","location","key","route","rootRouteId","errorComponent","React","useCallback","props","createElement","ErrorComponent","useMatch","useRouteContext","useSearch","useParams","matchesContext","Provider","value","CatchBoundary","resetKey","onCatch","warning","length","Match","defaultPending","SafeFragment","Fragment","children","options","match","routeId","PendingComponent","pendingComponent","defaultPendingComponent","routeErrorComponent","defaultErrorComponent","ResolvedSuspenseBoundary","wrapInSuspense","Suspense","undefined","fallback","id","MatchInner","status","error","loadPromise","comp","component","defaultComponent","useLoaderData","Outlet","invariant","useContext","slice","useMatchRoute","matchRoute","opts","pending","caseSensitive","rest","MatchRoute","params","nearestMatch","nearestMatchRouteId","matchRouteId","select","from","find","d","strict","matchSelection","createContext","useMatches","contextMatches","findIndex","loaderData"],"mappings":"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"}
|