@tanstack/react-router 0.0.1-beta.12 → 0.0.1-beta.14
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/react-router/src/index.js +81 -102
- package/build/cjs/react-router/src/index.js.map +1 -1
- package/build/cjs/router-core/build/esm/index.js +91 -117
- package/build/cjs/router-core/build/esm/index.js.map +1 -1
- package/build/esm/index.js +129 -180
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +43 -29
- package/build/types/index.d.ts +10 -3
- package/build/umd/index.development.js +136 -184
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +2 -2
- package/build/umd/index.production.js.map +1 -1
- package/package.json +3 -2
- package/src/index.tsx +60 -76
|
@@ -15,7 +15,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
15
15
|
var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
|
|
16
16
|
var React = require('react');
|
|
17
17
|
var shim = require('use-sync-external-store/shim');
|
|
18
|
-
var index = require('../../router-core/build/esm/index.js');
|
|
18
|
+
var index$1 = require('../../router-core/build/esm/index.js');
|
|
19
|
+
var index = require('react-lazy-with-preload/lib/index');
|
|
19
20
|
|
|
20
21
|
function _interopNamespace(e) {
|
|
21
22
|
if (e && e.__esModule) return e;
|
|
@@ -43,9 +44,6 @@ const _excluded = ["type", "children", "target", "activeProps", "inactiveProps",
|
|
|
43
44
|
//
|
|
44
45
|
const matchesContext = /*#__PURE__*/React__namespace.createContext(null);
|
|
45
46
|
const routerContext = /*#__PURE__*/React__namespace.createContext(null); // Detect if we're in the DOM
|
|
46
|
-
|
|
47
|
-
const isDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);
|
|
48
|
-
const useLayoutEffect = isDOM ? React__namespace.useLayoutEffect : React__namespace.useEffect;
|
|
49
47
|
function MatchesProvider(props) {
|
|
50
48
|
return /*#__PURE__*/React__namespace.createElement(matchesContext.Provider, props);
|
|
51
49
|
}
|
|
@@ -65,7 +63,7 @@ function createReactRouter(opts) {
|
|
|
65
63
|
const resolvedRouteId = router.resolvePath(route.routeId, subRouteId);
|
|
66
64
|
const resolvedRoute = router.getRoute(resolvedRouteId);
|
|
67
65
|
useRouterSubscription(router);
|
|
68
|
-
index.invariant(resolvedRoute, "Could not find a route for route \"" + resolvedRouteId + "\"! Did you forget to add it to your route config?");
|
|
66
|
+
index$1.invariant(resolvedRoute, "Could not find a route for route \"" + resolvedRouteId + "\"! Did you forget to add it to your route config?");
|
|
69
67
|
return resolvedRoute;
|
|
70
68
|
},
|
|
71
69
|
linkProps: options => {
|
|
@@ -109,6 +107,12 @@ function createReactRouter(opts) {
|
|
|
109
107
|
next
|
|
110
108
|
} = linkInfo;
|
|
111
109
|
|
|
110
|
+
const reactHandleClick = e => {
|
|
111
|
+
React__namespace.startTransition(() => {
|
|
112
|
+
handleClick(e);
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
|
|
112
116
|
const composeHandlers = handlers => e => {
|
|
113
117
|
e.persist();
|
|
114
118
|
handlers.forEach(handler => {
|
|
@@ -117,12 +121,12 @@ function createReactRouter(opts) {
|
|
|
117
121
|
}; // Get the active props
|
|
118
122
|
|
|
119
123
|
|
|
120
|
-
const resolvedActiveProps = isActive ? (_functionalUpdate = index.functionalUpdate(activeProps, {})) != null ? _functionalUpdate : {} : {}; // Get the inactive props
|
|
124
|
+
const resolvedActiveProps = isActive ? (_functionalUpdate = index$1.functionalUpdate(activeProps, {})) != null ? _functionalUpdate : {} : {}; // Get the inactive props
|
|
121
125
|
|
|
122
|
-
const resolvedInactiveProps = isActive ? {} : (_functionalUpdate2 = index.functionalUpdate(inactiveProps, {})) != null ? _functionalUpdate2 : {};
|
|
126
|
+
const resolvedInactiveProps = isActive ? {} : (_functionalUpdate2 = index$1.functionalUpdate(inactiveProps, {})) != null ? _functionalUpdate2 : {};
|
|
123
127
|
return _rollupPluginBabelHelpers["extends"]({}, resolvedActiveProps, resolvedInactiveProps, rest, {
|
|
124
128
|
href: disabled ? undefined : next.href,
|
|
125
|
-
onClick: composeHandlers([
|
|
129
|
+
onClick: composeHandlers([reactHandleClick, onClick]),
|
|
126
130
|
onFocus: composeHandlers([handleFocus, onFocus]),
|
|
127
131
|
onMouseEnter: composeHandlers([handleEnter, onMouseEnter]),
|
|
128
132
|
onMouseLeave: composeHandlers([handleLeave, onMouseLeave]),
|
|
@@ -168,7 +172,7 @@ function createReactRouter(opts) {
|
|
|
168
172
|
};
|
|
169
173
|
};
|
|
170
174
|
|
|
171
|
-
const coreRouter = index.createRouter(_rollupPluginBabelHelpers["extends"]({}, opts, {
|
|
175
|
+
const coreRouter = index$1.createRouter(_rollupPluginBabelHelpers["extends"]({}, opts, {
|
|
172
176
|
createRouter: router => {
|
|
173
177
|
const routerExt = {
|
|
174
178
|
useState: () => {
|
|
@@ -179,13 +183,13 @@ function createReactRouter(opts) {
|
|
|
179
183
|
var _useMatches, _opts$strict;
|
|
180
184
|
|
|
181
185
|
useRouterSubscription(router);
|
|
182
|
-
index.invariant(routeId !== index.rootRouteId, "\"" + index.rootRouteId + "\" cannot be used with useMatch! Did you mean to useRoute(\"" + index.rootRouteId + "\")?");
|
|
186
|
+
index$1.invariant(routeId !== index$1.rootRouteId, "\"" + index$1.rootRouteId + "\" cannot be used with useMatch! Did you mean to useRoute(\"" + index$1.rootRouteId + "\")?");
|
|
183
187
|
const runtimeMatch = (_useMatches = useMatches()) == null ? void 0 : _useMatches[0];
|
|
184
188
|
const match = router.state.matches.find(d => d.routeId === routeId);
|
|
185
189
|
|
|
186
190
|
if ((_opts$strict = opts == null ? void 0 : opts.strict) != null ? _opts$strict : true) {
|
|
187
|
-
index.invariant(match, "Could not find an active match for \"" + routeId + "\"!");
|
|
188
|
-
index.invariant(runtimeMatch.routeId == (match == null ? void 0 : match.routeId), "useMatch('" + (match == null ? void 0 : match.routeId) + "') is being called in a component that is meant to render the '" + runtimeMatch.routeId + "' route. Did you mean to 'useMatch(" + (match == null ? void 0 : match.routeId) + ", { strict: false })' or 'useRoute(" + (match == null ? void 0 : match.routeId) + ")' instead?");
|
|
191
|
+
index$1.invariant(match, "Could not find an active match for \"" + routeId + "\"!");
|
|
192
|
+
index$1.invariant(runtimeMatch.routeId == (match == null ? void 0 : match.routeId), "useMatch('" + (match == null ? void 0 : match.routeId) + "') is being called in a component that is meant to render the '" + runtimeMatch.routeId + "' route. Did you mean to 'useMatch(" + (match == null ? void 0 : match.routeId) + ", { strict: false })' or 'useRoute(" + (match == null ? void 0 : match.routeId) + ")' instead?");
|
|
189
193
|
}
|
|
190
194
|
|
|
191
195
|
return match;
|
|
@@ -202,18 +206,12 @@ function createReactRouter(opts) {
|
|
|
202
206
|
const routeExt = makeRouteExt(route, router);
|
|
203
207
|
Object.assign(route, routeExt);
|
|
204
208
|
},
|
|
205
|
-
|
|
206
|
-
if (typeof
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
if (typeof res === 'object' && res.default) {
|
|
210
|
-
return /*#__PURE__*/React__namespace.createElement(res.default);
|
|
211
|
-
} else {
|
|
212
|
-
return res;
|
|
213
|
-
}
|
|
209
|
+
loadComponent: async component => {
|
|
210
|
+
if (component.preload && typeof document !== 'undefined') {
|
|
211
|
+
component.preload(); // return await component.preload()
|
|
214
212
|
}
|
|
215
213
|
|
|
216
|
-
return
|
|
214
|
+
return component;
|
|
217
215
|
}
|
|
218
216
|
}));
|
|
219
217
|
return coreRouter;
|
|
@@ -227,10 +225,8 @@ function RouterProvider(_ref2) {
|
|
|
227
225
|
|
|
228
226
|
router.update(rest);
|
|
229
227
|
useRouterSubscription(router);
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
router.load();
|
|
233
|
-
return unsub;
|
|
228
|
+
React__namespace.useEffect(() => {
|
|
229
|
+
return router.mount();
|
|
234
230
|
}, [router]);
|
|
235
231
|
return /*#__PURE__*/React__namespace.createElement(routerContext.Provider, {
|
|
236
232
|
value: {
|
|
@@ -242,7 +238,7 @@ function RouterProvider(_ref2) {
|
|
|
242
238
|
}
|
|
243
239
|
function useRouter() {
|
|
244
240
|
const value = React__namespace.useContext(routerContext);
|
|
245
|
-
index.warning(!value, 'useRouter must be used inside a <Router> component!');
|
|
241
|
+
index$1.warning(!value, 'useRouter must be used inside a <Router> component!');
|
|
246
242
|
useRouterSubscription(value.router);
|
|
247
243
|
return value.router;
|
|
248
244
|
}
|
|
@@ -250,64 +246,43 @@ function useMatches() {
|
|
|
250
246
|
return React__namespace.useContext(matchesContext);
|
|
251
247
|
}
|
|
252
248
|
function Outlet() {
|
|
253
|
-
var _match$
|
|
249
|
+
var _ref3, _match$__$pendingComp, _match$__$errorCompon;
|
|
254
250
|
|
|
255
251
|
const router = useRouter();
|
|
256
252
|
const matches = useMatches().slice(1);
|
|
257
253
|
const match = matches[0];
|
|
254
|
+
const defaultPending = React__namespace.useCallback(() => null, []);
|
|
258
255
|
|
|
259
256
|
if (!match) {
|
|
260
257
|
return null;
|
|
261
258
|
}
|
|
262
259
|
|
|
263
|
-
const
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
260
|
+
const PendingComponent = (_ref3 = (_match$__$pendingComp = match.__.pendingComponent) != null ? _match$__$pendingComp : router.options.defaultPendingComponent) != null ? _ref3 : defaultPending;
|
|
261
|
+
const errorComponent = (_match$__$errorCompon = match.__.errorComponent) != null ? _match$__$errorCompon : router.options.defaultErrorComponent;
|
|
262
|
+
return /*#__PURE__*/React__namespace.createElement(MatchesProvider, {
|
|
263
|
+
value: matches
|
|
264
|
+
}, /*#__PURE__*/React__namespace.createElement(React__namespace.Suspense, {
|
|
265
|
+
fallback: /*#__PURE__*/React__namespace.createElement(PendingComponent, null)
|
|
266
|
+
}, /*#__PURE__*/React__namespace.createElement(CatchBoundary, {
|
|
267
|
+
errorComponent: errorComponent
|
|
268
|
+
}, (() => {
|
|
272
269
|
if (match.status === 'error') {
|
|
273
|
-
|
|
274
|
-
return errorElement;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
if (match.options.useErrorBoundary || router.options.useErrorBoundary) {
|
|
278
|
-
throw match.error;
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
return /*#__PURE__*/React__namespace.createElement(DefaultErrorBoundary, {
|
|
282
|
-
error: match.error
|
|
283
|
-
});
|
|
270
|
+
throw match.error;
|
|
284
271
|
}
|
|
285
272
|
|
|
286
|
-
if (match.status === '
|
|
287
|
-
|
|
288
|
-
var _match$__$pendingElem;
|
|
289
|
-
|
|
290
|
-
const pendingElement = (_match$__$pendingElem = match.__.pendingElement) != null ? _match$__$pendingElem : router.options.defaultPendingElement;
|
|
291
|
-
|
|
292
|
-
if (match.options.pendingMs || pendingElement) {
|
|
293
|
-
var _ref3;
|
|
294
|
-
|
|
295
|
-
return (_ref3 = pendingElement) != null ? _ref3 : null;
|
|
296
|
-
}
|
|
297
|
-
}
|
|
273
|
+
if (match.status === 'success') {
|
|
274
|
+
var _ref4, _ref5;
|
|
298
275
|
|
|
299
|
-
return null;
|
|
276
|
+
return /*#__PURE__*/React__namespace.createElement((_ref4 = (_ref5 = match.__.component) != null ? _ref5 : router.options.defaultComponent) != null ? _ref4 : Outlet);
|
|
300
277
|
}
|
|
301
278
|
|
|
302
|
-
|
|
303
|
-
|
|
279
|
+
if (match.__.loadPromise) {
|
|
280
|
+
console.log(match.matchId, 'suspend');
|
|
281
|
+
throw match.__.loadPromise;
|
|
282
|
+
}
|
|
304
283
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
value: matches
|
|
308
|
-
}, /*#__PURE__*/React__namespace.createElement(CatchBoundary, {
|
|
309
|
-
catchElement: catchElement
|
|
310
|
-
}, element));
|
|
284
|
+
index$1.invariant(false, 'This should never happen!');
|
|
285
|
+
})())));
|
|
311
286
|
}
|
|
312
287
|
|
|
313
288
|
class CatchBoundary extends React__namespace.Component {
|
|
@@ -327,12 +302,12 @@ class CatchBoundary extends React__namespace.Component {
|
|
|
327
302
|
}
|
|
328
303
|
|
|
329
304
|
render() {
|
|
330
|
-
var _this$props$
|
|
305
|
+
var _this$props$errorComp;
|
|
331
306
|
|
|
332
|
-
const
|
|
307
|
+
const errorComponent = (_this$props$errorComp = this.props.errorComponent) != null ? _this$props$errorComp : DefaultErrorBoundary;
|
|
333
308
|
|
|
334
309
|
if (this.state.error) {
|
|
335
|
-
return
|
|
310
|
+
return /*#__PURE__*/React__namespace.createElement(errorComponent, this.state);
|
|
336
311
|
}
|
|
337
312
|
|
|
338
313
|
return this.props.children;
|
|
@@ -392,36 +367,40 @@ function Prompt(_ref7) {
|
|
|
392
367
|
return children != null ? children : null;
|
|
393
368
|
}
|
|
394
369
|
|
|
395
|
-
exports.cleanPath = index.cleanPath;
|
|
396
|
-
exports.createBrowserHistory = index.createBrowserHistory;
|
|
397
|
-
exports.createHashHistory = index.createHashHistory;
|
|
398
|
-
exports.createMemoryHistory = index.createMemoryHistory;
|
|
399
|
-
exports.createRoute = index.createRoute;
|
|
400
|
-
exports.createRouteConfig = index.createRouteConfig;
|
|
401
|
-
exports.createRouteMatch = index.createRouteMatch;
|
|
402
|
-
exports.createRouter = index.createRouter;
|
|
403
|
-
exports.decode = index.decode;
|
|
404
|
-
exports.defaultParseSearch = index.defaultParseSearch;
|
|
405
|
-
exports.defaultStringifySearch = index.defaultStringifySearch;
|
|
406
|
-
exports.encode = index.encode;
|
|
407
|
-
exports.functionalUpdate = index.functionalUpdate;
|
|
408
|
-
exports.interpolatePath = index.interpolatePath;
|
|
409
|
-
exports.invariant = index.invariant;
|
|
410
|
-
exports.joinPaths = index.joinPaths;
|
|
411
|
-
exports.last = index.last;
|
|
412
|
-
exports.matchByPath = index.matchByPath;
|
|
413
|
-
exports.matchPathname = index.matchPathname;
|
|
414
|
-
exports.parsePathname = index.parsePathname;
|
|
415
|
-
exports.parseSearchWith = index.parseSearchWith;
|
|
416
|
-
exports.pick = index.pick;
|
|
417
|
-
exports.replaceEqualDeep = index.replaceEqualDeep;
|
|
418
|
-
exports.resolvePath = index.resolvePath;
|
|
419
|
-
exports.rootRouteId = index.rootRouteId;
|
|
420
|
-
exports.stringifySearchWith = index.stringifySearchWith;
|
|
421
|
-
exports.trimPath = index.trimPath;
|
|
422
|
-
exports.trimPathLeft = index.trimPathLeft;
|
|
423
|
-
exports.trimPathRight = index.trimPathRight;
|
|
424
|
-
exports.warning = index.warning;
|
|
370
|
+
exports.cleanPath = index$1.cleanPath;
|
|
371
|
+
exports.createBrowserHistory = index$1.createBrowserHistory;
|
|
372
|
+
exports.createHashHistory = index$1.createHashHistory;
|
|
373
|
+
exports.createMemoryHistory = index$1.createMemoryHistory;
|
|
374
|
+
exports.createRoute = index$1.createRoute;
|
|
375
|
+
exports.createRouteConfig = index$1.createRouteConfig;
|
|
376
|
+
exports.createRouteMatch = index$1.createRouteMatch;
|
|
377
|
+
exports.createRouter = index$1.createRouter;
|
|
378
|
+
exports.decode = index$1.decode;
|
|
379
|
+
exports.defaultParseSearch = index$1.defaultParseSearch;
|
|
380
|
+
exports.defaultStringifySearch = index$1.defaultStringifySearch;
|
|
381
|
+
exports.encode = index$1.encode;
|
|
382
|
+
exports.functionalUpdate = index$1.functionalUpdate;
|
|
383
|
+
exports.interpolatePath = index$1.interpolatePath;
|
|
384
|
+
exports.invariant = index$1.invariant;
|
|
385
|
+
exports.joinPaths = index$1.joinPaths;
|
|
386
|
+
exports.last = index$1.last;
|
|
387
|
+
exports.matchByPath = index$1.matchByPath;
|
|
388
|
+
exports.matchPathname = index$1.matchPathname;
|
|
389
|
+
exports.parsePathname = index$1.parsePathname;
|
|
390
|
+
exports.parseSearchWith = index$1.parseSearchWith;
|
|
391
|
+
exports.pick = index$1.pick;
|
|
392
|
+
exports.replaceEqualDeep = index$1.replaceEqualDeep;
|
|
393
|
+
exports.resolvePath = index$1.resolvePath;
|
|
394
|
+
exports.rootRouteId = index$1.rootRouteId;
|
|
395
|
+
exports.stringifySearchWith = index$1.stringifySearchWith;
|
|
396
|
+
exports.trimPath = index$1.trimPath;
|
|
397
|
+
exports.trimPathLeft = index$1.trimPathLeft;
|
|
398
|
+
exports.trimPathRight = index$1.trimPathRight;
|
|
399
|
+
exports.warning = index$1.warning;
|
|
400
|
+
Object.defineProperty(exports, 'lazy', {
|
|
401
|
+
enumerable: true,
|
|
402
|
+
get: function () { return index.lazyWithPreload; }
|
|
403
|
+
});
|
|
425
404
|
exports.DefaultErrorBoundary = DefaultErrorBoundary;
|
|
426
405
|
exports.MatchesProvider = MatchesProvider;
|
|
427
406
|
exports.Outlet = Outlet;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\n\nimport {\n AnyRoute,\n CheckId,\n rootRouteId,\n Router,\n RouterState,\n ToIdOption,\n} from '@tanstack/router-core'\nimport {\n warning,\n RouterOptions,\n RouteMatch,\n MatchRouteOptions,\n RouteConfig,\n AnyRouteConfig,\n AnyAllRouteInfo,\n DefaultAllRouteInfo,\n functionalUpdate,\n createRouter,\n AnyRouteInfo,\n AllRouteInfo,\n RouteInfo,\n ValidFromPath,\n LinkOptions,\n RouteInfoByPath,\n ResolveRelativePath,\n NoInfer,\n ToOptions,\n invariant,\n} from '@tanstack/router-core'\n\nexport * from '@tanstack/router-core'\n\ndeclare module '@tanstack/router-core' {\n interface FrameworkGenerics {\n Element: React.ReactNode\n // Any is required here so import() will work without having to do import().then(d => d.default)\n SyncOrAsyncElement: React.ReactNode | (() => Promise<any>)\n }\n\n interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n > {\n useState: () => RouterState\n useRoute: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n routeId: TId,\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n useMatch: <\n TId extends keyof TAllRouteInfo['routeInfoById'],\n TStrict extends true | false = true,\n >(\n routeId: TId,\n opts?: { strict?: TStrict },\n ) => TStrict extends true\n ? RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n :\n | RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n | undefined\n linkProps: <TTo extends string = '.'>(\n props: LinkPropsOptions<TAllRouteInfo, '/', TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: LinkPropsOptions<TAllRouteInfo, '/', TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement> &\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> & {\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 | React.ReactNode\n | ((state: { isActive: boolean }) => React.ReactNode)\n },\n ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: ToOptions<TAllRouteInfo, '/', TTo> &\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 | React.ReactNode\n | ((\n params: RouteInfoByPath<\n TAllRouteInfo,\n ResolveRelativePath<'/', NoInfer<TTo>>\n >['allParams'],\n ) => React.ReactNode)\n },\n ) => JSX.Element\n }\n\n interface Route<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n > {\n useRoute: <\n TTo extends string = '.',\n TResolved extends string = ResolveRelativePath<\n TRouteInfo['id'],\n NoInfer<TTo>\n >,\n >(\n routeId: CheckId<\n TAllRouteInfo,\n TResolved,\n ToIdOption<TAllRouteInfo, TRouteInfo['id'], TTo>\n >,\n opts?: { strict?: boolean },\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TResolved]>\n linkProps: <TTo extends string = '.'>(\n props: LinkPropsOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: LinkPropsOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement> &\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> & {\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 | React.ReactNode\n | ((state: { isActive: boolean }) => React.ReactNode)\n },\n ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: ToOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo> &\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 | React.ReactNode\n | ((\n params: RouteInfoByPath<\n TAllRouteInfo,\n ResolveRelativePath<TRouteInfo['fullPath'], NoInfer<TTo>>\n >['allParams'],\n ) => React.ReactNode)\n },\n ) => JSX.Element\n }\n}\n\ntype LinkPropsOptions<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo> = '/',\n TTo extends string = '.',\n> = LinkOptions<TAllRouteInfo, TFrom, TTo> & {\n // A function that returns additional props for the `active` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n activeProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n // A function that returns additional props for the `inactive` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n inactiveProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n}\n\nexport type PromptProps = {\n message: string\n when?: boolean | any\n children?: React.ReactNode\n}\n\n//\n\nconst matchesContext = React.createContext<RouteMatch[]>(null!)\nconst routerContext = React.createContext<{ router: Router<any, any> }>(null!)\n\n// Detect if we're in the DOM\nconst isDOM = Boolean(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement,\n)\n\nconst useLayoutEffect = isDOM ? React.useLayoutEffect : React.useEffect\n\nexport type MatchesProviderProps = {\n value: RouteMatch[]\n children: React.ReactNode\n}\n\nexport function MatchesProvider(props: MatchesProviderProps) {\n return <matchesContext.Provider {...props} />\n}\n\nconst useRouterSubscription = (router: Router<any, any>) => {\n useSyncExternalStore(\n (cb) => router.subscribe(() => cb()),\n () => router.state,\n () => router.state,\n )\n}\n\nexport function createReactRouter<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n>(opts: RouterOptions<TRouteConfig>): Router<TRouteConfig> {\n const makeRouteExt = (\n route: AnyRoute,\n router: Router<any, any>,\n ): Pick<AnyRoute, 'useRoute' | 'linkProps' | 'Link' | 'MatchRoute'> => {\n return {\n useRoute: (subRouteId = '.' as any) => {\n const resolvedRouteId = router.resolvePath(\n route.routeId,\n subRouteId as string,\n )\n const resolvedRoute = router.getRoute(resolvedRouteId)\n useRouterSubscription(router)\n invariant(\n resolvedRoute,\n `Could not find a route for route \"${\n resolvedRouteId as string\n }\"! Did you forget to add it to your route config?`,\n )\n return resolvedRoute\n },\n linkProps: (options) => {\n const {\n // custom props\n type,\n children,\n target,\n activeProps = () => ({ className: 'active' }),\n inactiveProps = () => ({}),\n activeOptions,\n disabled,\n // fromCurrent,\n hash,\n search,\n params,\n to,\n preload,\n preloadDelay,\n preloadMaxAge,\n replace,\n // element props\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n onTouchEnd,\n ...rest\n } = options\n\n const linkInfo = route.buildLink(options)\n\n if (linkInfo.type === 'external') {\n const { href } = linkInfo\n return { href }\n }\n\n const {\n handleClick,\n handleFocus,\n handleEnter,\n handleLeave,\n isActive,\n next,\n } = linkInfo\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n e.persist()\n handlers.forEach((handler) => {\n if (handler) handler(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? functionalUpdate(activeProps, {}) ?? {} : {}\n\n // Get the inactive props\n const resolvedInactiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? {} : functionalUpdate(inactiveProps, {}) ?? {}\n\n return {\n ...resolvedActiveProps,\n ...resolvedInactiveProps,\n ...rest,\n href: disabled ? undefined : next.href,\n onClick: composeHandlers([handleClick, onClick]),\n onFocus: composeHandlers([handleFocus, onFocus]),\n onMouseEnter: composeHandlers([handleEnter, onMouseEnter]),\n onMouseLeave: composeHandlers([handleLeave, onMouseLeave]),\n target,\n style: {\n ...style,\n ...resolvedActiveProps.style,\n ...resolvedInactiveProps.style,\n },\n className:\n [\n className,\n resolvedActiveProps.className,\n resolvedInactiveProps.className,\n ]\n .filter(Boolean)\n .join(' ') || undefined,\n ...(disabled\n ? {\n role: 'link',\n 'aria-disabled': true,\n }\n : undefined),\n ['data-status']: isActive ? 'active' : undefined,\n }\n },\n Link: React.forwardRef((props: any, ref) => {\n const linkProps = route.linkProps(props)\n\n useRouterSubscription(router)\n\n return (\n <a\n {...{\n ref: ref as any,\n ...linkProps,\n children:\n typeof props.children === 'function'\n ? props.children({\n isActive: (linkProps as any)['data-status'] === 'active',\n })\n : props.children,\n }}\n />\n )\n }) as any,\n MatchRoute: (opts) => {\n const { pending, caseSensitive, children, ...rest } = opts\n\n const params = route.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n\n if (!params) {\n return null\n }\n\n return typeof opts.children === 'function'\n ? opts.children(params as any)\n : (opts.children as any)\n },\n }\n }\n\n const coreRouter = createRouter<TRouteConfig>({\n ...opts,\n createRouter: (router) => {\n const routerExt: Pick<Router<any, any>, 'useMatch' | 'useState'> = {\n useState: () => {\n useRouterSubscription(router)\n return router.state\n },\n useMatch: (routeId, opts) => {\n useRouterSubscription(router)\n\n invariant(\n routeId !== rootRouteId,\n `\"${rootRouteId}\" cannot be used with useMatch! Did you mean to useRoute(\"${rootRouteId}\")?`,\n )\n\n const runtimeMatch = useMatches()?.[0]!\n const match = router.state.matches.find((d) => d.routeId === routeId)\n\n if (opts?.strict ?? true) {\n invariant(\n match,\n `Could not find an active match for \"${routeId as string}\"!`,\n )\n\n invariant(\n runtimeMatch.routeId == match?.routeId,\n `useMatch('${\n match?.routeId as string\n }') is being called in a component that is meant to render the '${\n runtimeMatch.routeId\n }' route. Did you mean to 'useMatch(${\n match?.routeId as string\n }, { strict: false })' or 'useRoute(${\n match?.routeId as string\n })' instead?`,\n )\n }\n\n return match as any\n },\n }\n\n const routeExt = makeRouteExt(router.getRoute('/'), router)\n\n Object.assign(router, routerExt, routeExt)\n },\n createRoute: ({ router, route }) => {\n const routeExt = makeRouteExt(route, router)\n\n Object.assign(route, routeExt)\n },\n createElement: async (element) => {\n if (typeof element === 'function') {\n const res = (await element()) as any\n\n // Support direct import() calls\n if (typeof res === 'object' && res.default) {\n return React.createElement(res.default)\n } else {\n return res\n }\n }\n\n return element\n },\n })\n\n return coreRouter as any\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n> = RouterOptions<TRouteConfig> & {\n router: Router<TRouteConfig, TAllRouteInfo>\n // Children will default to `<Outlet />` if not provided\n children?: React.ReactNode\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n>({ children, router, ...rest }: RouterProps<TRouteConfig, TAllRouteInfo>) {\n router.update(rest)\n\n useRouterSubscription(router)\n useLayoutEffect(() => {\n const unsub = router.mount()\n router.load()\n return unsub\n }, [router])\n\n return (\n <routerContext.Provider value={{ router }}>\n <MatchesProvider value={router.state.matches}>\n {children ?? <Outlet />}\n </MatchesProvider>\n </routerContext.Provider>\n )\n}\n\nexport function useRouter(): Router {\n const value = React.useContext(routerContext)\n warning(!value, 'useRouter must be used inside a <Router> component!')\n\n useRouterSubscription(value.router)\n\n return value.router as Router\n}\n\nexport function useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\nexport function Outlet() {\n const router = useRouter()\n const matches = useMatches().slice(1)\n const match = matches[0]\n\n if (!match) {\n return null\n }\n\n const element = ((): React.ReactNode => {\n if (!match) {\n return null\n }\n\n const errorElement =\n match.__.errorElement ?? router.options.defaultErrorElement\n\n if (match.status === 'error') {\n if (errorElement) {\n return errorElement as any\n }\n\n if (match.options.useErrorBoundary || router.options.useErrorBoundary) {\n throw match.error\n }\n\n return <DefaultErrorBoundary error={match.error} />\n }\n\n if (match.status === 'loading' || match.status === 'idle') {\n if (match.isPending) {\n const pendingElement =\n match.__.pendingElement ?? router.options.defaultPendingElement\n\n if (match.options.pendingMs || pendingElement) {\n return (pendingElement as any) ?? null\n }\n }\n\n return null\n }\n\n return (\n (match.__.element as any) ?? router.options.defaultElement ?? <Outlet />\n )\n })() as JSX.Element\n\n const catchElement =\n match?.options.catchElement ?? router.options.defaultCatchElement\n\n return (\n <MatchesProvider value={matches}>\n <CatchBoundary catchElement={catchElement}>{element}</CatchBoundary>\n </MatchesProvider>\n )\n}\n\nclass CatchBoundary extends React.Component<{\n children: any\n catchElement: any\n}> {\n state = {\n error: false,\n }\n componentDidCatch(error: any, info: any) {\n console.error(error)\n\n this.setState({\n error,\n info,\n })\n }\n render() {\n const catchElement = this.props.catchElement ?? DefaultErrorBoundary\n\n if (this.state.error) {\n return typeof catchElement === 'function'\n ? catchElement(this.state)\n : catchElement\n }\n\n return this.props.children\n }\n}\n\nexport function DefaultErrorBoundary({ error }: { error: any }) {\n return (\n <div style={{ padding: '.5rem', maxWidth: '100%' }}>\n <strong style={{ fontSize: '1.2rem' }}>Something went wrong!</strong>\n <div style={{ height: '.5rem' }} />\n <div>\n <pre>\n {error.message ? (\n <code\n style={{\n fontSize: '.7em',\n border: '1px solid red',\n borderRadius: '.25rem',\n padding: '.5rem',\n color: 'red',\n }}\n >\n {error.message}\n </code>\n ) : null}\n </pre>\n </div>\n {/* <div style={{ height: '1rem' }} />\n <div\n style={{\n fontSize: '.8em',\n borderLeft: '3px solid rgba(127, 127, 127, 1)',\n paddingLeft: '.5rem',\n opacity: 0.5,\n }}\n >\n If you are the owner of this website, it's highly recommended that you\n configure your own custom Catch/Error boundaries for the router. You can\n optionally configure a boundary for each route.\n </div> */}\n </div>\n )\n}\n\nexport function usePrompt(message: string, when: boolean | any): void {\n const router = useRouter()\n\n React.useEffect(() => {\n if (!when) return\n\n let unblock = router.history.block((transition) => {\n if (window.confirm(message)) {\n unblock()\n transition.retry()\n } else {\n router.location.pathname = window.location.pathname\n }\n })\n\n return unblock\n }, [when, location, message])\n}\n\nexport function Prompt({ message, when, children }: PromptProps) {\n usePrompt(message, when ?? true)\n return (children ?? null) as React.ReactNode\n}\n"],"names":["matchesContext","React","createContext","routerContext","isDOM","Boolean","window","document","createElement","useLayoutEffect","useEffect","MatchesProvider","props","useRouterSubscription","router","useSyncExternalStore","cb","subscribe","state","createReactRouter","opts","makeRouteExt","route","useRoute","subRouteId","resolvedRouteId","resolvePath","routeId","resolvedRoute","getRoute","invariant","linkProps","options","target","activeProps","className","inactiveProps","disabled","style","onClick","onFocus","onMouseEnter","onMouseLeave","rest","linkInfo","buildLink","type","href","handleClick","handleFocus","handleEnter","handleLeave","isActive","next","composeHandlers","handlers","e","persist","forEach","handler","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","_extends","undefined","filter","join","role","Link","forwardRef","ref","children","MatchRoute","pending","caseSensitive","params","matchRoute","coreRouter","createRouter","routerExt","useState","useMatch","rootRouteId","runtimeMatch","useMatches","match","matches","find","d","strict","routeExt","Object","assign","createRoute","element","res","default","RouterProvider","_objectWithoutPropertiesLoose","update","unsub","mount","load","useRouter","value","useContext","warning","Outlet","slice","errorElement","__","defaultErrorElement","status","useErrorBoundary","error","isPending","pendingElement","defaultPendingElement","pendingMs","defaultElement","catchElement","defaultCatchElement","CatchBoundary","Component","componentDidCatch","info","console","setState","render","DefaultErrorBoundary","padding","maxWidth","fontSize","height","message","border","borderRadius","color","usePrompt","when","unblock","history","block","transition","confirm","retry","location","pathname","Prompt"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\n\nimport {\n AnyRoute,\n CheckId,\n rootRouteId,\n Router,\n RouterState,\n ToIdOption,\n} from '@tanstack/router-core'\nimport {\n warning,\n RouterOptions,\n RouteMatch,\n MatchRouteOptions,\n RouteConfig,\n AnyRouteConfig,\n AnyAllRouteInfo,\n DefaultAllRouteInfo,\n functionalUpdate,\n createRouter,\n AnyRouteInfo,\n AllRouteInfo,\n RouteInfo,\n ValidFromPath,\n LinkOptions,\n RouteInfoByPath,\n ResolveRelativePath,\n NoInfer,\n ToOptions,\n invariant,\n} from '@tanstack/router-core'\n\nexport * from '@tanstack/router-core'\n\nexport { lazyWithPreload as lazy } from 'react-lazy-with-preload/lib/index'\nexport type { PreloadableComponent as LazyComponent } from 'react-lazy-with-preload'\n\ntype SyncRouteComponent = (props?: {}) => React.ReactNode\nexport type RouteComponent = SyncRouteComponent & {\n preload?: () => Promise<{\n default: SyncRouteComponent\n }>\n}\n\ndeclare module '@tanstack/router-core' {\n interface FrameworkGenerics {\n Component: RouteComponent\n }\n\n interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n > {\n useState: () => RouterState\n useRoute: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n routeId: TId,\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n useMatch: <\n TId extends keyof TAllRouteInfo['routeInfoById'],\n TStrict extends true | false = true,\n >(\n routeId: TId,\n opts?: { strict?: TStrict },\n ) => TStrict extends true\n ? RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n :\n | RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n | undefined\n linkProps: <TTo extends string = '.'>(\n props: LinkPropsOptions<TAllRouteInfo, '/', TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: LinkPropsOptions<TAllRouteInfo, '/', TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement> &\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> & {\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 | React.ReactNode\n | ((state: { isActive: boolean }) => React.ReactNode)\n },\n ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: ToOptions<TAllRouteInfo, '/', TTo> &\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 | React.ReactNode\n | ((\n params: RouteInfoByPath<\n TAllRouteInfo,\n ResolveRelativePath<'/', NoInfer<TTo>>\n >['allParams'],\n ) => React.ReactNode)\n },\n ) => JSX.Element\n }\n\n interface Route<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n > {\n useRoute: <\n TTo extends string = '.',\n TResolved extends string = ResolveRelativePath<\n TRouteInfo['id'],\n NoInfer<TTo>\n >,\n >(\n routeId: CheckId<\n TAllRouteInfo,\n TResolved,\n ToIdOption<TAllRouteInfo, TRouteInfo['id'], TTo>\n >,\n opts?: { strict?: boolean },\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TResolved]>\n linkProps: <TTo extends string = '.'>(\n props: LinkPropsOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: LinkPropsOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement> &\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> & {\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 | React.ReactNode\n | ((state: { isActive: boolean }) => React.ReactNode)\n },\n ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: ToOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo> &\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 | React.ReactNode\n | ((\n params: RouteInfoByPath<\n TAllRouteInfo,\n ResolveRelativePath<TRouteInfo['fullPath'], NoInfer<TTo>>\n >['allParams'],\n ) => React.ReactNode)\n },\n ) => JSX.Element\n }\n}\n\ntype LinkPropsOptions<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo> = '/',\n TTo extends string = '.',\n> = LinkOptions<TAllRouteInfo, TFrom, TTo> & {\n // A function that returns additional props for the `active` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n activeProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n // A function that returns additional props for the `inactive` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n inactiveProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n}\n\nexport type PromptProps = {\n message: string\n when?: boolean | any\n children?: React.ReactNode\n}\n\n//\n\nconst matchesContext = React.createContext<RouteMatch[]>(null!)\nconst routerContext = React.createContext<{ router: Router<any, any> }>(null!)\n\n// Detect if we're in the DOM\nconst isDOM = Boolean(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement,\n)\n\nconst useLayoutEffect = isDOM ? React.useLayoutEffect : React.useEffect\n\nexport type MatchesProviderProps = {\n value: RouteMatch[]\n children: React.ReactNode\n}\n\nexport function MatchesProvider(props: MatchesProviderProps) {\n return <matchesContext.Provider {...props} />\n}\n\nconst useRouterSubscription = (router: Router<any, any>) => {\n useSyncExternalStore(\n (cb) => router.subscribe(() => cb()),\n () => router.state,\n () => router.state,\n )\n}\n\nexport function createReactRouter<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n>(opts: RouterOptions<TRouteConfig>): Router<TRouteConfig> {\n const makeRouteExt = (\n route: AnyRoute,\n router: Router<any, any>,\n ): Pick<AnyRoute, 'useRoute' | 'linkProps' | 'Link' | 'MatchRoute'> => {\n return {\n useRoute: (subRouteId = '.' as any) => {\n const resolvedRouteId = router.resolvePath(\n route.routeId,\n subRouteId as string,\n )\n const resolvedRoute = router.getRoute(resolvedRouteId)\n useRouterSubscription(router)\n invariant(\n resolvedRoute,\n `Could not find a route for route \"${\n resolvedRouteId as string\n }\"! Did you forget to add it to your route config?`,\n )\n return resolvedRoute\n },\n linkProps: (options) => {\n const {\n // custom props\n type,\n children,\n target,\n activeProps = () => ({ className: 'active' }),\n inactiveProps = () => ({}),\n activeOptions,\n disabled,\n // fromCurrent,\n hash,\n search,\n params,\n to,\n preload,\n preloadDelay,\n preloadMaxAge,\n replace,\n // element props\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n onTouchEnd,\n ...rest\n } = options\n\n const linkInfo = route.buildLink(options)\n\n if (linkInfo.type === 'external') {\n const { href } = linkInfo\n return { href }\n }\n\n const {\n handleClick,\n handleFocus,\n handleEnter,\n handleLeave,\n isActive,\n next,\n } = linkInfo\n\n const reactHandleClick = (e: Event) => {\n React.startTransition(() => {\n handleClick(e)\n })\n }\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n e.persist()\n handlers.forEach((handler) => {\n if (handler) handler(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? functionalUpdate(activeProps, {}) ?? {} : {}\n\n // Get the inactive props\n const resolvedInactiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? {} : functionalUpdate(inactiveProps, {}) ?? {}\n\n return {\n ...resolvedActiveProps,\n ...resolvedInactiveProps,\n ...rest,\n href: disabled ? undefined : next.href,\n onClick: composeHandlers([reactHandleClick, onClick]),\n onFocus: composeHandlers([handleFocus, onFocus]),\n onMouseEnter: composeHandlers([handleEnter, onMouseEnter]),\n onMouseLeave: composeHandlers([handleLeave, onMouseLeave]),\n target,\n style: {\n ...style,\n ...resolvedActiveProps.style,\n ...resolvedInactiveProps.style,\n },\n className:\n [\n className,\n resolvedActiveProps.className,\n resolvedInactiveProps.className,\n ]\n .filter(Boolean)\n .join(' ') || undefined,\n ...(disabled\n ? {\n role: 'link',\n 'aria-disabled': true,\n }\n : undefined),\n ['data-status']: isActive ? 'active' : undefined,\n }\n },\n Link: React.forwardRef((props: any, ref) => {\n const linkProps = route.linkProps(props)\n\n useRouterSubscription(router)\n\n return (\n <a\n {...{\n ref: ref as any,\n ...linkProps,\n children:\n typeof props.children === 'function'\n ? props.children({\n isActive: (linkProps as any)['data-status'] === 'active',\n })\n : props.children,\n }}\n />\n )\n }) as any,\n MatchRoute: (opts) => {\n const { pending, caseSensitive, children, ...rest } = opts\n\n const params = route.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n\n if (!params) {\n return null\n }\n\n return typeof opts.children === 'function'\n ? opts.children(params as any)\n : (opts.children as any)\n },\n }\n }\n\n const coreRouter = createRouter<TRouteConfig>({\n ...opts,\n createRouter: (router) => {\n const routerExt: Pick<Router<any, any>, 'useMatch' | 'useState'> = {\n useState: () => {\n useRouterSubscription(router)\n return router.state\n },\n useMatch: (routeId, opts) => {\n useRouterSubscription(router)\n\n invariant(\n routeId !== rootRouteId,\n `\"${rootRouteId}\" cannot be used with useMatch! Did you mean to useRoute(\"${rootRouteId}\")?`,\n )\n\n const runtimeMatch = useMatches()?.[0]!\n const match = router.state.matches.find((d) => d.routeId === routeId)\n\n if (opts?.strict ?? true) {\n invariant(\n match,\n `Could not find an active match for \"${routeId as string}\"!`,\n )\n\n invariant(\n runtimeMatch.routeId == match?.routeId,\n `useMatch('${\n match?.routeId as string\n }') is being called in a component that is meant to render the '${\n runtimeMatch.routeId\n }' route. Did you mean to 'useMatch(${\n match?.routeId as string\n }, { strict: false })' or 'useRoute(${\n match?.routeId as string\n })' instead?`,\n )\n }\n\n return match as any\n },\n }\n\n const routeExt = makeRouteExt(router.getRoute('/'), router)\n\n Object.assign(router, routerExt, routeExt)\n },\n createRoute: ({ router, route }) => {\n const routeExt = makeRouteExt(route, router)\n\n Object.assign(route, routeExt)\n },\n loadComponent: async (component) => {\n if (component.preload && typeof document !== 'undefined') {\n component.preload()\n // return await component.preload()\n }\n\n return component as any\n },\n })\n\n return coreRouter as any\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n> = RouterOptions<TRouteConfig> & {\n router: Router<TRouteConfig, TAllRouteInfo>\n // Children will default to `<Outlet />` if not provided\n children?: React.ReactNode\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n>({ children, router, ...rest }: RouterProps<TRouteConfig, TAllRouteInfo>) {\n router.update(rest)\n\n useRouterSubscription(router)\n React.useEffect(() => {\n return router.mount()\n }, [router])\n\n return (\n <routerContext.Provider value={{ router }}>\n <MatchesProvider value={router.state.matches}>\n {children ?? <Outlet />}\n </MatchesProvider>\n </routerContext.Provider>\n )\n}\n\nexport function useRouter(): Router {\n const value = React.useContext(routerContext)\n warning(!value, 'useRouter must be used inside a <Router> component!')\n\n useRouterSubscription(value.router)\n\n return value.router as Router\n}\n\nexport function useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\nexport function Outlet() {\n const router = useRouter()\n const matches = useMatches().slice(1)\n const match = matches[0]\n\n const defaultPending = React.useCallback(() => null, [])\n\n if (!match) {\n return null\n }\n\n const PendingComponent = (match.__.pendingComponent ??\n router.options.defaultPendingComponent ??\n defaultPending) as any\n\n const errorComponent =\n match.__.errorComponent ?? router.options.defaultErrorComponent\n\n return (\n <MatchesProvider value={matches}>\n <React.Suspense fallback={<PendingComponent />}>\n <CatchBoundary errorComponent={errorComponent}>\n {\n ((): React.ReactNode => {\n if (match.status === 'error') {\n throw match.error\n }\n\n if (match.status === 'success') {\n return React.createElement(\n (match.__.component as any) ??\n router.options.defaultComponent ??\n Outlet,\n )\n }\n\n if (match.__.loadPromise) {\n console.log(match.matchId, 'suspend')\n throw match.__.loadPromise\n }\n\n invariant(false, 'This should never happen!')\n })() as JSX.Element\n }\n </CatchBoundary>\n </React.Suspense>\n </MatchesProvider>\n )\n}\n\nclass CatchBoundary extends React.Component<{\n children: any\n errorComponent: any\n}> {\n state = {\n error: false,\n }\n componentDidCatch(error: any, info: any) {\n console.error(error)\n\n this.setState({\n error,\n info,\n })\n }\n render() {\n const errorComponent = this.props.errorComponent ?? DefaultErrorBoundary\n\n if (this.state.error) {\n return React.createElement(errorComponent, this.state)\n }\n\n return this.props.children\n }\n}\n\nexport function DefaultErrorBoundary({ error }: { error: any }) {\n return (\n <div style={{ padding: '.5rem', maxWidth: '100%' }}>\n <strong style={{ fontSize: '1.2rem' }}>Something went wrong!</strong>\n <div style={{ height: '.5rem' }} />\n <div>\n <pre>\n {error.message ? (\n <code\n style={{\n fontSize: '.7em',\n border: '1px solid red',\n borderRadius: '.25rem',\n padding: '.5rem',\n color: 'red',\n }}\n >\n {error.message}\n </code>\n ) : null}\n </pre>\n </div>\n </div>\n )\n}\n\nexport function usePrompt(message: string, when: boolean | any): void {\n const router = useRouter()\n\n React.useEffect(() => {\n if (!when) return\n\n let unblock = router.history.block((transition) => {\n if (window.confirm(message)) {\n unblock()\n transition.retry()\n } else {\n router.location.pathname = window.location.pathname\n }\n })\n\n return unblock\n }, [when, location, message])\n}\n\nexport function Prompt({ message, when, children }: PromptProps) {\n usePrompt(message, when ?? true)\n return (children ?? null) as React.ReactNode\n}\n"],"names":["matchesContext","React","createContext","routerContext","MatchesProvider","props","useRouterSubscription","router","useSyncExternalStore","cb","subscribe","state","createReactRouter","opts","makeRouteExt","route","useRoute","subRouteId","resolvedRouteId","resolvePath","routeId","resolvedRoute","getRoute","invariant","linkProps","options","target","activeProps","className","inactiveProps","disabled","style","onClick","onFocus","onMouseEnter","onMouseLeave","rest","linkInfo","buildLink","type","href","handleClick","handleFocus","handleEnter","handleLeave","isActive","next","reactHandleClick","e","startTransition","composeHandlers","handlers","persist","forEach","handler","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","_extends","undefined","filter","Boolean","join","role","Link","forwardRef","ref","children","MatchRoute","pending","caseSensitive","params","matchRoute","coreRouter","createRouter","routerExt","useState","useMatch","rootRouteId","runtimeMatch","useMatches","match","matches","find","d","strict","routeExt","Object","assign","createRoute","loadComponent","component","preload","document","RouterProvider","_objectWithoutPropertiesLoose","update","useEffect","mount","useRouter","value","useContext","warning","Outlet","slice","defaultPending","useCallback","PendingComponent","__","pendingComponent","defaultPendingComponent","errorComponent","defaultErrorComponent","status","error","createElement","defaultComponent","loadPromise","console","log","matchId","CatchBoundary","Component","componentDidCatch","info","setState","render","DefaultErrorBoundary","padding","maxWidth","fontSize","height","message","border","borderRadius","color","usePrompt","when","unblock","history","block","transition","window","confirm","retry","location","pathname","Prompt"],"mappings":"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"}
|