@tanstack/react-router 0.0.1-alpha.1 → 0.0.1-alpha.10
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 +180 -146
- package/build/cjs/react-router/src/index.js.map +1 -1
- package/build/cjs/router-core/build/esm/index.js +1360 -1231
- package/build/cjs/router-core/build/esm/index.js.map +1 -1
- package/build/esm/index.js +1519 -1374
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +129 -0
- package/build/types/index.d.ts +76 -0
- package/build/umd/index.development.js +1506 -1356
- 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 -3
- package/src/index.tsx +258 -225
|
@@ -55,151 +55,147 @@ const useRouterSubscription = router => {
|
|
|
55
55
|
};
|
|
56
56
|
|
|
57
57
|
function createReactRouter(opts) {
|
|
58
|
+
const makeRouteExt = (route, router) => {
|
|
59
|
+
return {
|
|
60
|
+
linkProps: options => {
|
|
61
|
+
var _functionalUpdate, _functionalUpdate2;
|
|
62
|
+
|
|
63
|
+
const {
|
|
64
|
+
// custom props
|
|
65
|
+
target,
|
|
66
|
+
activeProps = () => ({
|
|
67
|
+
className: 'active'
|
|
68
|
+
}),
|
|
69
|
+
inactiveProps = () => ({}),
|
|
70
|
+
disabled,
|
|
71
|
+
// element props
|
|
72
|
+
style,
|
|
73
|
+
className,
|
|
74
|
+
onClick,
|
|
75
|
+
onFocus,
|
|
76
|
+
onMouseEnter,
|
|
77
|
+
onMouseLeave
|
|
78
|
+
} = options,
|
|
79
|
+
rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(options, _excluded);
|
|
80
|
+
|
|
81
|
+
const linkInfo = route.buildLink(options);
|
|
82
|
+
|
|
83
|
+
if (linkInfo.type === 'external') {
|
|
84
|
+
const {
|
|
85
|
+
href
|
|
86
|
+
} = linkInfo;
|
|
87
|
+
return {
|
|
88
|
+
href
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const {
|
|
93
|
+
handleClick,
|
|
94
|
+
handleFocus,
|
|
95
|
+
handleEnter,
|
|
96
|
+
handleLeave,
|
|
97
|
+
isActive,
|
|
98
|
+
next
|
|
99
|
+
} = linkInfo;
|
|
100
|
+
|
|
101
|
+
const composeHandlers = handlers => e => {
|
|
102
|
+
e.persist();
|
|
103
|
+
handlers.forEach(handler => {
|
|
104
|
+
if (handler) handler(e);
|
|
105
|
+
});
|
|
106
|
+
}; // Get the active props
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
const resolvedActiveProps = isActive ? (_functionalUpdate = index.functionalUpdate(activeProps, {})) != null ? _functionalUpdate : {} : {}; // Get the inactive props
|
|
110
|
+
|
|
111
|
+
const resolvedInactiveProps = isActive ? {} : (_functionalUpdate2 = index.functionalUpdate(inactiveProps, {})) != null ? _functionalUpdate2 : {};
|
|
112
|
+
return _rollupPluginBabelHelpers["extends"]({}, resolvedActiveProps, resolvedInactiveProps, rest, {
|
|
113
|
+
href: disabled ? undefined : next.href,
|
|
114
|
+
onClick: composeHandlers([handleClick, onClick]),
|
|
115
|
+
onFocus: composeHandlers([handleFocus, onFocus]),
|
|
116
|
+
onMouseEnter: composeHandlers([handleEnter, onMouseEnter]),
|
|
117
|
+
onMouseLeave: composeHandlers([handleLeave, onMouseLeave]),
|
|
118
|
+
target,
|
|
119
|
+
style: _rollupPluginBabelHelpers["extends"]({}, style, resolvedActiveProps.style, resolvedInactiveProps.style),
|
|
120
|
+
className: [className, resolvedActiveProps.className, resolvedInactiveProps.className].filter(Boolean).join(' ') || undefined
|
|
121
|
+
}, disabled ? {
|
|
122
|
+
role: 'link',
|
|
123
|
+
'aria-disabled': true
|
|
124
|
+
} : undefined, {
|
|
125
|
+
['data-status']: isActive ? 'active' : undefined
|
|
126
|
+
});
|
|
127
|
+
},
|
|
128
|
+
Link: /*#__PURE__*/React__namespace.forwardRef((props, ref) => {
|
|
129
|
+
const linkProps = route.linkProps(props);
|
|
130
|
+
useRouterSubscription(router);
|
|
131
|
+
return /*#__PURE__*/React__namespace.createElement("a", _rollupPluginBabelHelpers["extends"]({
|
|
132
|
+
ref: ref
|
|
133
|
+
}, linkProps, {
|
|
134
|
+
children: typeof props.children === 'function' ? props.children({
|
|
135
|
+
isActive: linkProps['data-status'] === 'active'
|
|
136
|
+
}) : props.children
|
|
137
|
+
}));
|
|
138
|
+
}),
|
|
139
|
+
MatchRoute: opts => {
|
|
140
|
+
const {
|
|
141
|
+
pending,
|
|
142
|
+
caseSensitive
|
|
143
|
+
} = opts,
|
|
144
|
+
rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(opts, _excluded2);
|
|
145
|
+
|
|
146
|
+
const params = route.matchRoute(rest, {
|
|
147
|
+
pending,
|
|
148
|
+
caseSensitive
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
if (!params) {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return typeof opts.children === 'function' ? opts.children(params) : opts.children;
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
};
|
|
159
|
+
|
|
58
160
|
const coreRouter = index.createRouter(_rollupPluginBabelHelpers["extends"]({}, opts, {
|
|
59
161
|
createRouter: router => {
|
|
60
162
|
const routerExt = {
|
|
163
|
+
useState: () => {
|
|
164
|
+
useRouterSubscription(router);
|
|
165
|
+
return router.state;
|
|
166
|
+
},
|
|
61
167
|
useRoute: routeId => {
|
|
62
168
|
const route = router.getRoute(routeId);
|
|
63
169
|
useRouterSubscription(router);
|
|
64
|
-
|
|
65
|
-
if (!route) {
|
|
66
|
-
throw new Error("Could not find a route for route \"" + routeId + "\"! Did you forget to add it to your route config?");
|
|
67
|
-
}
|
|
68
|
-
|
|
170
|
+
index.invariant(route, "Could not find a route for route \"" + routeId + "\"! Did you forget to add it to your route config?");
|
|
69
171
|
return route;
|
|
70
172
|
},
|
|
71
173
|
useMatch: routeId => {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
174
|
+
useRouterSubscription(router);
|
|
175
|
+
index.invariant(routeId !== index.rootRouteId, "\"" + index.rootRouteId + "\" cannot be used with useMatch! Did you mean to useRoute(\"" + index.rootRouteId + "\")?");
|
|
75
176
|
|
|
76
177
|
const runtimeMatch = _useMatch();
|
|
77
178
|
|
|
78
179
|
const match = router.state.matches.find(d => d.routeId === routeId);
|
|
180
|
+
index.invariant(match, "Could not find a match for route \"" + routeId + "\" being rendered in this component!");
|
|
181
|
+
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 'useRoute(" + (match == null ? void 0 : match.routeId) + ")' instead?");
|
|
79
182
|
|
|
80
183
|
if (!match) {
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
if (runtimeMatch.routeId !== (match == null ? void 0 : match.routeId)) {
|
|
85
|
-
throw new Error("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 'useRoute(" + (match == null ? void 0 : match.routeId) + ")' instead?");
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
useRouterSubscription(router);
|
|
89
|
-
|
|
90
|
-
if (!match) {
|
|
91
|
-
throw new Error('Match not found!');
|
|
184
|
+
index.invariant('Match not found!');
|
|
92
185
|
}
|
|
93
186
|
|
|
94
187
|
return match;
|
|
95
188
|
}
|
|
96
189
|
};
|
|
97
|
-
|
|
190
|
+
const routeExt = makeRouteExt(router.getRoute('/'), router);
|
|
191
|
+
Object.assign(router, routerExt, routeExt);
|
|
98
192
|
},
|
|
99
193
|
createRoute: _ref => {
|
|
100
194
|
let {
|
|
101
195
|
router,
|
|
102
196
|
route
|
|
103
197
|
} = _ref;
|
|
104
|
-
const routeExt =
|
|
105
|
-
linkProps: options => {
|
|
106
|
-
var _functionalUpdate, _functionalUpdate2;
|
|
107
|
-
|
|
108
|
-
const {
|
|
109
|
-
// custom props
|
|
110
|
-
target,
|
|
111
|
-
activeProps = () => ({
|
|
112
|
-
className: 'active'
|
|
113
|
-
}),
|
|
114
|
-
inactiveProps = () => ({}),
|
|
115
|
-
disabled,
|
|
116
|
-
// element props
|
|
117
|
-
style,
|
|
118
|
-
className,
|
|
119
|
-
onClick,
|
|
120
|
-
onFocus,
|
|
121
|
-
onMouseEnter,
|
|
122
|
-
onMouseLeave
|
|
123
|
-
} = options,
|
|
124
|
-
rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(options, _excluded);
|
|
125
|
-
|
|
126
|
-
const linkInfo = route.buildLink(options);
|
|
127
|
-
|
|
128
|
-
if (linkInfo.type === 'external') {
|
|
129
|
-
const {
|
|
130
|
-
href
|
|
131
|
-
} = linkInfo;
|
|
132
|
-
return {
|
|
133
|
-
href
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
const {
|
|
138
|
-
handleClick,
|
|
139
|
-
handleFocus,
|
|
140
|
-
handleEnter,
|
|
141
|
-
handleLeave,
|
|
142
|
-
isActive,
|
|
143
|
-
next
|
|
144
|
-
} = linkInfo;
|
|
145
|
-
|
|
146
|
-
const composeHandlers = handlers => e => {
|
|
147
|
-
e.persist();
|
|
148
|
-
handlers.forEach(handler => {
|
|
149
|
-
if (handler) handler(e);
|
|
150
|
-
});
|
|
151
|
-
}; // Get the active props
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
const resolvedActiveProps = isActive ? (_functionalUpdate = index.functionalUpdate(activeProps)) != null ? _functionalUpdate : {} : {}; // Get the inactive props
|
|
155
|
-
|
|
156
|
-
const resolvedInactiveProps = isActive ? {} : (_functionalUpdate2 = index.functionalUpdate(inactiveProps)) != null ? _functionalUpdate2 : {};
|
|
157
|
-
return _rollupPluginBabelHelpers["extends"]({}, resolvedActiveProps, resolvedInactiveProps, rest, {
|
|
158
|
-
href: disabled ? undefined : next.href,
|
|
159
|
-
onClick: composeHandlers([handleClick, onClick]),
|
|
160
|
-
onFocus: composeHandlers([handleFocus, onFocus]),
|
|
161
|
-
onMouseEnter: composeHandlers([handleEnter, onMouseEnter]),
|
|
162
|
-
onMouseLeave: composeHandlers([handleLeave, onMouseLeave]),
|
|
163
|
-
target,
|
|
164
|
-
style: _rollupPluginBabelHelpers["extends"]({}, style, resolvedActiveProps.style, resolvedInactiveProps.style),
|
|
165
|
-
className: [className, resolvedActiveProps.className, resolvedInactiveProps.className].filter(Boolean).join(' ') || undefined
|
|
166
|
-
}, disabled ? {
|
|
167
|
-
role: 'link',
|
|
168
|
-
'aria-disabled': true
|
|
169
|
-
} : undefined, {
|
|
170
|
-
['data-status']: isActive ? 'active' : undefined
|
|
171
|
-
});
|
|
172
|
-
},
|
|
173
|
-
Link: /*#__PURE__*/React__namespace.forwardRef((props, ref) => {
|
|
174
|
-
const linkProps = route.linkProps(props);
|
|
175
|
-
useRouterSubscription(router);
|
|
176
|
-
return /*#__PURE__*/React__namespace.createElement("a", _rollupPluginBabelHelpers["extends"]({
|
|
177
|
-
ref: ref
|
|
178
|
-
}, linkProps, {
|
|
179
|
-
children: typeof props.children === 'function' ? props.children({
|
|
180
|
-
isActive: linkProps['data-status'] === 'active'
|
|
181
|
-
}) : props.children
|
|
182
|
-
}));
|
|
183
|
-
}),
|
|
184
|
-
MatchRoute: opts => {
|
|
185
|
-
const {
|
|
186
|
-
pending,
|
|
187
|
-
caseSensitive
|
|
188
|
-
} = opts,
|
|
189
|
-
rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(opts, _excluded2);
|
|
190
|
-
|
|
191
|
-
const params = route.matchRoute(rest, {
|
|
192
|
-
pending,
|
|
193
|
-
caseSensitive
|
|
194
|
-
}); // useRouterSubscription(router)
|
|
195
|
-
|
|
196
|
-
if (!params) {
|
|
197
|
-
return null;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
return typeof opts.children === 'function' ? opts.children(params) : opts.children;
|
|
201
|
-
}
|
|
202
|
-
};
|
|
198
|
+
const routeExt = makeRouteExt(route, router);
|
|
203
199
|
Object.assign(route, routeExt);
|
|
204
200
|
}
|
|
205
201
|
}));
|
|
@@ -213,10 +209,10 @@ function RouterProvider(_ref2) {
|
|
|
213
209
|
rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(_ref2, _excluded3);
|
|
214
210
|
|
|
215
211
|
router.update(rest);
|
|
216
|
-
|
|
212
|
+
useRouterSubscription(router);
|
|
217
213
|
useLayoutEffect(() => {
|
|
218
|
-
router.mount();
|
|
219
|
-
}, []);
|
|
214
|
+
return router.mount();
|
|
215
|
+
}, [router]);
|
|
220
216
|
return /*#__PURE__*/React__namespace.createElement(routerContext.Provider, {
|
|
221
217
|
value: {
|
|
222
218
|
router
|
|
@@ -225,38 +221,43 @@ function RouterProvider(_ref2) {
|
|
|
225
221
|
value: router.state.matches
|
|
226
222
|
}, children != null ? children : /*#__PURE__*/React__namespace.createElement(Outlet, null)));
|
|
227
223
|
}
|
|
224
|
+
|
|
228
225
|
function useRouter() {
|
|
229
226
|
const value = React__namespace.useContext(routerContext);
|
|
230
227
|
index.warning(!value, 'useRouter must be used inside a <Router> component!');
|
|
231
228
|
useRouterSubscription(value.router);
|
|
232
229
|
return value.router;
|
|
233
230
|
}
|
|
231
|
+
|
|
234
232
|
function useMatches() {
|
|
235
233
|
return React__namespace.useContext(matchesContext);
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
|
|
234
|
+
} // function useParentMatches(): RouteMatch[] {
|
|
235
|
+
// const router = useRouter()
|
|
236
|
+
// const match = useMatch()
|
|
237
|
+
// const matches = router.state.matches
|
|
238
|
+
// return matches.slice(
|
|
239
|
+
// 0,
|
|
240
|
+
// matches.findIndex((d) => d.matchId === match.matchId) - 1,
|
|
241
|
+
// )
|
|
242
|
+
// }
|
|
239
243
|
|
|
240
|
-
const match = _useMatch();
|
|
241
|
-
|
|
242
|
-
const matches = router.state.matches;
|
|
243
|
-
return matches.slice(0, matches.findIndex(d => d.matchId === match.matchId) - 1);
|
|
244
|
-
}
|
|
245
244
|
|
|
246
245
|
function _useMatch() {
|
|
247
246
|
var _useMatches;
|
|
248
247
|
|
|
249
248
|
return (_useMatches = useMatches()) == null ? void 0 : _useMatches[0];
|
|
250
249
|
}
|
|
250
|
+
|
|
251
251
|
function Outlet() {
|
|
252
|
-
var
|
|
252
|
+
var _childMatch$options$c;
|
|
253
253
|
|
|
254
254
|
const router = useRouter();
|
|
255
255
|
const [, ...matches] = useMatches();
|
|
256
256
|
const childMatch = matches[0];
|
|
257
257
|
if (!childMatch) return null;
|
|
258
|
-
|
|
259
|
-
|
|
258
|
+
|
|
259
|
+
const element = (() => {
|
|
260
|
+
var _childMatch$__$errorE, _ref4;
|
|
260
261
|
|
|
261
262
|
if (!childMatch) {
|
|
262
263
|
return null;
|
|
@@ -273,7 +274,7 @@ function Outlet() {
|
|
|
273
274
|
throw childMatch.error;
|
|
274
275
|
}
|
|
275
276
|
|
|
276
|
-
return /*#__PURE__*/React__namespace.createElement(
|
|
277
|
+
return /*#__PURE__*/React__namespace.createElement(DefaultErrorBoundary, {
|
|
277
278
|
error: childMatch.error
|
|
278
279
|
});
|
|
279
280
|
}
|
|
@@ -285,17 +286,18 @@ function Outlet() {
|
|
|
285
286
|
const pendingElement = (_childMatch$__$pendin = childMatch.__.pendingElement) != null ? _childMatch$__$pendin : router.options.defaultPendingElement;
|
|
286
287
|
|
|
287
288
|
if (childMatch.options.pendingMs || pendingElement) {
|
|
288
|
-
var
|
|
289
|
+
var _ref3;
|
|
289
290
|
|
|
290
|
-
return (
|
|
291
|
+
return (_ref3 = pendingElement) != null ? _ref3 : null;
|
|
291
292
|
}
|
|
292
293
|
}
|
|
293
294
|
|
|
294
295
|
return null;
|
|
295
296
|
}
|
|
296
297
|
|
|
297
|
-
return (
|
|
298
|
-
})()
|
|
298
|
+
return (_ref4 = childMatch.__.element) != null ? _ref4 : router.options.defaultElement;
|
|
299
|
+
})();
|
|
300
|
+
|
|
299
301
|
const catchElement = (_childMatch$options$c = childMatch == null ? void 0 : childMatch.options.catchElement) != null ? _childMatch$options$c : router.options.defaultCatchElement;
|
|
300
302
|
return /*#__PURE__*/React__namespace.createElement(MatchesProvider, {
|
|
301
303
|
value: matches,
|
|
@@ -331,7 +333,7 @@ class CatchBoundary extends React__namespace.Component {
|
|
|
331
333
|
render() {
|
|
332
334
|
var _this$props$catchElem;
|
|
333
335
|
|
|
334
|
-
const catchElement = (_this$props$catchElem = this.props.catchElement) != null ? _this$props$catchElem :
|
|
336
|
+
const catchElement = (_this$props$catchElem = this.props.catchElement) != null ? _this$props$catchElem : DefaultErrorBoundary;
|
|
335
337
|
|
|
336
338
|
if (this.state.error) {
|
|
337
339
|
return typeof catchElement === 'function' ? catchElement(this.state) : catchElement;
|
|
@@ -342,10 +344,10 @@ class CatchBoundary extends React__namespace.Component {
|
|
|
342
344
|
|
|
343
345
|
}
|
|
344
346
|
|
|
345
|
-
function
|
|
347
|
+
function DefaultErrorBoundary(_ref5) {
|
|
346
348
|
let {
|
|
347
349
|
error
|
|
348
|
-
} =
|
|
350
|
+
} = _ref5;
|
|
349
351
|
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
350
352
|
style: {
|
|
351
353
|
padding: '.5rem',
|
|
@@ -380,7 +382,33 @@ function DefaultCatchBoundary(_ref6) {
|
|
|
380
382
|
}
|
|
381
383
|
}, "If you are the owner of this website, it's highly recommended that you configure your own custom Catch/Error boundaries for the router. You can optionally configure a boundary for each route."));
|
|
382
384
|
}
|
|
385
|
+
function usePrompt(message, when) {
|
|
386
|
+
const router = useRouter();
|
|
387
|
+
React__namespace.useEffect(() => {
|
|
388
|
+
if (!when) return;
|
|
389
|
+
let unblock = router.history.block(transition => {
|
|
390
|
+
if (window.confirm(message)) {
|
|
391
|
+
unblock();
|
|
392
|
+
transition.retry();
|
|
393
|
+
} else {
|
|
394
|
+
router.location.pathname = window.location.pathname;
|
|
395
|
+
}
|
|
396
|
+
});
|
|
397
|
+
return unblock;
|
|
398
|
+
}, [when, location, message]);
|
|
399
|
+
}
|
|
400
|
+
function Prompt(_ref6) {
|
|
401
|
+
let {
|
|
402
|
+
message,
|
|
403
|
+
when,
|
|
404
|
+
children
|
|
405
|
+
} = _ref6;
|
|
406
|
+
usePrompt(message, when != null ? when : true);
|
|
407
|
+
return children != null ? children : null;
|
|
408
|
+
}
|
|
383
409
|
|
|
410
|
+
exports.cascadeLoaderData = index.cascadeLoaderData;
|
|
411
|
+
exports.cleanPath = index.cleanPath;
|
|
384
412
|
exports.createBrowserHistory = index.createBrowserHistory;
|
|
385
413
|
exports.createHashHistory = index.createHashHistory;
|
|
386
414
|
exports.createMemoryHistory = index.createMemoryHistory;
|
|
@@ -388,9 +416,14 @@ exports.createRoute = index.createRoute;
|
|
|
388
416
|
exports.createRouteConfig = index.createRouteConfig;
|
|
389
417
|
exports.createRouteMatch = index.createRouteMatch;
|
|
390
418
|
exports.createRouter = index.createRouter;
|
|
419
|
+
exports.decode = index.decode;
|
|
391
420
|
exports.defaultParseSearch = index.defaultParseSearch;
|
|
392
421
|
exports.defaultStringifySearch = index.defaultStringifySearch;
|
|
422
|
+
exports.encode = index.encode;
|
|
393
423
|
exports.functionalUpdate = index.functionalUpdate;
|
|
424
|
+
exports.interpolatePath = index.interpolatePath;
|
|
425
|
+
exports.invariant = index.invariant;
|
|
426
|
+
exports.joinPaths = index.joinPaths;
|
|
394
427
|
exports.last = index.last;
|
|
395
428
|
exports.matchByPath = index.matchByPath;
|
|
396
429
|
exports.matchPathname = index.matchPathname;
|
|
@@ -400,14 +433,15 @@ exports.replaceEqualDeep = index.replaceEqualDeep;
|
|
|
400
433
|
exports.resolvePath = index.resolvePath;
|
|
401
434
|
exports.rootRouteId = index.rootRouteId;
|
|
402
435
|
exports.stringifySearchWith = index.stringifySearchWith;
|
|
436
|
+
exports.trimPath = index.trimPath;
|
|
437
|
+
exports.trimPathLeft = index.trimPathLeft;
|
|
438
|
+
exports.trimPathRight = index.trimPathRight;
|
|
403
439
|
exports.warning = index.warning;
|
|
404
|
-
exports.
|
|
440
|
+
exports.DefaultErrorBoundary = DefaultErrorBoundary;
|
|
405
441
|
exports.MatchesProvider = MatchesProvider;
|
|
406
442
|
exports.Outlet = Outlet;
|
|
443
|
+
exports.Prompt = Prompt;
|
|
407
444
|
exports.RouterProvider = RouterProvider;
|
|
408
445
|
exports.createReactRouter = createReactRouter;
|
|
409
|
-
exports.
|
|
410
|
-
exports.useMatches = useMatches;
|
|
411
|
-
exports.useParentMatches = useParentMatches;
|
|
412
|
-
exports.useRouter = useRouter;
|
|
446
|
+
exports.usePrompt = usePrompt;
|
|
413
447
|
//# sourceMappingURL=index.js.map
|
|
@@ -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 RootRouteId,\n rootRouteId,\n Route,\n Router,\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} from '@tanstack/router-core'\n\nexport * from '@tanstack/router-core'\n\ndeclare module '@tanstack/router-core' {\n interface FrameworkGenerics {\n Element: React.ReactNode\n AsyncElement: (opts: {\n params: Record<string, string>\n }) => Promise<React.ReactNode>\n SyncOrAsyncElement: React.ReactNode | FrameworkGenerics['AsyncElement']\n }\n\n interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n > extends Pick<\n Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][RootRouteId]>,\n 'linkProps' | 'Link' | 'MatchRoute'\n > {\n useRoute: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n routeId: TId,\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n useMatch: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n routeId: TId,\n ) => RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\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 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 )\n}\n\nexport function createReactRouter<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n>(opts: RouterOptions<TRouteConfig>): Router<TRouteConfig> {\n const coreRouter = createRouter<TRouteConfig>({\n ...opts,\n createRouter: (router) => {\n const routerExt: Pick<Router<any, any>, 'useRoute' | 'useMatch'> = {\n useRoute: (routeId) => {\n const route = router.getRoute(routeId)\n useRouterSubscription(router)\n if (!route) {\n throw new Error(\n `Could not find a route for route \"${\n routeId as string\n }\"! Did you forget to add it to your route config?`,\n )\n }\n return route\n },\n useMatch: (routeId) => {\n if (routeId === rootRouteId) {\n throw new Error(\n `\"${rootRouteId}\" cannot be used with useMatch! Did you mean to useRoute(\"${rootRouteId}\")?`,\n )\n }\n const runtimeMatch = useMatch()\n const match = router.state.matches.find((d) => d.routeId === routeId)\n\n if (!match) {\n throw new Error(\n `Could not find a match for route \"${\n routeId as string\n }\" being rendered in this component!`,\n )\n }\n\n if (runtimeMatch.routeId !== match?.routeId) {\n throw new Error(\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 'useRoute(${\n match?.routeId as string\n })' instead?`,\n )\n }\n\n useRouterSubscription(router)\n\n if (!match) {\n throw new Error('Match not found!')\n }\n\n return match\n },\n }\n\n Object.assign(router, routerExt)\n },\n createRoute: ({ router, route }) => {\n const routeExt: Pick<AnyRoute, 'linkProps' | 'Link' | 'MatchRoute'> = {\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:\n (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 // useRouterSubscription(router)\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 Object.assign(route, routeExt)\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 useSyncExternalStore(\n (cb) => router.subscribe(() => cb()),\n () => router.state,\n )\n\n useLayoutEffect(() => {\n router.mount()\n }, [])\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 useParentMatches(): RouteMatch[] {\n const router = useRouter()\n const match = useMatch()\n const matches = router.state.matches\n return matches.slice(\n 0,\n matches.findIndex((d) => d.matchId === match.matchId) - 1,\n )\n}\n\nexport function useMatch<T>(): RouteMatch {\n return useMatches()?.[0] as RouteMatch\n}\n\nexport function Outlet() {\n const router = useRouter()\n const [, ...matches] = useMatches()\n\n const childMatch = matches[0]\n\n if (!childMatch) return null\n\n const element = (((): React.ReactNode => {\n if (!childMatch) {\n return null\n }\n\n const errorElement =\n childMatch.__.errorElement ?? router.options.defaultErrorElement\n\n if (childMatch.status === 'error') {\n if (errorElement) {\n return errorElement as any\n }\n\n if (\n childMatch.options.useErrorBoundary ||\n router.options.useErrorBoundary\n ) {\n throw childMatch.error\n }\n\n return <DefaultCatchBoundary error={childMatch.error} />\n }\n\n if (childMatch.status === 'loading' || childMatch.status === 'idle') {\n if (childMatch.isPending) {\n const pendingElement =\n childMatch.__.pendingElement ?? router.options.defaultPendingElement\n\n if (childMatch.options.pendingMs || pendingElement) {\n return (pendingElement as any) ?? null\n }\n }\n\n return null\n }\n\n return (childMatch.__.element as any) ?? router.options.defaultElement\n })() as JSX.Element) ?? <Outlet />\n\n const catchElement =\n childMatch?.options.catchElement ?? router.options.defaultCatchElement\n\n return (\n <MatchesProvider value={matches} key={childMatch.matchId}>\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 reset = () => {\n this.setState({\n error: false,\n info: false,\n })\n }\n render() {\n const catchElement = this.props.catchElement ?? DefaultCatchBoundary\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 DefaultCatchBoundary({ 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"],"names":["matchesContext","React","createContext","routerContext","isDOM","Boolean","window","document","createElement","useLayoutEffect","useEffect","MatchesProvider","props","useRouterSubscription","router","useSyncExternalStore","cb","subscribe","state","createReactRouter","opts","coreRouter","createRouter","_extends","routerExt","useRoute","routeId","route","getRoute","Error","useMatch","rootRouteId","runtimeMatch","match","matches","find","d","Object","assign","createRoute","routeExt","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","undefined","filter","join","role","Link","forwardRef","ref","children","MatchRoute","pending","caseSensitive","params","matchRoute","RouterProvider","_objectWithoutPropertiesLoose","update","mount","useRouter","value","useContext","warning","useMatches","useParentMatches","slice","findIndex","matchId","Outlet","childMatch","element","errorElement","__","defaultErrorElement","status","useErrorBoundary","error","isPending","pendingElement","defaultPendingElement","pendingMs","defaultElement","catchElement","defaultCatchElement","CatchBoundary","Component","reset","setState","info","componentDidCatch","console","render","DefaultCatchBoundary","padding","maxWidth","fontSize","height","message","border","borderRadius","color","borderLeft","paddingLeft","opacity"],"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 RootRouteId,\n rootRouteId,\n Router,\n RouterState,\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 AsyncElement: (opts: {\n params: Record<string, string>\n }) => Promise<React.ReactNode>\n SyncOrAsyncElement: React.ReactNode | FrameworkGenerics['AsyncElement']\n }\n\n interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n > extends Pick<\n Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][RootRouteId]>,\n 'linkProps' | 'Link' | 'MatchRoute'\n > {\n useState: () => RouterState\n useRoute: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n routeId: TId,\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n useMatch: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n routeId: TId,\n ) => RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\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 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 )\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, 'linkProps' | 'Link' | 'MatchRoute'> => {\n return {\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<\n Router<any, any>,\n 'useRoute' | 'useMatch' | 'useState'\n > = {\n useState: () => {\n useRouterSubscription(router)\n return router.state\n },\n useRoute: (routeId) => {\n const route = router.getRoute(routeId)\n useRouterSubscription(router)\n invariant(\n route,\n `Could not find a route for route \"${\n routeId as string\n }\"! Did you forget to add it to your route config?`,\n )\n return route\n },\n useMatch: (routeId) => {\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 = useMatch()\n const match = router.state.matches.find((d) => d.routeId === routeId)\n\n invariant(\n match,\n `Could not find a match for route \"${\n routeId as string\n }\" being rendered in this component!`,\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 'useRoute(${\n match?.routeId as string\n })' instead?`,\n )\n\n if (!match) {\n invariant('Match not found!')\n }\n\n return match\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 })\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\n useLayoutEffect(() => {\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\nfunction 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\nfunction useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\n// function useParentMatches(): RouteMatch[] {\n// const router = useRouter()\n// const match = useMatch()\n// const matches = router.state.matches\n// return matches.slice(\n// 0,\n// matches.findIndex((d) => d.matchId === match.matchId) - 1,\n// )\n// }\n\nfunction useMatch<T>(): RouteMatch {\n return useMatches()?.[0] as RouteMatch\n}\n\nexport function Outlet() {\n const router = useRouter()\n const [, ...matches] = useMatches()\n\n const childMatch = matches[0]\n\n if (!childMatch) return null\n\n const element = ((): React.ReactNode => {\n if (!childMatch) {\n return null\n }\n\n const errorElement =\n childMatch.__.errorElement ?? router.options.defaultErrorElement\n\n if (childMatch.status === 'error') {\n if (errorElement) {\n return errorElement as any\n }\n\n if (\n childMatch.options.useErrorBoundary ||\n router.options.useErrorBoundary\n ) {\n throw childMatch.error\n }\n\n return <DefaultErrorBoundary error={childMatch.error} />\n }\n\n if (childMatch.status === 'loading' || childMatch.status === 'idle') {\n if (childMatch.isPending) {\n const pendingElement =\n childMatch.__.pendingElement ?? router.options.defaultPendingElement\n\n if (childMatch.options.pendingMs || pendingElement) {\n return (pendingElement as any) ?? null\n }\n }\n\n return null\n }\n\n return (childMatch.__.element as any) ?? router.options.defaultElement\n })() as JSX.Element\n\n const catchElement =\n childMatch?.options.catchElement ?? router.options.defaultCatchElement\n\n return (\n <MatchesProvider value={matches} key={childMatch.matchId}>\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 reset = () => {\n this.setState({\n error: false,\n info: false,\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","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","useRoute","routeId","getRoute","invariant","useMatch","rootRouteId","runtimeMatch","match","matches","find","d","routeExt","Object","assign","createRoute","RouterProvider","_objectWithoutPropertiesLoose","update","mount","useRouter","value","useContext","warning","useMatches","Outlet","childMatch","element","errorElement","__","defaultErrorElement","status","useErrorBoundary","error","isPending","pendingElement","defaultPendingElement","pendingMs","defaultElement","catchElement","defaultCatchElement","matchId","CatchBoundary","Component","reset","setState","info","componentDidCatch","console","render","DefaultErrorBoundary","padding","maxWidth","fontSize","height","message","border","borderRadius","color","borderLeft","paddingLeft","opacity","usePrompt","when","unblock","history","block","transition","confirm","retry","location","pathname","Prompt"],"mappings":"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"}
|