@tanstack/react-router 0.0.1-beta.69 → 0.0.1-beta.70
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/index.js +26 -20
- package/build/cjs/index.js.map +1 -1
- package/build/esm/index.js +21 -15
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +81 -51
- package/build/types/index.d.ts +3 -3
- package/build/umd/index.development.js +281 -244
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +4 -4
- package/build/umd/index.production.js.map +1 -1
- package/package.json +2 -2
- package/src/index.tsx +34 -44
package/build/cjs/index.js
CHANGED
|
@@ -180,18 +180,23 @@ class ReactRouter extends router.Router {
|
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
182
|
function RouterProvider({
|
|
183
|
-
router,
|
|
183
|
+
router: router$1,
|
|
184
184
|
...rest
|
|
185
185
|
}) {
|
|
186
|
-
router.update(rest);
|
|
187
|
-
const currentMatches = reactStore.useStore(router.store, s => s.currentMatches);
|
|
188
|
-
React__namespace.useEffect(router.mount, [router]);
|
|
189
|
-
return /*#__PURE__*/React__namespace.createElement(
|
|
186
|
+
router$1.update(rest);
|
|
187
|
+
const currentMatches = reactStore.useStore(router$1.store, s => s.currentMatches);
|
|
188
|
+
React__namespace.useEffect(router$1.mount, [router$1]);
|
|
189
|
+
return /*#__PURE__*/React__namespace.createElement(routerContext.Provider, {
|
|
190
190
|
value: {
|
|
191
|
-
router: router
|
|
191
|
+
router: router$1
|
|
192
192
|
}
|
|
193
193
|
}, /*#__PURE__*/React__namespace.createElement(matchesContext.Provider, {
|
|
194
194
|
value: [undefined, ...currentMatches]
|
|
195
|
+
}, /*#__PURE__*/React__namespace.createElement(CatchBoundary, {
|
|
196
|
+
errorComponent: ErrorComponent,
|
|
197
|
+
onCatch: () => {
|
|
198
|
+
router.warning(false, `Error in router! Consider setting an 'errorComponent' in your RootRoute! 👍`);
|
|
199
|
+
}
|
|
195
200
|
}, /*#__PURE__*/React__namespace.createElement(Outlet, null))));
|
|
196
201
|
}
|
|
197
202
|
function useRouterContext() {
|
|
@@ -304,23 +309,24 @@ function SubOutlet({
|
|
|
304
309
|
}, []);
|
|
305
310
|
const PendingComponent = match.pendingComponent ?? router$1.options.defaultPendingComponent ?? defaultPending;
|
|
306
311
|
const errorComponent = match.errorComponent ?? router$1.options.defaultErrorComponent;
|
|
312
|
+
const ResolvedSuspenseBoundary = match.route.options.wrapInSuspense ?? true ? React__namespace.Suspense : SafeFragment;
|
|
313
|
+
const ResolvedCatchBoundary = errorComponent ? CatchBoundary : SafeFragment;
|
|
307
314
|
return /*#__PURE__*/React__namespace.createElement(matchesContext.Provider, {
|
|
308
315
|
value: matches
|
|
309
|
-
},
|
|
316
|
+
}, /*#__PURE__*/React__namespace.createElement(ResolvedSuspenseBoundary, {
|
|
310
317
|
fallback: /*#__PURE__*/React__namespace.createElement(PendingComponent, null)
|
|
311
|
-
}, /*#__PURE__*/React__namespace.createElement(
|
|
318
|
+
}, /*#__PURE__*/React__namespace.createElement(ResolvedCatchBoundary, {
|
|
312
319
|
key: match.route.id,
|
|
313
320
|
errorComponent: errorComponent,
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
}))) : /*#__PURE__*/React__namespace.createElement(CatchBoundary, {
|
|
318
|
-
key: match.route.id,
|
|
319
|
-
errorComponent: errorComponent,
|
|
320
|
-
match: match
|
|
321
|
+
onCatch: () => {
|
|
322
|
+
router.warning(false, `Error in route match: ${match.id}`);
|
|
323
|
+
}
|
|
321
324
|
}, /*#__PURE__*/React__namespace.createElement(Inner, {
|
|
322
325
|
match: match
|
|
323
|
-
})));
|
|
326
|
+
}))));
|
|
327
|
+
}
|
|
328
|
+
function SafeFragment(props) {
|
|
329
|
+
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, props.children);
|
|
324
330
|
}
|
|
325
331
|
|
|
326
332
|
// This is the messiest thing ever... I'm either seriously tired (likely) or
|
|
@@ -333,7 +339,7 @@ class CatchBoundary extends React__namespace.Component {
|
|
|
333
339
|
info: undefined
|
|
334
340
|
};
|
|
335
341
|
componentDidCatch(error, info) {
|
|
336
|
-
|
|
342
|
+
this.props.onCatch(error, info);
|
|
337
343
|
console.error(error);
|
|
338
344
|
this.setState({
|
|
339
345
|
error,
|
|
@@ -350,7 +356,7 @@ class CatchBoundary extends React__namespace.Component {
|
|
|
350
356
|
function CatchBoundaryInner(props) {
|
|
351
357
|
const [activeErrorState, setActiveErrorState] = React__namespace.useState(props.errorState);
|
|
352
358
|
const router = useRouterContext();
|
|
353
|
-
const errorComponent = props.errorComponent ??
|
|
359
|
+
const errorComponent = props.errorComponent ?? ErrorComponent;
|
|
354
360
|
const prevKeyRef = React__namespace.useRef('');
|
|
355
361
|
React__namespace.useEffect(() => {
|
|
356
362
|
if (activeErrorState) {
|
|
@@ -371,7 +377,7 @@ function CatchBoundaryInner(props) {
|
|
|
371
377
|
}
|
|
372
378
|
return props.children;
|
|
373
379
|
}
|
|
374
|
-
function
|
|
380
|
+
function ErrorComponent({
|
|
375
381
|
error
|
|
376
382
|
}) {
|
|
377
383
|
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
@@ -429,7 +435,7 @@ Object.defineProperty(exports, 'useStore', {
|
|
|
429
435
|
enumerable: true,
|
|
430
436
|
get: function () { return reactStore.useStore; }
|
|
431
437
|
});
|
|
432
|
-
exports.
|
|
438
|
+
exports.ErrorComponent = ErrorComponent;
|
|
433
439
|
exports.Link = Link;
|
|
434
440
|
exports.MatchRoute = MatchRoute;
|
|
435
441
|
exports.Navigate = Navigate;
|
package/build/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport {\n Route,\n RegisteredRoutesInfo,\n RegisteredRouter,\n RouterStore,\n last,\n warning,\n RouterOptions,\n RouteMatch,\n MatchRouteOptions,\n AnyRoute,\n AnyRoutesInfo,\n DefaultRoutesInfo,\n functionalUpdate,\n RoutesInfo,\n ValidFromPath,\n LinkOptions,\n RouteByPath,\n ResolveRelativePath,\n NoInfer,\n ToOptions,\n invariant,\n Router,\n Expand,\n AnyContext,\n AnyRootRoute,\n RootRoute,\n AnySearchSchema,\n AnyPathParams,\n AnyRouteMatch,\n NavigateOptions,\n RouterConstructorOptions,\n} from '@tanstack/router'\nimport { useStore } from '@tanstack/react-store'\n\n//\n\nexport * from '@tanstack/router'\n\nexport { useStore }\n\n//\n\ntype ReactNode = any\n\nexport type SyncRouteComponent<TProps = {}> = (props: TProps) => ReactNode\n\nexport type RouteComponent<TProps = {}> = SyncRouteComponent<TProps> & {\n preload?: () => Promise<void>\n}\n\nexport function lazy(\n importer: () => Promise<{ default: SyncRouteComponent }>,\n): RouteComponent {\n const lazyComp = React.lazy(importer as any)\n let preloaded: Promise<SyncRouteComponent>\n\n const finalComp = lazyComp as unknown as RouteComponent\n\n finalComp.preload = async () => {\n if (!preloaded) {\n await importer()\n }\n }\n\n return finalComp\n}\n\nexport type LinkPropsOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n> = LinkOptions<RegisteredRoutesInfo, 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 MakeUseMatchRouteOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n> = ToOptions<RegisteredRoutesInfo, TFrom, TTo> & MatchRouteOptions\n\nexport type MakeMatchRouteOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n> = ToOptions<RegisteredRoutesInfo, TFrom, 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 | ReactNode\n | ((\n params: RouteByPath<\n RegisteredRoutesInfo,\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['__types']['allParams'],\n ) => ReactNode)\n }\n\nexport type MakeLinkPropsOptions<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '',\n> = LinkPropsOptions<TFrom, TTo> & React.AnchorHTMLAttributes<HTMLAnchorElement>\n\nexport type MakeLinkOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n> = LinkPropsOptions<TFrom, 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?: ReactNode | ((state: { isActive: boolean }) => ReactNode)\n }\n\ndeclare module '@tanstack/router' {\n interface FrameworkGenerics {\n Component: RouteComponent\n ErrorComponent: RouteComponent<{\n error: unknown\n info: { componentStack: string }\n }>\n }\n\n interface RouterOptions<TRouteTree> {\n // ssrFooter?: () => JSX.Element | Node\n }\n\n interface FrameworkRouteOptions {\n wrapInSuspense?: boolean\n }\n}\n\nexport type PromptProps = {\n message: string\n when?: boolean | any\n children?: ReactNode\n}\n\n//\n\nexport function useLinkProps<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '',\n>(\n options: MakeLinkPropsOptions<TFrom, TTo>,\n): React.AnchorHTMLAttributes<HTMLAnchorElement> {\n const router = useRouterContext()\n\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 replace,\n // element props\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n ...rest\n } = options\n\n const linkInfo = router.buildLink(options as any)\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 handleTouchStart,\n isActive,\n next,\n } = linkInfo\n\n const reactHandleClick = (e: Event) => {\n if (React.startTransition) {\n // This is a hack for react < 18\n React.startTransition(() => {\n handleClick(e)\n })\n } else {\n handleClick(e)\n }\n }\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n if (e.persist) e.persist()\n handlers.filter(Boolean).forEach((handler) => {\n if (e.defaultPrevented) return\n handler!(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> = isActive\n ? functionalUpdate(activeProps as any, {}) ?? {}\n : {}\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([onClick, reactHandleClick]),\n onFocus: composeHandlers([onFocus, handleFocus]),\n onMouseEnter: composeHandlers([onMouseEnter, handleEnter]),\n onMouseLeave: composeHandlers([onMouseLeave, handleLeave]),\n onTouchStart: composeHandlers([onTouchStart, handleTouchStart]),\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\nexport interface LinkFn<\n TDefaultFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TDefaultTo extends string = '',\n> {\n <\n TFrom extends RegisteredRoutesInfo['routePaths'] = TDefaultFrom,\n TTo extends string = TDefaultTo,\n >(\n props: MakeLinkOptions<TFrom, TTo> & React.RefAttributes<HTMLAnchorElement>,\n ): ReactNode\n}\n\nexport const Link: LinkFn = React.forwardRef((props: any, ref) => {\n const linkProps = useLinkProps(props)\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\nexport function Navigate<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n>(props: NavigateOptions<RegisteredRoutesInfo, TFrom, TTo>): null {\n const router = useRouterContext()\n\n React.useLayoutEffect(() => {\n router.navigate(props as any)\n }, [])\n\n return null\n}\n\ntype MatchesContextValue = AnyRouteMatch[]\n\nexport const matchesContext = React.createContext<MatchesContextValue>(null!)\nexport const routerContext = React.createContext<{ router: RegisteredRouter }>(\n null!,\n)\n\nexport type MatchesProviderProps = {\n value: MatchesContextValue\n children: ReactNode\n}\n\nexport class ReactRouter<\n TRouteConfig extends AnyRootRoute = RootRoute,\n TRoutesInfo extends AnyRoutesInfo = RoutesInfo<TRouteConfig>,\n> extends Router<TRouteConfig, TRoutesInfo> {\n constructor(opts: RouterConstructorOptions<TRouteConfig>) {\n super({\n ...opts,\n loadComponent: async (component) => {\n if (component.preload) {\n await component.preload()\n }\n\n return component as any\n },\n })\n }\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRootRoute = RootRoute,\n TRoutesInfo extends AnyRoutesInfo = DefaultRoutesInfo,\n> = RouterOptions<TRouteConfig> & {\n router: Router<TRouteConfig, TRoutesInfo>\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRootRoute = RootRoute,\n TRoutesInfo extends AnyRoutesInfo = DefaultRoutesInfo,\n>({ router, ...rest }: RouterProps<TRouteConfig, TRoutesInfo>) {\n router.update(rest)\n\n const currentMatches = useStore(router.store, (s) => s.currentMatches)\n\n React.useEffect(router.mount, [router])\n\n return (\n <>\n <routerContext.Provider value={{ router: router as any }}>\n <matchesContext.Provider value={[undefined!, ...currentMatches]}>\n <Outlet />\n </matchesContext.Provider>\n </routerContext.Provider>\n </>\n )\n}\n\nexport function useRouterContext(): RegisteredRouter {\n const value = React.useContext(routerContext)\n warning(!value, 'useRouter must be used inside a <Router> component!')\n\n useStore(value.router.store)\n\n return value.router\n}\n\nexport function useRouter<T = RouterStore>(\n track?: (state: Router['store']) => T,\n shallow?: boolean,\n): RegisteredRouter {\n const router = useRouterContext()\n useStore(router.store, track as any, shallow)\n return router\n}\n\nexport function useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\nexport function useMatch<\n TFrom extends keyof RegisteredRoutesInfo['routesById'],\n TStrict extends boolean = true,\n TRouteMatch = RouteMatch<\n RegisteredRoutesInfo,\n RegisteredRoutesInfo['routesById'][TFrom]\n >,\n>(opts?: {\n from: TFrom\n strict?: TStrict\n track?: (match: TRouteMatch) => any\n shallow?: boolean\n}): TStrict extends true ? TRouteMatch : TRouteMatch | undefined {\n const router = useRouterContext()\n const nearestMatch = useMatches()[0]!\n const match = opts?.from\n ? router.state.currentMatches.find((d) => d.route.id === opts?.from)\n : nearestMatch\n\n invariant(\n match,\n `Could not find ${\n opts?.from ? `an active match from \"${opts.from}\"` : 'a nearest match!'\n }`,\n )\n\n if (opts?.strict ?? true) {\n invariant(\n nearestMatch.route.id == match?.route.id,\n `useMatch(\"${\n match?.route.id as string\n }\") is being called in a component that is meant to render the '${\n nearestMatch.route.id\n }' route. Did you mean to 'useMatch(\"${\n match?.route.id as string\n }\", { strict: false })' or 'useRoute(\"${\n match?.route.id as string\n }\")' instead?`,\n )\n }\n\n useStore(\n match!.store as any,\n (d) => opts?.track?.(match as any) ?? match,\n opts?.shallow,\n )\n\n return match as any\n}\n\nexport function useRoute<\n TId extends keyof RegisteredRoutesInfo['routesById'] = '/',\n>(routeId: TId): RegisteredRoutesInfo['routesById'][TId] {\n const router = useRouterContext()\n const resolvedRoute = router.getRoute(routeId as any)\n\n invariant(\n resolvedRoute,\n `Could not find a route for route \"${\n routeId as string\n }\"! Did you forget to add it to your route?`,\n )\n\n return resolvedRoute as any\n}\n\nexport function useSearch<\n TFrom extends keyof RegisteredRoutesInfo['routesById'],\n TStrict extends boolean = true,\n TSearch = RegisteredRoutesInfo['routesById'][TFrom]['__types']['fullSearchSchema'],\n TSelected = TSearch,\n>(opts?: {\n from: TFrom\n strict?: TStrict\n track?: (search: TSearch) => TSelected\n}): TStrict extends true ? TSelected : TSelected | undefined {\n const match = useMatch(opts)\n useStore(\n (match as any).store,\n (d: any) => opts?.track?.(d.search) ?? d.search,\n true,\n )\n\n return (match as unknown as RouteMatch).state.search as any\n}\n\nexport function useParams<\n TFrom extends keyof RegisteredRoutesInfo['routesById'] = '/',\n TDefaultSelected = RegisteredRoutesInfo['allParams'] &\n RegisteredRoutesInfo['routesById'][TFrom]['__types']['allParams'],\n TSelected = TDefaultSelected,\n>(opts?: {\n from: TFrom\n track?: (search: TDefaultSelected) => TSelected\n}): TSelected {\n const router = useRouterContext()\n useStore(\n router.store,\n (d) => {\n const params = last(d.currentMatches)?.params as any\n return opts?.track?.(params) ?? params\n },\n true,\n )\n\n return last(router.state.currentMatches)?.params as any\n}\n\nexport function useNavigate<\n TDefaultFrom extends keyof RegisteredRoutesInfo['routesById'] = '/',\n>(defaultOpts?: { from?: TDefaultFrom }) {\n const router = useRouterContext()\n return React.useCallback(\n <\n TFrom extends keyof RegisteredRoutesInfo['routesById'] = TDefaultFrom,\n TTo extends string = '',\n >(\n opts?: MakeLinkOptions<TFrom, TTo>,\n ) => {\n return router.navigate({ ...defaultOpts, ...(opts as any) })\n },\n [],\n )\n}\n\nexport function useMatchRoute() {\n const router = useRouterContext()\n\n return React.useCallback(\n <\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '',\n >(\n opts: MakeUseMatchRouteOptions<TFrom, TTo>,\n ) => {\n const { pending, caseSensitive, ...rest } = opts\n\n return router.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n },\n [],\n )\n}\n\nexport function MatchRoute<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '',\n>(props: MakeMatchRouteOptions<TFrom, TTo>): any {\n const matchRoute = useMatchRoute()\n const params = matchRoute(props)\n\n if (!params) {\n return null\n }\n\n if (typeof props.children === 'function') {\n return (props.children as any)(params)\n }\n\n return params ? props.children : null\n}\n\nexport function Outlet() {\n const matches = useMatches().slice(1)\n const match = matches[0]\n\n if (!match) {\n return null\n }\n\n return <SubOutlet matches={matches} match={match} />\n}\n\nfunction SubOutlet({\n matches,\n match,\n}: {\n matches: RouteMatch[]\n match: RouteMatch\n}) {\n const router = useRouterContext()\n useStore(match!.store, (store) => [store.status, store.error], true)\n\n const defaultPending = React.useCallback(() => null, [])\n\n const Inner = React.useCallback((props: { match: RouteMatch }): any => {\n if (props.match.state.status === 'error') {\n throw props.match.state.error\n }\n\n if (props.match.state.status === 'success') {\n return React.createElement(\n (props.match.component as any) ??\n router.options.defaultComponent ??\n Outlet,\n )\n }\n\n if (props.match.state.status === 'pending') {\n throw props.match.__loadPromise\n }\n\n invariant(\n false,\n 'Idle routeMatch status encountered during rendering! You should never see this. File an issue!',\n )\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 <matchesContext.Provider value={matches}>\n {match.route.options.wrapInSuspense ?? true ? (\n <React.Suspense fallback={<PendingComponent />}>\n <CatchBoundary\n key={match.route.id}\n errorComponent={errorComponent}\n match={match as any}\n >\n <Inner match={match} />\n </CatchBoundary>\n </React.Suspense>\n ) : (\n <CatchBoundary\n key={match.route.id}\n errorComponent={errorComponent}\n match={match as any}\n >\n <Inner match={match} />\n </CatchBoundary>\n )}\n {/* Provide a suffix suspense boundary to make sure the router is\n ready to be dehydrated on the server */}\n {/* {router.options.ssrFooter && match.id === rootRouteId ? (\n <React.Suspense fallback={null}>\n {(() => {\n if (router.store.pending) {\n throw router.navigationPromise\n }\n\n return router.options.ssrFooter()\n })()}\n </React.Suspense>\n ) : null} */}\n </matchesContext.Provider>\n )\n}\n\n// This is the messiest thing ever... I'm either seriously tired (likely) or\n// there has to be a better way to reset error boundaries when the\n// router's location key changes.\n\nclass CatchBoundary extends React.Component<{\n children: any\n errorComponent: any\n match: RouteMatch\n}> {\n state = {\n error: false,\n info: undefined,\n }\n componentDidCatch(error: any, info: any) {\n console.error(`Error in route match: ${this.props.match.id}`)\n console.error(error)\n this.setState({\n error,\n info,\n })\n }\n render() {\n return (\n <CatchBoundaryInner\n {...this.props}\n errorState={this.state}\n reset={() => this.setState({})}\n />\n )\n }\n}\n\nfunction CatchBoundaryInner(props: {\n children: any\n errorComponent: any\n errorState: { error: unknown; info: any }\n reset: () => void\n}) {\n const [activeErrorState, setActiveErrorState] = React.useState(\n props.errorState,\n )\n const router = useRouterContext()\n const errorComponent = props.errorComponent ?? DefaultErrorBoundary\n const prevKeyRef = React.useRef('' as any)\n\n React.useEffect(() => {\n if (activeErrorState) {\n if (router.state.currentLocation.key !== prevKeyRef.current) {\n setActiveErrorState({} as any)\n }\n }\n\n prevKeyRef.current = router.state.currentLocation.key\n }, [activeErrorState, router.state.currentLocation.key])\n\n React.useEffect(() => {\n if (props.errorState.error) {\n setActiveErrorState(props.errorState)\n }\n // props.reset()\n }, [props.errorState.error])\n\n if (props.errorState.error && activeErrorState.error) {\n return React.createElement(errorComponent, activeErrorState)\n }\n\n return props.children\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\n// TODO: While we migrate away from the history package, these need to be disabled\n// export 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.getHistory().block((transition) => {\n// if (window.confirm(message)) {\n// unblock()\n// transition.retry()\n// } else {\n// router.setStore((s) => {\n// s.currentLocation.pathname = window.location.pathname\n// })\n// }\n// })\n\n// return unblock\n// }, [when, message])\n// }\n\n// export function Prompt({ message, when, children }: PromptProps) {\n// usePrompt(message, when ?? true)\n// return (children ?? null) as ReactNode\n// }\n"],"names":["lazy","importer","lazyComp","React","finalComp","preload","useLinkProps","options","router","useRouterContext","type","children","target","activeProps","className","inactiveProps","activeOptions","disabled","hash","search","params","to","preloadDelay","replace","style","onClick","onFocus","onMouseEnter","onMouseLeave","onTouchStart","rest","linkInfo","buildLink","href","handleClick","handleFocus","handleEnter","handleLeave","handleTouchStart","isActive","next","reactHandleClick","e","startTransition","composeHandlers","handlers","persist","filter","Boolean","forEach","handler","defaultPrevented","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","undefined","join","role","Link","forwardRef","props","ref","linkProps","_extends","Navigate","useLayoutEffect","navigate","matchesContext","createContext","routerContext","ReactRouter","Router","constructor","opts","loadComponent","component","RouterProvider","update","currentMatches","useStore","store","s","useEffect","mount","value","useContext","warning","useRouter","track","shallow","useMatches","useMatch","nearestMatch","match","from","state","find","d","route","id","invariant","strict","useRoute","routeId","resolvedRoute","getRoute","useSearch","useParams","last","useNavigate","defaultOpts","useCallback","useMatchRoute","pending","caseSensitive","matchRoute","MatchRoute","Outlet","matches","slice","SubOutlet","status","error","defaultPending","Inner","createElement","defaultComponent","__loadPromise","PendingComponent","pendingComponent","defaultPendingComponent","errorComponent","defaultErrorComponent","wrapInSuspense","CatchBoundary","Component","info","componentDidCatch","console","setState","render","CatchBoundaryInner","activeErrorState","setActiveErrorState","useState","errorState","DefaultErrorBoundary","prevKeyRef","useRef","currentLocation","key","current","padding","maxWidth","fontSize","height","message","border","borderRadius","color"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport {\n Route,\n RegisteredRoutesInfo,\n RegisteredRouter,\n RouterStore,\n last,\n warning,\n RouterOptions,\n RouteMatch,\n MatchRouteOptions,\n AnyRoutesInfo,\n DefaultRoutesInfo,\n functionalUpdate,\n RoutesInfo,\n ValidFromPath,\n LinkOptions,\n RouteByPath,\n ResolveRelativePath,\n NoInfer,\n ToOptions,\n invariant,\n Router,\n AnyRootRoute,\n RootRoute,\n AnyRouteMatch,\n NavigateOptions,\n RouterConstructorOptions,\n} from '@tanstack/router'\nimport { useStore } from '@tanstack/react-store'\n\n//\n\nexport * from '@tanstack/router'\n\nexport { useStore }\n\n//\n\ntype ReactNode = any\n\nexport type SyncRouteComponent<TProps = {}> = (props: TProps) => ReactNode\n\nexport type RouteComponent<TProps = {}> = SyncRouteComponent<TProps> & {\n preload?: () => Promise<void>\n}\n\nexport function lazy(\n importer: () => Promise<{ default: SyncRouteComponent }>,\n): RouteComponent {\n const lazyComp = React.lazy(importer as any)\n let preloaded: Promise<SyncRouteComponent>\n\n const finalComp = lazyComp as unknown as RouteComponent\n\n finalComp.preload = async () => {\n if (!preloaded) {\n await importer()\n }\n }\n\n return finalComp\n}\n\nexport type LinkPropsOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n> = LinkOptions<RegisteredRoutesInfo, 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 MakeUseMatchRouteOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n> = ToOptions<RegisteredRoutesInfo, TFrom, TTo> & MatchRouteOptions\n\nexport type MakeMatchRouteOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n> = ToOptions<RegisteredRoutesInfo, TFrom, 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 | ReactNode\n | ((\n params: RouteByPath<\n RegisteredRoutesInfo,\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['__types']['allParams'],\n ) => ReactNode)\n }\n\nexport type MakeLinkPropsOptions<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '',\n> = LinkPropsOptions<TFrom, TTo> & React.AnchorHTMLAttributes<HTMLAnchorElement>\n\nexport type MakeLinkOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n> = LinkPropsOptions<TFrom, 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?: ReactNode | ((state: { isActive: boolean }) => ReactNode)\n }\n\ndeclare module '@tanstack/router' {\n interface FrameworkGenerics {\n Component: RouteComponent\n ErrorComponent: RouteComponent<{\n error: Error\n info: { componentStack: string }\n }>\n }\n\n interface RouterOptions<TRouteTree> {\n // ssrFooter?: () => JSX.Element | Node\n }\n\n interface FrameworkRouteOptions {\n wrapInSuspense?: boolean\n }\n}\n\nexport type PromptProps = {\n message: string\n when?: boolean | any\n children?: ReactNode\n}\n\n//\n\nexport function useLinkProps<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '',\n>(\n options: MakeLinkPropsOptions<TFrom, TTo>,\n): React.AnchorHTMLAttributes<HTMLAnchorElement> {\n const router = useRouterContext()\n\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 replace,\n // element props\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n ...rest\n } = options\n\n const linkInfo = router.buildLink(options as any)\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 handleTouchStart,\n isActive,\n next,\n } = linkInfo\n\n const reactHandleClick = (e: Event) => {\n if (React.startTransition) {\n // This is a hack for react < 18\n React.startTransition(() => {\n handleClick(e)\n })\n } else {\n handleClick(e)\n }\n }\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n if (e.persist) e.persist()\n handlers.filter(Boolean).forEach((handler) => {\n if (e.defaultPrevented) return\n handler!(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> = isActive\n ? functionalUpdate(activeProps as any, {}) ?? {}\n : {}\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([onClick, reactHandleClick]),\n onFocus: composeHandlers([onFocus, handleFocus]),\n onMouseEnter: composeHandlers([onMouseEnter, handleEnter]),\n onMouseLeave: composeHandlers([onMouseLeave, handleLeave]),\n onTouchStart: composeHandlers([onTouchStart, handleTouchStart]),\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\nexport interface LinkFn<\n TDefaultFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TDefaultTo extends string = '',\n> {\n <\n TFrom extends RegisteredRoutesInfo['routePaths'] = TDefaultFrom,\n TTo extends string = TDefaultTo,\n >(\n props: MakeLinkOptions<TFrom, TTo> & React.RefAttributes<HTMLAnchorElement>,\n ): ReactNode\n}\n\nexport const Link: LinkFn = React.forwardRef((props: any, ref) => {\n const linkProps = useLinkProps(props)\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\nexport function Navigate<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n>(props: NavigateOptions<RegisteredRoutesInfo, TFrom, TTo>): null {\n const router = useRouterContext()\n\n React.useLayoutEffect(() => {\n router.navigate(props as any)\n }, [])\n\n return null\n}\n\ntype MatchesContextValue = AnyRouteMatch[]\n\nexport const matchesContext = React.createContext<MatchesContextValue>(null!)\nexport const routerContext = React.createContext<{ router: RegisteredRouter }>(\n null!,\n)\n\nexport type MatchesProviderProps = {\n value: MatchesContextValue\n children: ReactNode\n}\n\nexport class ReactRouter<\n TRouteConfig extends AnyRootRoute = RootRoute,\n TRoutesInfo extends AnyRoutesInfo = RoutesInfo<TRouteConfig>,\n> extends Router<TRouteConfig, TRoutesInfo> {\n constructor(opts: RouterConstructorOptions<TRouteConfig>) {\n super({\n ...opts,\n loadComponent: async (component) => {\n if (component.preload) {\n await component.preload()\n }\n\n return component as any\n },\n })\n }\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRootRoute = RootRoute,\n TRoutesInfo extends AnyRoutesInfo = DefaultRoutesInfo,\n> = RouterOptions<TRouteConfig> & {\n router: Router<TRouteConfig, TRoutesInfo>\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRootRoute = RootRoute,\n TRoutesInfo extends AnyRoutesInfo = DefaultRoutesInfo,\n>({ router, ...rest }: RouterProps<TRouteConfig, TRoutesInfo>) {\n router.update(rest)\n\n const currentMatches = useStore(router.store, (s) => s.currentMatches)\n\n React.useEffect(router.mount, [router])\n\n return (\n <routerContext.Provider value={{ router: router as any }}>\n <matchesContext.Provider value={[undefined!, ...currentMatches]}>\n <CatchBoundary\n errorComponent={ErrorComponent}\n onCatch={() => {\n warning(\n false,\n `Error in router! Consider setting an 'errorComponent' in your RootRoute! 👍`,\n )\n }}\n >\n <Outlet />\n </CatchBoundary>\n </matchesContext.Provider>\n </routerContext.Provider>\n )\n}\n\nexport function useRouterContext(): RegisteredRouter {\n const value = React.useContext(routerContext)\n warning(!value, 'useRouter must be used inside a <Router> component!')\n\n useStore(value.router.store)\n\n return value.router\n}\n\nexport function useRouter<T = RouterStore>(\n track?: (state: Router['store']) => T,\n shallow?: boolean,\n): RegisteredRouter {\n const router = useRouterContext()\n useStore(router.store, track as any, shallow)\n return router\n}\n\nexport function useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\nexport function useMatch<\n TFrom extends keyof RegisteredRoutesInfo['routesById'],\n TStrict extends boolean = true,\n TRouteMatch = RouteMatch<\n RegisteredRoutesInfo,\n RegisteredRoutesInfo['routesById'][TFrom]\n >,\n>(opts?: {\n from: TFrom\n strict?: TStrict\n track?: (match: TRouteMatch) => any\n shallow?: boolean\n}): TStrict extends true ? TRouteMatch : TRouteMatch | undefined {\n const router = useRouterContext()\n const nearestMatch = useMatches()[0]!\n const match = opts?.from\n ? router.state.currentMatches.find((d) => d.route.id === opts?.from)\n : nearestMatch\n\n invariant(\n match,\n `Could not find ${\n opts?.from ? `an active match from \"${opts.from}\"` : 'a nearest match!'\n }`,\n )\n\n if (opts?.strict ?? true) {\n invariant(\n nearestMatch.route.id == match?.route.id,\n `useMatch(\"${\n match?.route.id as string\n }\") is being called in a component that is meant to render the '${\n nearestMatch.route.id\n }' route. Did you mean to 'useMatch(\"${\n match?.route.id as string\n }\", { strict: false })' or 'useRoute(\"${\n match?.route.id as string\n }\")' instead?`,\n )\n }\n\n useStore(\n match!.store as any,\n (d) => opts?.track?.(match as any) ?? match,\n opts?.shallow,\n )\n\n return match as any\n}\n\nexport function useRoute<\n TId extends keyof RegisteredRoutesInfo['routesById'] = '/',\n>(routeId: TId): RegisteredRoutesInfo['routesById'][TId] {\n const router = useRouterContext()\n const resolvedRoute = router.getRoute(routeId as any)\n\n invariant(\n resolvedRoute,\n `Could not find a route for route \"${\n routeId as string\n }\"! Did you forget to add it to your route?`,\n )\n\n return resolvedRoute as any\n}\n\nexport function useSearch<\n TFrom extends keyof RegisteredRoutesInfo['routesById'],\n TStrict extends boolean = true,\n TSearch = RegisteredRoutesInfo['routesById'][TFrom]['__types']['fullSearchSchema'],\n TSelected = TSearch,\n>(opts?: {\n from: TFrom\n strict?: TStrict\n track?: (search: TSearch) => TSelected\n}): TStrict extends true ? TSelected : TSelected | undefined {\n const match = useMatch(opts)\n useStore(\n (match as any).store,\n (d: any) => opts?.track?.(d.search) ?? d.search,\n true,\n )\n\n return (match as unknown as RouteMatch).state.search as any\n}\n\nexport function useParams<\n TFrom extends keyof RegisteredRoutesInfo['routesById'] = '/',\n TDefaultSelected = RegisteredRoutesInfo['allParams'] &\n RegisteredRoutesInfo['routesById'][TFrom]['__types']['allParams'],\n TSelected = TDefaultSelected,\n>(opts?: {\n from: TFrom\n track?: (search: TDefaultSelected) => TSelected\n}): TSelected {\n const router = useRouterContext()\n useStore(\n router.store,\n (d) => {\n const params = last(d.currentMatches)?.params as any\n return opts?.track?.(params) ?? params\n },\n true,\n )\n\n return last(router.state.currentMatches)?.params as any\n}\n\nexport function useNavigate<\n TDefaultFrom extends keyof RegisteredRoutesInfo['routesById'] = '/',\n>(defaultOpts?: { from?: TDefaultFrom }) {\n const router = useRouterContext()\n return React.useCallback(\n <\n TFrom extends keyof RegisteredRoutesInfo['routesById'] = TDefaultFrom,\n TTo extends string = '',\n >(\n opts?: MakeLinkOptions<TFrom, TTo>,\n ) => {\n return router.navigate({ ...defaultOpts, ...(opts as any) })\n },\n [],\n )\n}\n\nexport function useMatchRoute() {\n const router = useRouterContext()\n\n return React.useCallback(\n <\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '',\n >(\n opts: MakeUseMatchRouteOptions<TFrom, TTo>,\n ) => {\n const { pending, caseSensitive, ...rest } = opts\n\n return router.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n },\n [],\n )\n}\n\nexport function MatchRoute<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '',\n>(props: MakeMatchRouteOptions<TFrom, TTo>): any {\n const matchRoute = useMatchRoute()\n const params = matchRoute(props)\n\n if (!params) {\n return null\n }\n\n if (typeof props.children === 'function') {\n return (props.children as any)(params)\n }\n\n return params ? props.children : null\n}\n\nexport function Outlet() {\n const matches = useMatches().slice(1)\n const match = matches[0]\n\n if (!match) {\n return null\n }\n\n return <SubOutlet matches={matches} match={match} />\n}\n\nfunction SubOutlet({\n matches,\n match,\n}: {\n matches: RouteMatch[]\n match: RouteMatch\n}) {\n const router = useRouterContext()\n useStore(match!.store, (store) => [store.status, store.error], true)\n\n const defaultPending = React.useCallback(() => null, [])\n\n const Inner = React.useCallback((props: { match: RouteMatch }): any => {\n if (props.match.state.status === 'error') {\n throw props.match.state.error\n }\n\n if (props.match.state.status === 'success') {\n return React.createElement(\n (props.match.component as any) ??\n router.options.defaultComponent ??\n Outlet,\n )\n }\n\n if (props.match.state.status === 'pending') {\n throw props.match.__loadPromise\n }\n\n invariant(\n false,\n 'Idle routeMatch status encountered during rendering! You should never see this. File an issue!',\n )\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 const ResolvedSuspenseBoundary =\n match.route.options.wrapInSuspense ?? true ? React.Suspense : SafeFragment\n const ResolvedCatchBoundary = errorComponent ? CatchBoundary : SafeFragment\n\n return (\n <matchesContext.Provider value={matches}>\n <ResolvedSuspenseBoundary fallback={<PendingComponent />}>\n <ResolvedCatchBoundary\n key={match.route.id}\n errorComponent={errorComponent}\n onCatch={() => {\n warning(false, `Error in route match: ${match.id}`)\n }}\n >\n <Inner match={match} />\n </ResolvedCatchBoundary>\n </ResolvedSuspenseBoundary>\n </matchesContext.Provider>\n )\n}\n\nfunction SafeFragment(props: any) {\n return <>{props.children}</>\n}\n\n// This is the messiest thing ever... I'm either seriously tired (likely) or\n// there has to be a better way to reset error boundaries when the\n// router's location key changes.\n\nclass CatchBoundary extends React.Component<{\n children: any\n errorComponent: any\n onCatch: (error: any, info: any) => void\n}> {\n state = {\n error: false,\n info: undefined,\n }\n componentDidCatch(error: any, info: any) {\n this.props.onCatch(error, info)\n console.error(error)\n this.setState({\n error,\n info,\n })\n }\n render() {\n return (\n <CatchBoundaryInner\n {...this.props}\n errorState={this.state}\n reset={() => this.setState({})}\n />\n )\n }\n}\n\nfunction CatchBoundaryInner(props: {\n children: any\n errorComponent: any\n errorState: { error: unknown; info: any }\n reset: () => void\n}) {\n const [activeErrorState, setActiveErrorState] = React.useState(\n props.errorState,\n )\n const router = useRouterContext()\n const errorComponent = props.errorComponent ?? ErrorComponent\n const prevKeyRef = React.useRef('' as any)\n\n React.useEffect(() => {\n if (activeErrorState) {\n if (router.state.currentLocation.key !== prevKeyRef.current) {\n setActiveErrorState({} as any)\n }\n }\n\n prevKeyRef.current = router.state.currentLocation.key\n }, [activeErrorState, router.state.currentLocation.key])\n\n React.useEffect(() => {\n if (props.errorState.error) {\n setActiveErrorState(props.errorState)\n }\n // props.reset()\n }, [props.errorState.error])\n\n if (props.errorState.error && activeErrorState.error) {\n return React.createElement(errorComponent, activeErrorState)\n }\n\n return props.children\n}\n\nexport function ErrorComponent({ 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\n// TODO: While we migrate away from the history package, these need to be disabled\n// export 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.getHistory().block((transition) => {\n// if (window.confirm(message)) {\n// unblock()\n// transition.retry()\n// } else {\n// router.setStore((s) => {\n// s.currentLocation.pathname = window.location.pathname\n// })\n// }\n// })\n\n// return unblock\n// }, [when, message])\n// }\n\n// export function Prompt({ message, when, children }: PromptProps) {\n// usePrompt(message, when ?? true)\n// return (children ?? null) as ReactNode\n// }\n"],"names":["lazy","importer","lazyComp","React","finalComp","preload","useLinkProps","options","router","useRouterContext","type","children","target","activeProps","className","inactiveProps","activeOptions","disabled","hash","search","params","to","preloadDelay","replace","style","onClick","onFocus","onMouseEnter","onMouseLeave","onTouchStart","rest","linkInfo","buildLink","href","handleClick","handleFocus","handleEnter","handleLeave","handleTouchStart","isActive","next","reactHandleClick","e","startTransition","composeHandlers","handlers","persist","filter","Boolean","forEach","handler","defaultPrevented","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","undefined","join","role","Link","forwardRef","props","ref","linkProps","_extends","Navigate","useLayoutEffect","navigate","matchesContext","createContext","routerContext","ReactRouter","Router","constructor","opts","loadComponent","component","RouterProvider","update","currentMatches","useStore","store","s","useEffect","mount","ErrorComponent","warning","value","useContext","useRouter","track","shallow","useMatches","useMatch","nearestMatch","match","from","state","find","d","route","id","invariant","strict","useRoute","routeId","resolvedRoute","getRoute","useSearch","useParams","last","useNavigate","defaultOpts","useCallback","useMatchRoute","pending","caseSensitive","matchRoute","MatchRoute","Outlet","matches","slice","SubOutlet","status","error","defaultPending","Inner","createElement","defaultComponent","__loadPromise","PendingComponent","pendingComponent","defaultPendingComponent","errorComponent","defaultErrorComponent","ResolvedSuspenseBoundary","wrapInSuspense","Suspense","SafeFragment","ResolvedCatchBoundary","CatchBoundary","Component","info","componentDidCatch","onCatch","console","setState","render","CatchBoundaryInner","activeErrorState","setActiveErrorState","useState","errorState","prevKeyRef","useRef","currentLocation","key","current","padding","maxWidth","fontSize","height","message","border","borderRadius","color"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA;;AAUO,SAASA,IAAI,CAClBC,QAAwD,EACxC;AAChB,EAAA,MAAMC,QAAQ,gBAAGC,gBAAK,CAACH,IAAI,CAACC,QAAQ,CAAQ,CAAA;EAG5C,MAAMG,SAAS,GAAGF,QAAqC,CAAA;EAEvDE,SAAS,CAACC,OAAO,GAAG,YAAY;IACd;AACd,MAAA,MAAMJ,QAAQ,EAAE,CAAA;AAClB,KAAA;GACD,CAAA;AAED,EAAA,OAAOG,SAAS,CAAA;AAClB,CAAA;AA4EA;;AAEO,SAASE,YAAY,CAI1BC,OAAyC,EACM;EAC/C,MAAMC,QAAM,GAAGC,gBAAgB,EAAE,CAAA;EAEjC,MAAM;AACJ;IACAC,IAAI;IACJC,QAAQ;IACRC,MAAM;AACNC,IAAAA,WAAW,GAAG,OAAO;AAAEC,MAAAA,SAAS,EAAE,QAAA;AAAS,KAAC,CAAC;AAC7CC,IAAAA,aAAa,GAAG,OAAO,EAAE,CAAC;IAC1BC,aAAa;IACbC,QAAQ;AACR;IACAC,IAAI;IACJC,MAAM;IACNC,MAAM;AACNC,IAAAA,EAAE,GAAG,GAAG;IACRhB,OAAO;IACPiB,YAAY;IACZC,OAAO;AACP;IACAC,KAAK;IACLV,SAAS;IACTW,OAAO;IACPC,OAAO;IACPC,YAAY;IACZC,YAAY;IACZC,YAAY;IACZ,GAAGC,IAAAA;AACL,GAAC,GAAGvB,OAAO,CAAA;AAEX,EAAA,MAAMwB,QAAQ,GAAGvB,QAAM,CAACwB,SAAS,CAACzB,OAAO,CAAQ,CAAA;AAEjD,EAAA,IAAIwB,QAAQ,CAACrB,IAAI,KAAK,UAAU,EAAE;IAChC,MAAM;AAAEuB,MAAAA,IAAAA;AAAK,KAAC,GAAGF,QAAQ,CAAA;IACzB,OAAO;AAAEE,MAAAA,IAAAA;KAAM,CAAA;AACjB,GAAA;EAEA,MAAM;IACJC,WAAW;IACXC,WAAW;IACXC,WAAW;IACXC,WAAW;IACXC,gBAAgB;IAChBC,QAAQ;AACRC,IAAAA,IAAAA;AACF,GAAC,GAAGT,QAAQ,CAAA;EAEZ,MAAMU,gBAAgB,GAAIC,CAAQ,IAAK;IACrC,IAAIvC,gBAAK,CAACwC,eAAe,EAAE;AACzB;MACAxC,gBAAK,CAACwC,eAAe,CAAC,MAAM;QAC1BT,WAAW,CAACQ,CAAC,CAAC,CAAA;AAChB,OAAC,CAAC,CAAA;AACJ,KAAC,MAAM;MACLR,WAAW,CAACQ,CAAC,CAAC,CAAA;AAChB,KAAA;GACD,CAAA;AAED,EAAA,MAAME,eAAe,GAClBC,QAA4C,IAC5CH,CAAuB,IAAK;AAC3B,IAAA,IAAIA,CAAC,CAACI,OAAO,EAAEJ,CAAC,CAACI,OAAO,EAAE,CAAA;IAC1BD,QAAQ,CAACE,MAAM,CAACC,OAAO,CAAC,CAACC,OAAO,CAAEC,OAAO,IAAK;MAC5C,IAAIR,CAAC,CAACS,gBAAgB,EAAE,OAAA;MACxBD,OAAO,CAAER,CAAC,CAAC,CAAA;AACb,KAAC,CAAC,CAAA;GACH,CAAA;;AAEH;AACA,EAAA,MAAMU,mBAA4D,GAAGb,QAAQ,GACzEc,uBAAgB,CAACxC,WAAW,EAAS,EAAE,CAAC,IAAI,EAAE,GAC9C,EAAE,CAAA;;AAEN;AACA,EAAA,MAAMyC,qBAA8D,GAClEf,QAAQ,GAAG,EAAE,GAAGc,uBAAgB,CAACtC,aAAa,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;EAE3D,OAAO;AACL,IAAA,GAAGqC,mBAAmB;AACtB,IAAA,GAAGE,qBAAqB;AACxB,IAAA,GAAGxB,IAAI;AACPG,IAAAA,IAAI,EAAEhB,QAAQ,GAAGsC,SAAS,GAAGf,IAAI,CAACP,IAAI;IACtCR,OAAO,EAAEmB,eAAe,CAAC,CAACnB,OAAO,EAAEgB,gBAAgB,CAAC,CAAC;IACrDf,OAAO,EAAEkB,eAAe,CAAC,CAAClB,OAAO,EAAES,WAAW,CAAC,CAAC;IAChDR,YAAY,EAAEiB,eAAe,CAAC,CAACjB,YAAY,EAAES,WAAW,CAAC,CAAC;IAC1DR,YAAY,EAAEgB,eAAe,CAAC,CAAChB,YAAY,EAAES,WAAW,CAAC,CAAC;IAC1DR,YAAY,EAAEe,eAAe,CAAC,CAACf,YAAY,EAAES,gBAAgB,CAAC,CAAC;IAC/D1B,MAAM;AACNY,IAAAA,KAAK,EAAE;AACL,MAAA,GAAGA,KAAK;MACR,GAAG4B,mBAAmB,CAAC5B,KAAK;AAC5B,MAAA,GAAG8B,qBAAqB,CAAC9B,KAAAA;KAC1B;IACDV,SAAS,EACP,CACEA,SAAS,EACTsC,mBAAmB,CAACtC,SAAS,EAC7BwC,qBAAqB,CAACxC,SAAS,CAChC,CACEiC,MAAM,CAACC,OAAO,CAAC,CACfQ,IAAI,CAAC,GAAG,CAAC,IAAID,SAAS;AAC3B,IAAA,IAAItC,QAAQ,GACR;AACEwC,MAAAA,IAAI,EAAE,MAAM;AACZ,MAAA,eAAe,EAAE,IAAA;KAClB,GACDF,SAAS,CAAC;AACd,IAAA,CAAC,aAAa,GAAGhB,QAAQ,GAAG,QAAQ,GAAGgB,SAAAA;GACxC,CAAA;AACH,CAAA;AAcO,MAAMG,IAAY,gBAAGvD,gBAAK,CAACwD,UAAU,CAAC,CAACC,KAAU,EAAEC,GAAG,KAAK;AAChE,EAAA,MAAMC,SAAS,GAAGxD,YAAY,CAACsD,KAAK,CAAC,CAAA;EAErC,oBACEzD,gBAAA,CAAA,aAAA,CAAA,GAAA,EAAA4D,oCAAA,CAAA;AAEIF,IAAAA,GAAG,EAAEA,GAAAA;AAAU,GAAA,EACZC,SAAS,EAAA;IACZnD,QAAQ,EACN,OAAOiD,KAAK,CAACjD,QAAQ,KAAK,UAAU,GAChCiD,KAAK,CAACjD,QAAQ,CAAC;AACb4B,MAAAA,QAAQ,EAAGuB,SAAS,CAAS,aAAa,CAAC,KAAK,QAAA;KACjD,CAAC,GACFF,KAAK,CAACjD,QAAAA;GAEd,CAAA,CAAA,CAAA;AAEN,CAAC,EAAQ;AAEF,SAASqD,QAAQ,CAGtBJ,KAAwD,EAAQ;EAChE,MAAMpD,MAAM,GAAGC,gBAAgB,EAAE,CAAA;EAEjCN,gBAAK,CAAC8D,eAAe,CAAC,MAAM;AAC1BzD,IAAAA,MAAM,CAAC0D,QAAQ,CAACN,KAAK,CAAQ,CAAA;GAC9B,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,OAAO,IAAI,CAAA;AACb,CAAA;AAIO,MAAMO,cAAc,gBAAGhE,gBAAK,CAACiE,aAAa,CAAsB,IAAI,EAAE;AACtE,MAAMC,aAAa,gBAAGlE,gBAAK,CAACiE,aAAa,CAC9C,IAAI,EACL;AAOM,MAAME,WAAW,SAGdC,aAAM,CAA4B;EAC1CC,WAAW,CAACC,IAA4C,EAAE;AACxD,IAAA,KAAK,CAAC;AACJ,MAAA,GAAGA,IAAI;MACPC,aAAa,EAAE,MAAOC,SAAS,IAAK;QAClC,IAAIA,SAAS,CAACtE,OAAO,EAAE;UACrB,MAAMsE,SAAS,CAACtE,OAAO,EAAE,CAAA;AAC3B,SAAA;AAEA,QAAA,OAAOsE,SAAS,CAAA;AAClB,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;AACF,CAAA;AASO,SAASC,cAAc,CAG5B;UAAEpE,QAAM;EAAE,GAAGsB,IAAAA;AAA6C,CAAC,EAAE;AAC7DtB,EAAAA,QAAM,CAACqE,MAAM,CAAC/C,IAAI,CAAC,CAAA;AAEnB,EAAA,MAAMgD,cAAc,GAAGC,mBAAQ,CAACvE,QAAM,CAACwE,KAAK,EAAGC,CAAC,IAAKA,CAAC,CAACH,cAAc,CAAC,CAAA;EAEtE3E,gBAAK,CAAC+E,SAAS,CAAC1E,QAAM,CAAC2E,KAAK,EAAE,CAAC3E,QAAM,CAAC,CAAC,CAAA;EAEvC,oBACEL,gBAAA,CAAA,aAAA,CAAC,aAAa,CAAC,QAAQ,EAAA;AAAC,IAAA,KAAK,EAAE;AAAEK,MAAAA,MAAM,EAAEA,QAAAA;AAAc,KAAA;GACrD,eAAAL,gBAAA,CAAA,aAAA,CAAC,cAAc,CAAC,QAAQ,EAAA;AAAC,IAAA,KAAK,EAAE,CAACoD,SAAS,EAAG,GAAGuB,cAAc,CAAA;AAAE,GAAA,eAC9D3E,+BAAC,aAAa,EAAA;AACZ,IAAA,cAAc,EAAEiF,cAAe;AAC/B,IAAA,OAAO,EAAE,MAAM;AACbC,MAAAA,cAAO,CACL,KAAK,EACJ,CAAA,2EAAA,CAA4E,CAC9E,CAAA;AACH,KAAA;AAAE,GAAA,eAEFlF,gBAAC,CAAA,aAAA,CAAA,MAAM,EAAG,IAAA,CAAA,CACI,CACQ,CACH,CAAA;AAE7B,CAAA;AAEO,SAASM,gBAAgB,GAAqB;AACnD,EAAA,MAAM6E,KAAK,GAAGnF,gBAAK,CAACoF,UAAU,CAAClB,aAAa,CAAC,CAAA;AAC7CgB,EAAAA,cAAO,CAAC,CAACC,KAAK,EAAE,qDAAqD,CAAC,CAAA;AAEtEP,EAAAA,mBAAQ,CAACO,KAAK,CAAC9E,MAAM,CAACwE,KAAK,CAAC,CAAA;EAE5B,OAAOM,KAAK,CAAC9E,MAAM,CAAA;AACrB,CAAA;AAEO,SAASgF,SAAS,CACvBC,KAAqC,EACrCC,OAAiB,EACC;EAClB,MAAMlF,MAAM,GAAGC,gBAAgB,EAAE,CAAA;EACjCsE,mBAAQ,CAACvE,MAAM,CAACwE,KAAK,EAAES,KAAK,EAASC,OAAO,CAAC,CAAA;AAC7C,EAAA,OAAOlF,MAAM,CAAA;AACf,CAAA;AAEO,SAASmF,UAAU,GAAiB;AACzC,EAAA,OAAOxF,gBAAK,CAACoF,UAAU,CAACpB,cAAc,CAAC,CAAA;AACzC,CAAA;AAEO,SAASyB,QAAQ,CAOtBnB,IAKD,EAAgE;EAC/D,MAAMjE,QAAM,GAAGC,gBAAgB,EAAE,CAAA;AACjC,EAAA,MAAMoF,YAAY,GAAGF,UAAU,EAAE,CAAC,CAAC,CAAE,CAAA;EACrC,MAAMG,KAAK,GAAGrB,IAAI,EAAEsB,IAAI,GACpBvF,QAAM,CAACwF,KAAK,CAAClB,cAAc,CAACmB,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,KAAK,CAACC,EAAE,KAAK3B,IAAI,EAAEsB,IAAI,CAAC,GAClEF,YAAY,CAAA;AAEhBQ,EAAAA,gBAAS,CACPP,KAAK,EACJ,CACCrB,eAAAA,EAAAA,IAAI,EAAEsB,IAAI,GAAI,CAAwBtB,sBAAAA,EAAAA,IAAI,CAACsB,IAAK,CAAA,CAAA,CAAE,GAAG,kBACtD,EAAC,CACH,CAAA;AAED,EAAA,IAAItB,IAAI,EAAE6B,MAAM,IAAI,IAAI,EAAE;AACxBD,IAAAA,gBAAS,CACPR,YAAY,CAACM,KAAK,CAACC,EAAE,IAAIN,KAAK,EAAEK,KAAK,CAACC,EAAE,EACvC,aACCN,KAAK,EAAEK,KAAK,CAACC,EACd,CACCP,+DAAAA,EAAAA,YAAY,CAACM,KAAK,CAACC,EACpB,CAAA,oCAAA,EACCN,KAAK,EAAEK,KAAK,CAACC,EACd,wCACCN,KAAK,EAAEK,KAAK,CAACC,EACd,cAAa,CACf,CAAA;AACH,GAAA;AAEArB,EAAAA,mBAAQ,CACNe,KAAK,CAAEd,KAAK,EACXkB,CAAC,IAAKzB,IAAI,EAAEgB,KAAK,GAAGK,KAAK,CAAQ,IAAIA,KAAK,EAC3CrB,IAAI,EAAEiB,OAAO,CACd,CAAA;AAED,EAAA,OAAOI,KAAK,CAAA;AACd,CAAA;AAEO,SAASS,QAAQ,CAEtBC,OAAY,EAA2C;EACvD,MAAMhG,QAAM,GAAGC,gBAAgB,EAAE,CAAA;AACjC,EAAA,MAAMgG,aAAa,GAAGjG,QAAM,CAACkG,QAAQ,CAACF,OAAO,CAAQ,CAAA;AAErDH,EAAAA,gBAAS,CACPI,aAAa,EACZ,CACCD,kCAAAA,EAAAA,OACD,4CAA2C,CAC7C,CAAA;AAED,EAAA,OAAOC,aAAa,CAAA;AACtB,CAAA;AAEO,SAASE,SAAS,CAKvBlC,IAID,EAA4D;AAC3D,EAAA,MAAMqB,KAAK,GAAGF,QAAQ,CAACnB,IAAI,CAAC,CAAA;EAC5BM,mBAAQ,CACLe,KAAK,CAASd,KAAK,EACnBkB,CAAM,IAAKzB,IAAI,EAAEgB,KAAK,GAAGS,CAAC,CAAC/E,MAAM,CAAC,IAAI+E,CAAC,CAAC/E,MAAM,EAC/C,IAAI,CACL,CAAA;AAED,EAAA,OAAQ2E,KAAK,CAA2BE,KAAK,CAAC7E,MAAM,CAAA;AACtD,CAAA;AAEO,SAASyF,SAAS,CAKvBnC,IAGD,EAAa;EACZ,MAAMjE,QAAM,GAAGC,gBAAgB,EAAE,CAAA;AACjCsE,EAAAA,mBAAQ,CACNvE,QAAM,CAACwE,KAAK,EACXkB,CAAC,IAAK;IACL,MAAM9E,MAAM,GAAGyF,WAAI,CAACX,CAAC,CAACpB,cAAc,CAAC,EAAE1D,MAAa,CAAA;AACpD,IAAA,OAAOqD,IAAI,EAAEgB,KAAK,GAAGrE,MAAM,CAAC,IAAIA,MAAM,CAAA;GACvC,EACD,IAAI,CACL,CAAA;EAED,OAAOyF,WAAI,CAACrG,QAAM,CAACwF,KAAK,CAAClB,cAAc,CAAC,EAAE1D,MAAM,CAAA;AAClD,CAAA;AAEO,SAAS0F,WAAW,CAEzBC,WAAqC,EAAE;EACvC,MAAMvG,MAAM,GAAGC,gBAAgB,EAAE,CAAA;AACjC,EAAA,OAAON,gBAAK,CAAC6G,WAAW,CAKpBvC,IAAkC,IAC/B;IACH,OAAOjE,MAAM,CAAC0D,QAAQ,CAAC;AAAE,MAAA,GAAG6C,WAAW;MAAE,GAAItC,IAAAA;AAAa,KAAC,CAAC,CAAA;GAC7D,EACD,EAAE,CACH,CAAA;AACH,CAAA;AAEO,SAASwC,aAAa,GAAG;EAC9B,MAAMzG,MAAM,GAAGC,gBAAgB,EAAE,CAAA;AAEjC,EAAA,OAAON,gBAAK,CAAC6G,WAAW,CAKpBvC,IAA0C,IACvC;IACH,MAAM;MAAEyC,OAAO;MAAEC,aAAa;MAAE,GAAGrF,IAAAA;AAAK,KAAC,GAAG2C,IAAI,CAAA;AAEhD,IAAA,OAAOjE,MAAM,CAAC4G,UAAU,CAACtF,IAAI,EAAS;MACpCoF,OAAO;AACPC,MAAAA,aAAAA;AACF,KAAC,CAAC,CAAA;GACH,EACD,EAAE,CACH,CAAA;AACH,CAAA;AAEO,SAASE,UAAU,CAGxBzD,KAAwC,EAAO;EAC/C,MAAMwD,UAAU,GAAGH,aAAa,EAAE,CAAA;AAClC,EAAA,MAAM7F,MAAM,GAAGgG,UAAU,CAACxD,KAAK,CAAC,CAAA;EAEhC,IAAI,CAACxC,MAAM,EAAE;AACX,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA,EAAA,IAAI,OAAOwC,KAAK,CAACjD,QAAQ,KAAK,UAAU,EAAE;AACxC,IAAA,OAAQiD,KAAK,CAACjD,QAAQ,CAASS,MAAM,CAAC,CAAA;AACxC,GAAA;AAEA,EAAA,OAAOA,MAAM,GAAGwC,KAAK,CAACjD,QAAQ,GAAG,IAAI,CAAA;AACvC,CAAA;AAEO,SAAS2G,MAAM,GAAG;EACvB,MAAMC,OAAO,GAAG5B,UAAU,EAAE,CAAC6B,KAAK,CAAC,CAAC,CAAC,CAAA;AACrC,EAAA,MAAM1B,KAAK,GAAGyB,OAAO,CAAC,CAAC,CAAC,CAAA;EAExB,IAAI,CAACzB,KAAK,EAAE;AACV,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA,EAAA,oBAAO3F,+BAAC,SAAS,EAAA;AAAC,IAAA,OAAO,EAAEoH,OAAQ;AAAC,IAAA,KAAK,EAAEzB,KAAAA;GAAS,CAAA,CAAA;AACtD,CAAA;AAEA,SAAS2B,SAAS,CAAC;EACjBF,OAAO;AACPzB,EAAAA,KAAAA;AAIF,CAAC,EAAE;EACD,MAAMtF,QAAM,GAAGC,gBAAgB,EAAE,CAAA;AACjCsE,EAAAA,mBAAQ,CAACe,KAAK,CAAEd,KAAK,EAAGA,KAAK,IAAK,CAACA,KAAK,CAAC0C,MAAM,EAAE1C,KAAK,CAAC2C,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;EAEpE,MAAMC,cAAc,GAAGzH,gBAAK,CAAC6G,WAAW,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAA;AAExD,EAAA,MAAMa,KAAK,GAAG1H,gBAAK,CAAC6G,WAAW,CAAEpD,KAA4B,IAAU;IACrE,IAAIA,KAAK,CAACkC,KAAK,CAACE,KAAK,CAAC0B,MAAM,KAAK,OAAO,EAAE;AACxC,MAAA,MAAM9D,KAAK,CAACkC,KAAK,CAACE,KAAK,CAAC2B,KAAK,CAAA;AAC/B,KAAA;IAEA,IAAI/D,KAAK,CAACkC,KAAK,CAACE,KAAK,CAAC0B,MAAM,KAAK,SAAS,EAAE;AAC1C,MAAA,oBAAOvH,gBAAK,CAAC2H,aAAa,CACvBlE,KAAK,CAACkC,KAAK,CAACnB,SAAS,IACpBnE,QAAM,CAACD,OAAO,CAACwH,gBAAgB,IAC/BT,MAAM,CACT,CAAA;AACH,KAAA;IAEA,IAAI1D,KAAK,CAACkC,KAAK,CAACE,KAAK,CAAC0B,MAAM,KAAK,SAAS,EAAE;AAC1C,MAAA,MAAM9D,KAAK,CAACkC,KAAK,CAACkC,aAAa,CAAA;AACjC,KAAA;AAEA3B,IAAAA,gBAAS,CACP,KAAK,EACL,gGAAgG,CACjG,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAM4B,gBAAgB,GAAInC,KAAK,CAACoC,gBAAgB,IAC9C1H,QAAM,CAACD,OAAO,CAAC4H,uBAAuB,IACtCP,cAAsB,CAAA;EAExB,MAAMQ,cAAc,GAClBtC,KAAK,CAACsC,cAAc,IAAI5H,QAAM,CAACD,OAAO,CAAC8H,qBAAqB,CAAA;AAE9D,EAAA,MAAMC,wBAAwB,GAC5BxC,KAAK,CAACK,KAAK,CAAC5F,OAAO,CAACgI,cAAc,IAAI,IAAI,GAAGpI,gBAAK,CAACqI,QAAQ,GAAGC,YAAY,CAAA;AAC5E,EAAA,MAAMC,qBAAqB,GAAGN,cAAc,GAAGO,aAAa,GAAGF,YAAY,CAAA;EAE3E,oBACEtI,gBAAA,CAAA,aAAA,CAAC,cAAc,CAAC,QAAQ,EAAA;AAAC,IAAA,KAAK,EAAEoH,OAAAA;AAAQ,GAAA,eACtCpH,+BAAC,wBAAwB,EAAA;IAAC,QAAQ,eAAEA,+BAAC,gBAAgB,EAAA,IAAA,CAAA;AAAI,GAAA,eACvDA,+BAAC,qBAAqB,EAAA;AACpB,IAAA,GAAG,EAAE2F,KAAK,CAACK,KAAK,CAACC,EAAG;AACpB,IAAA,cAAc,EAAEgC,cAAe;AAC/B,IAAA,OAAO,EAAE,MAAM;MACb/C,cAAO,CAAC,KAAK,EAAG,CAAA,sBAAA,EAAwBS,KAAK,CAACM,EAAG,EAAC,CAAC,CAAA;AACrD,KAAA;AAAE,GAAA,eAEFjG,+BAAC,KAAK,EAAA;AAAC,IAAA,KAAK,EAAE2F,KAAAA;GAAS,CAAA,CACD,CACC,CACH,CAAA;AAE9B,CAAA;AAEA,SAAS2C,YAAY,CAAC7E,KAAU,EAAE;AAChC,EAAA,oBAAOzD,gBAAGyD,CAAAA,aAAAA,CAAAA,gBAAAA,CAAAA,QAAAA,EAAAA,IAAAA,EAAAA,KAAK,CAACjD,QAAQ,CAAI,CAAA;AAC9B,CAAA;;AAEA;AACA;AACA;;AAEA,MAAMgI,aAAa,SAASxI,gBAAK,CAACyI,SAAS,CAIxC;AACD5C,EAAAA,KAAK,GAAG;AACN2B,IAAAA,KAAK,EAAE,KAAK;AACZkB,IAAAA,IAAI,EAAEtF,SAAAA;GACP,CAAA;AACDuF,EAAAA,iBAAiB,CAACnB,KAAU,EAAEkB,IAAS,EAAE;IACvC,IAAI,CAACjF,KAAK,CAACmF,OAAO,CAACpB,KAAK,EAAEkB,IAAI,CAAC,CAAA;AAC/BG,IAAAA,OAAO,CAACrB,KAAK,CAACA,KAAK,CAAC,CAAA;IACpB,IAAI,CAACsB,QAAQ,CAAC;MACZtB,KAAK;AACLkB,MAAAA,IAAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;AACAK,EAAAA,MAAM,GAAG;AACP,IAAA,oBACE/I,gBAAC,CAAA,aAAA,CAAA,kBAAkB,EACb4D,oCAAA,CAAA,EAAA,EAAA,IAAI,CAACH,KAAK,EAAA;MACd,UAAU,EAAE,IAAI,CAACoC,KAAM;AACvB,MAAA,KAAK,EAAE,MAAM,IAAI,CAACiD,QAAQ,CAAC,EAAE,CAAA;KAC7B,CAAA,CAAA,CAAA;AAEN,GAAA;AACF,CAAA;AAEA,SAASE,kBAAkB,CAACvF,KAK3B,EAAE;AACD,EAAA,MAAM,CAACwF,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGlJ,gBAAK,CAACmJ,QAAQ,CAC5D1F,KAAK,CAAC2F,UAAU,CACjB,CAAA;EACD,MAAM/I,MAAM,GAAGC,gBAAgB,EAAE,CAAA;AACjC,EAAA,MAAM2H,cAAc,GAAGxE,KAAK,CAACwE,cAAc,IAAIhD,cAAc,CAAA;AAC7D,EAAA,MAAMoE,UAAU,GAAGrJ,gBAAK,CAACsJ,MAAM,CAAC,EAAE,CAAQ,CAAA;EAE1CtJ,gBAAK,CAAC+E,SAAS,CAAC,MAAM;AACpB,IAAA,IAAIkE,gBAAgB,EAAE;MACpB,IAAI5I,MAAM,CAACwF,KAAK,CAAC0D,eAAe,CAACC,GAAG,KAAKH,UAAU,CAACI,OAAO,EAAE;QAC3DP,mBAAmB,CAAC,EAAE,CAAQ,CAAA;AAChC,OAAA;AACF,KAAA;IAEAG,UAAU,CAACI,OAAO,GAAGpJ,MAAM,CAACwF,KAAK,CAAC0D,eAAe,CAACC,GAAG,CAAA;AACvD,GAAC,EAAE,CAACP,gBAAgB,EAAE5I,MAAM,CAACwF,KAAK,CAAC0D,eAAe,CAACC,GAAG,CAAC,CAAC,CAAA;EAExDxJ,gBAAK,CAAC+E,SAAS,CAAC,MAAM;AACpB,IAAA,IAAItB,KAAK,CAAC2F,UAAU,CAAC5B,KAAK,EAAE;AAC1B0B,MAAAA,mBAAmB,CAACzF,KAAK,CAAC2F,UAAU,CAAC,CAAA;AACvC,KAAA;AACA;GACD,EAAE,CAAC3F,KAAK,CAAC2F,UAAU,CAAC5B,KAAK,CAAC,CAAC,CAAA;EAE5B,IAAI/D,KAAK,CAAC2F,UAAU,CAAC5B,KAAK,IAAIyB,gBAAgB,CAACzB,KAAK,EAAE;AACpD,IAAA,oBAAOxH,gBAAK,CAAC2H,aAAa,CAACM,cAAc,EAAEgB,gBAAgB,CAAC,CAAA;AAC9D,GAAA;EAEA,OAAOxF,KAAK,CAACjD,QAAQ,CAAA;AACvB,CAAA;AAEO,SAASyE,cAAc,CAAC;AAAEuC,EAAAA,KAAAA;AAAsB,CAAC,EAAE;EACxD,oBACExH,gBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAE;AAAE0J,MAAAA,OAAO,EAAE,OAAO;AAAEC,MAAAA,QAAQ,EAAE,MAAA;AAAO,KAAA;GAC/C,eAAA3J,gBAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AAAQ,IAAA,KAAK,EAAE;AAAE4J,MAAAA,QAAQ,EAAE,QAAA;AAAS,KAAA;AAAE,GAAA,EAAA,uBAAA,CAA+B,eACrE5J,gBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAE;AAAE6J,MAAAA,MAAM,EAAE,OAAA;AAAQ,KAAA;AAAE,GAAA,CAAG,eACnC7J,gBACE,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,eAAAA,gBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EACGwH,KAAK,CAACsC,OAAO,gBACZ9J,gBAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,IAAA,KAAK,EAAE;AACL4J,MAAAA,QAAQ,EAAE,MAAM;AAChBG,MAAAA,MAAM,EAAE,eAAe;AACvBC,MAAAA,YAAY,EAAE,QAAQ;AACtBN,MAAAA,OAAO,EAAE,OAAO;AAChBO,MAAAA,KAAK,EAAE,KAAA;AACT,KAAA;GAECzC,EAAAA,KAAK,CAACsC,OAAO,CACT,GACL,IAAI,CACJ,CACF,CACF,CAAA;AAEV,CAAA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/build/esm/index.js
CHANGED
|
@@ -178,12 +178,17 @@ function RouterProvider({
|
|
|
178
178
|
router.update(rest);
|
|
179
179
|
const currentMatches = useStore(router.store, s => s.currentMatches);
|
|
180
180
|
React.useEffect(router.mount, [router]);
|
|
181
|
-
return /*#__PURE__*/React.createElement(
|
|
181
|
+
return /*#__PURE__*/React.createElement(routerContext.Provider, {
|
|
182
182
|
value: {
|
|
183
183
|
router: router
|
|
184
184
|
}
|
|
185
185
|
}, /*#__PURE__*/React.createElement(matchesContext.Provider, {
|
|
186
186
|
value: [undefined, ...currentMatches]
|
|
187
|
+
}, /*#__PURE__*/React.createElement(CatchBoundary, {
|
|
188
|
+
errorComponent: ErrorComponent,
|
|
189
|
+
onCatch: () => {
|
|
190
|
+
warning(false, `Error in router! Consider setting an 'errorComponent' in your RootRoute! 👍`);
|
|
191
|
+
}
|
|
187
192
|
}, /*#__PURE__*/React.createElement(Outlet, null))));
|
|
188
193
|
}
|
|
189
194
|
function useRouterContext() {
|
|
@@ -296,23 +301,24 @@ function SubOutlet({
|
|
|
296
301
|
}, []);
|
|
297
302
|
const PendingComponent = match.pendingComponent ?? router.options.defaultPendingComponent ?? defaultPending;
|
|
298
303
|
const errorComponent = match.errorComponent ?? router.options.defaultErrorComponent;
|
|
304
|
+
const ResolvedSuspenseBoundary = match.route.options.wrapInSuspense ?? true ? React.Suspense : SafeFragment;
|
|
305
|
+
const ResolvedCatchBoundary = errorComponent ? CatchBoundary : SafeFragment;
|
|
299
306
|
return /*#__PURE__*/React.createElement(matchesContext.Provider, {
|
|
300
307
|
value: matches
|
|
301
|
-
},
|
|
308
|
+
}, /*#__PURE__*/React.createElement(ResolvedSuspenseBoundary, {
|
|
302
309
|
fallback: /*#__PURE__*/React.createElement(PendingComponent, null)
|
|
303
|
-
}, /*#__PURE__*/React.createElement(
|
|
310
|
+
}, /*#__PURE__*/React.createElement(ResolvedCatchBoundary, {
|
|
304
311
|
key: match.route.id,
|
|
305
312
|
errorComponent: errorComponent,
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
}))) : /*#__PURE__*/React.createElement(CatchBoundary, {
|
|
310
|
-
key: match.route.id,
|
|
311
|
-
errorComponent: errorComponent,
|
|
312
|
-
match: match
|
|
313
|
+
onCatch: () => {
|
|
314
|
+
warning(false, `Error in route match: ${match.id}`);
|
|
315
|
+
}
|
|
313
316
|
}, /*#__PURE__*/React.createElement(Inner, {
|
|
314
317
|
match: match
|
|
315
|
-
})));
|
|
318
|
+
}))));
|
|
319
|
+
}
|
|
320
|
+
function SafeFragment(props) {
|
|
321
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, props.children);
|
|
316
322
|
}
|
|
317
323
|
|
|
318
324
|
// This is the messiest thing ever... I'm either seriously tired (likely) or
|
|
@@ -325,7 +331,7 @@ class CatchBoundary extends React.Component {
|
|
|
325
331
|
info: undefined
|
|
326
332
|
};
|
|
327
333
|
componentDidCatch(error, info) {
|
|
328
|
-
|
|
334
|
+
this.props.onCatch(error, info);
|
|
329
335
|
console.error(error);
|
|
330
336
|
this.setState({
|
|
331
337
|
error,
|
|
@@ -342,7 +348,7 @@ class CatchBoundary extends React.Component {
|
|
|
342
348
|
function CatchBoundaryInner(props) {
|
|
343
349
|
const [activeErrorState, setActiveErrorState] = React.useState(props.errorState);
|
|
344
350
|
const router = useRouterContext();
|
|
345
|
-
const errorComponent = props.errorComponent ??
|
|
351
|
+
const errorComponent = props.errorComponent ?? ErrorComponent;
|
|
346
352
|
const prevKeyRef = React.useRef('');
|
|
347
353
|
React.useEffect(() => {
|
|
348
354
|
if (activeErrorState) {
|
|
@@ -363,7 +369,7 @@ function CatchBoundaryInner(props) {
|
|
|
363
369
|
}
|
|
364
370
|
return props.children;
|
|
365
371
|
}
|
|
366
|
-
function
|
|
372
|
+
function ErrorComponent({
|
|
367
373
|
error
|
|
368
374
|
}) {
|
|
369
375
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -417,5 +423,5 @@ function DefaultErrorBoundary({
|
|
|
417
423
|
// return (children ?? null) as ReactNode
|
|
418
424
|
// }
|
|
419
425
|
|
|
420
|
-
export {
|
|
426
|
+
export { ErrorComponent, Link, MatchRoute, Navigate, Outlet, ReactRouter, RouterProvider, lazy, matchesContext, routerContext, useLinkProps, useMatch, useMatchRoute, useMatches, useNavigate, useParams, useRoute, useRouter, useRouterContext, useSearch };
|
|
421
427
|
//# sourceMappingURL=index.js.map
|
package/build/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport {\n Route,\n RegisteredRoutesInfo,\n RegisteredRouter,\n RouterStore,\n last,\n warning,\n RouterOptions,\n RouteMatch,\n MatchRouteOptions,\n AnyRoute,\n AnyRoutesInfo,\n DefaultRoutesInfo,\n functionalUpdate,\n RoutesInfo,\n ValidFromPath,\n LinkOptions,\n RouteByPath,\n ResolveRelativePath,\n NoInfer,\n ToOptions,\n invariant,\n Router,\n Expand,\n AnyContext,\n AnyRootRoute,\n RootRoute,\n AnySearchSchema,\n AnyPathParams,\n AnyRouteMatch,\n NavigateOptions,\n RouterConstructorOptions,\n} from '@tanstack/router'\nimport { useStore } from '@tanstack/react-store'\n\n//\n\nexport * from '@tanstack/router'\n\nexport { useStore }\n\n//\n\ntype ReactNode = any\n\nexport type SyncRouteComponent<TProps = {}> = (props: TProps) => ReactNode\n\nexport type RouteComponent<TProps = {}> = SyncRouteComponent<TProps> & {\n preload?: () => Promise<void>\n}\n\nexport function lazy(\n importer: () => Promise<{ default: SyncRouteComponent }>,\n): RouteComponent {\n const lazyComp = React.lazy(importer as any)\n let preloaded: Promise<SyncRouteComponent>\n\n const finalComp = lazyComp as unknown as RouteComponent\n\n finalComp.preload = async () => {\n if (!preloaded) {\n await importer()\n }\n }\n\n return finalComp\n}\n\nexport type LinkPropsOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n> = LinkOptions<RegisteredRoutesInfo, 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 MakeUseMatchRouteOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n> = ToOptions<RegisteredRoutesInfo, TFrom, TTo> & MatchRouteOptions\n\nexport type MakeMatchRouteOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n> = ToOptions<RegisteredRoutesInfo, TFrom, 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 | ReactNode\n | ((\n params: RouteByPath<\n RegisteredRoutesInfo,\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['__types']['allParams'],\n ) => ReactNode)\n }\n\nexport type MakeLinkPropsOptions<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '',\n> = LinkPropsOptions<TFrom, TTo> & React.AnchorHTMLAttributes<HTMLAnchorElement>\n\nexport type MakeLinkOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n> = LinkPropsOptions<TFrom, 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?: ReactNode | ((state: { isActive: boolean }) => ReactNode)\n }\n\ndeclare module '@tanstack/router' {\n interface FrameworkGenerics {\n Component: RouteComponent\n ErrorComponent: RouteComponent<{\n error: unknown\n info: { componentStack: string }\n }>\n }\n\n interface RouterOptions<TRouteTree> {\n // ssrFooter?: () => JSX.Element | Node\n }\n\n interface FrameworkRouteOptions {\n wrapInSuspense?: boolean\n }\n}\n\nexport type PromptProps = {\n message: string\n when?: boolean | any\n children?: ReactNode\n}\n\n//\n\nexport function useLinkProps<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '',\n>(\n options: MakeLinkPropsOptions<TFrom, TTo>,\n): React.AnchorHTMLAttributes<HTMLAnchorElement> {\n const router = useRouterContext()\n\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 replace,\n // element props\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n ...rest\n } = options\n\n const linkInfo = router.buildLink(options as any)\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 handleTouchStart,\n isActive,\n next,\n } = linkInfo\n\n const reactHandleClick = (e: Event) => {\n if (React.startTransition) {\n // This is a hack for react < 18\n React.startTransition(() => {\n handleClick(e)\n })\n } else {\n handleClick(e)\n }\n }\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n if (e.persist) e.persist()\n handlers.filter(Boolean).forEach((handler) => {\n if (e.defaultPrevented) return\n handler!(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> = isActive\n ? functionalUpdate(activeProps as any, {}) ?? {}\n : {}\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([onClick, reactHandleClick]),\n onFocus: composeHandlers([onFocus, handleFocus]),\n onMouseEnter: composeHandlers([onMouseEnter, handleEnter]),\n onMouseLeave: composeHandlers([onMouseLeave, handleLeave]),\n onTouchStart: composeHandlers([onTouchStart, handleTouchStart]),\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\nexport interface LinkFn<\n TDefaultFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TDefaultTo extends string = '',\n> {\n <\n TFrom extends RegisteredRoutesInfo['routePaths'] = TDefaultFrom,\n TTo extends string = TDefaultTo,\n >(\n props: MakeLinkOptions<TFrom, TTo> & React.RefAttributes<HTMLAnchorElement>,\n ): ReactNode\n}\n\nexport const Link: LinkFn = React.forwardRef((props: any, ref) => {\n const linkProps = useLinkProps(props)\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\nexport function Navigate<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n>(props: NavigateOptions<RegisteredRoutesInfo, TFrom, TTo>): null {\n const router = useRouterContext()\n\n React.useLayoutEffect(() => {\n router.navigate(props as any)\n }, [])\n\n return null\n}\n\ntype MatchesContextValue = AnyRouteMatch[]\n\nexport const matchesContext = React.createContext<MatchesContextValue>(null!)\nexport const routerContext = React.createContext<{ router: RegisteredRouter }>(\n null!,\n)\n\nexport type MatchesProviderProps = {\n value: MatchesContextValue\n children: ReactNode\n}\n\nexport class ReactRouter<\n TRouteConfig extends AnyRootRoute = RootRoute,\n TRoutesInfo extends AnyRoutesInfo = RoutesInfo<TRouteConfig>,\n> extends Router<TRouteConfig, TRoutesInfo> {\n constructor(opts: RouterConstructorOptions<TRouteConfig>) {\n super({\n ...opts,\n loadComponent: async (component) => {\n if (component.preload) {\n await component.preload()\n }\n\n return component as any\n },\n })\n }\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRootRoute = RootRoute,\n TRoutesInfo extends AnyRoutesInfo = DefaultRoutesInfo,\n> = RouterOptions<TRouteConfig> & {\n router: Router<TRouteConfig, TRoutesInfo>\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRootRoute = RootRoute,\n TRoutesInfo extends AnyRoutesInfo = DefaultRoutesInfo,\n>({ router, ...rest }: RouterProps<TRouteConfig, TRoutesInfo>) {\n router.update(rest)\n\n const currentMatches = useStore(router.store, (s) => s.currentMatches)\n\n React.useEffect(router.mount, [router])\n\n return (\n <>\n <routerContext.Provider value={{ router: router as any }}>\n <matchesContext.Provider value={[undefined!, ...currentMatches]}>\n <Outlet />\n </matchesContext.Provider>\n </routerContext.Provider>\n </>\n )\n}\n\nexport function useRouterContext(): RegisteredRouter {\n const value = React.useContext(routerContext)\n warning(!value, 'useRouter must be used inside a <Router> component!')\n\n useStore(value.router.store)\n\n return value.router\n}\n\nexport function useRouter<T = RouterStore>(\n track?: (state: Router['store']) => T,\n shallow?: boolean,\n): RegisteredRouter {\n const router = useRouterContext()\n useStore(router.store, track as any, shallow)\n return router\n}\n\nexport function useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\nexport function useMatch<\n TFrom extends keyof RegisteredRoutesInfo['routesById'],\n TStrict extends boolean = true,\n TRouteMatch = RouteMatch<\n RegisteredRoutesInfo,\n RegisteredRoutesInfo['routesById'][TFrom]\n >,\n>(opts?: {\n from: TFrom\n strict?: TStrict\n track?: (match: TRouteMatch) => any\n shallow?: boolean\n}): TStrict extends true ? TRouteMatch : TRouteMatch | undefined {\n const router = useRouterContext()\n const nearestMatch = useMatches()[0]!\n const match = opts?.from\n ? router.state.currentMatches.find((d) => d.route.id === opts?.from)\n : nearestMatch\n\n invariant(\n match,\n `Could not find ${\n opts?.from ? `an active match from \"${opts.from}\"` : 'a nearest match!'\n }`,\n )\n\n if (opts?.strict ?? true) {\n invariant(\n nearestMatch.route.id == match?.route.id,\n `useMatch(\"${\n match?.route.id as string\n }\") is being called in a component that is meant to render the '${\n nearestMatch.route.id\n }' route. Did you mean to 'useMatch(\"${\n match?.route.id as string\n }\", { strict: false })' or 'useRoute(\"${\n match?.route.id as string\n }\")' instead?`,\n )\n }\n\n useStore(\n match!.store as any,\n (d) => opts?.track?.(match as any) ?? match,\n opts?.shallow,\n )\n\n return match as any\n}\n\nexport function useRoute<\n TId extends keyof RegisteredRoutesInfo['routesById'] = '/',\n>(routeId: TId): RegisteredRoutesInfo['routesById'][TId] {\n const router = useRouterContext()\n const resolvedRoute = router.getRoute(routeId as any)\n\n invariant(\n resolvedRoute,\n `Could not find a route for route \"${\n routeId as string\n }\"! Did you forget to add it to your route?`,\n )\n\n return resolvedRoute as any\n}\n\nexport function useSearch<\n TFrom extends keyof RegisteredRoutesInfo['routesById'],\n TStrict extends boolean = true,\n TSearch = RegisteredRoutesInfo['routesById'][TFrom]['__types']['fullSearchSchema'],\n TSelected = TSearch,\n>(opts?: {\n from: TFrom\n strict?: TStrict\n track?: (search: TSearch) => TSelected\n}): TStrict extends true ? TSelected : TSelected | undefined {\n const match = useMatch(opts)\n useStore(\n (match as any).store,\n (d: any) => opts?.track?.(d.search) ?? d.search,\n true,\n )\n\n return (match as unknown as RouteMatch).state.search as any\n}\n\nexport function useParams<\n TFrom extends keyof RegisteredRoutesInfo['routesById'] = '/',\n TDefaultSelected = RegisteredRoutesInfo['allParams'] &\n RegisteredRoutesInfo['routesById'][TFrom]['__types']['allParams'],\n TSelected = TDefaultSelected,\n>(opts?: {\n from: TFrom\n track?: (search: TDefaultSelected) => TSelected\n}): TSelected {\n const router = useRouterContext()\n useStore(\n router.store,\n (d) => {\n const params = last(d.currentMatches)?.params as any\n return opts?.track?.(params) ?? params\n },\n true,\n )\n\n return last(router.state.currentMatches)?.params as any\n}\n\nexport function useNavigate<\n TDefaultFrom extends keyof RegisteredRoutesInfo['routesById'] = '/',\n>(defaultOpts?: { from?: TDefaultFrom }) {\n const router = useRouterContext()\n return React.useCallback(\n <\n TFrom extends keyof RegisteredRoutesInfo['routesById'] = TDefaultFrom,\n TTo extends string = '',\n >(\n opts?: MakeLinkOptions<TFrom, TTo>,\n ) => {\n return router.navigate({ ...defaultOpts, ...(opts as any) })\n },\n [],\n )\n}\n\nexport function useMatchRoute() {\n const router = useRouterContext()\n\n return React.useCallback(\n <\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '',\n >(\n opts: MakeUseMatchRouteOptions<TFrom, TTo>,\n ) => {\n const { pending, caseSensitive, ...rest } = opts\n\n return router.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n },\n [],\n )\n}\n\nexport function MatchRoute<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '',\n>(props: MakeMatchRouteOptions<TFrom, TTo>): any {\n const matchRoute = useMatchRoute()\n const params = matchRoute(props)\n\n if (!params) {\n return null\n }\n\n if (typeof props.children === 'function') {\n return (props.children as any)(params)\n }\n\n return params ? props.children : null\n}\n\nexport function Outlet() {\n const matches = useMatches().slice(1)\n const match = matches[0]\n\n if (!match) {\n return null\n }\n\n return <SubOutlet matches={matches} match={match} />\n}\n\nfunction SubOutlet({\n matches,\n match,\n}: {\n matches: RouteMatch[]\n match: RouteMatch\n}) {\n const router = useRouterContext()\n useStore(match!.store, (store) => [store.status, store.error], true)\n\n const defaultPending = React.useCallback(() => null, [])\n\n const Inner = React.useCallback((props: { match: RouteMatch }): any => {\n if (props.match.state.status === 'error') {\n throw props.match.state.error\n }\n\n if (props.match.state.status === 'success') {\n return React.createElement(\n (props.match.component as any) ??\n router.options.defaultComponent ??\n Outlet,\n )\n }\n\n if (props.match.state.status === 'pending') {\n throw props.match.__loadPromise\n }\n\n invariant(\n false,\n 'Idle routeMatch status encountered during rendering! You should never see this. File an issue!',\n )\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 <matchesContext.Provider value={matches}>\n {match.route.options.wrapInSuspense ?? true ? (\n <React.Suspense fallback={<PendingComponent />}>\n <CatchBoundary\n key={match.route.id}\n errorComponent={errorComponent}\n match={match as any}\n >\n <Inner match={match} />\n </CatchBoundary>\n </React.Suspense>\n ) : (\n <CatchBoundary\n key={match.route.id}\n errorComponent={errorComponent}\n match={match as any}\n >\n <Inner match={match} />\n </CatchBoundary>\n )}\n {/* Provide a suffix suspense boundary to make sure the router is\n ready to be dehydrated on the server */}\n {/* {router.options.ssrFooter && match.id === rootRouteId ? (\n <React.Suspense fallback={null}>\n {(() => {\n if (router.store.pending) {\n throw router.navigationPromise\n }\n\n return router.options.ssrFooter()\n })()}\n </React.Suspense>\n ) : null} */}\n </matchesContext.Provider>\n )\n}\n\n// This is the messiest thing ever... I'm either seriously tired (likely) or\n// there has to be a better way to reset error boundaries when the\n// router's location key changes.\n\nclass CatchBoundary extends React.Component<{\n children: any\n errorComponent: any\n match: RouteMatch\n}> {\n state = {\n error: false,\n info: undefined,\n }\n componentDidCatch(error: any, info: any) {\n console.error(`Error in route match: ${this.props.match.id}`)\n console.error(error)\n this.setState({\n error,\n info,\n })\n }\n render() {\n return (\n <CatchBoundaryInner\n {...this.props}\n errorState={this.state}\n reset={() => this.setState({})}\n />\n )\n }\n}\n\nfunction CatchBoundaryInner(props: {\n children: any\n errorComponent: any\n errorState: { error: unknown; info: any }\n reset: () => void\n}) {\n const [activeErrorState, setActiveErrorState] = React.useState(\n props.errorState,\n )\n const router = useRouterContext()\n const errorComponent = props.errorComponent ?? DefaultErrorBoundary\n const prevKeyRef = React.useRef('' as any)\n\n React.useEffect(() => {\n if (activeErrorState) {\n if (router.state.currentLocation.key !== prevKeyRef.current) {\n setActiveErrorState({} as any)\n }\n }\n\n prevKeyRef.current = router.state.currentLocation.key\n }, [activeErrorState, router.state.currentLocation.key])\n\n React.useEffect(() => {\n if (props.errorState.error) {\n setActiveErrorState(props.errorState)\n }\n // props.reset()\n }, [props.errorState.error])\n\n if (props.errorState.error && activeErrorState.error) {\n return React.createElement(errorComponent, activeErrorState)\n }\n\n return props.children\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\n// TODO: While we migrate away from the history package, these need to be disabled\n// export 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.getHistory().block((transition) => {\n// if (window.confirm(message)) {\n// unblock()\n// transition.retry()\n// } else {\n// router.setStore((s) => {\n// s.currentLocation.pathname = window.location.pathname\n// })\n// }\n// })\n\n// return unblock\n// }, [when, message])\n// }\n\n// export function Prompt({ message, when, children }: PromptProps) {\n// usePrompt(message, when ?? true)\n// return (children ?? null) as ReactNode\n// }\n"],"names":["lazy","importer","lazyComp","React","finalComp","preload","useLinkProps","options","router","useRouterContext","type","children","target","activeProps","className","inactiveProps","activeOptions","disabled","hash","search","params","to","preloadDelay","replace","style","onClick","onFocus","onMouseEnter","onMouseLeave","onTouchStart","rest","linkInfo","buildLink","href","handleClick","handleFocus","handleEnter","handleLeave","handleTouchStart","isActive","next","reactHandleClick","e","startTransition","composeHandlers","handlers","persist","filter","Boolean","forEach","handler","defaultPrevented","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","undefined","join","role","Link","forwardRef","props","ref","linkProps","Navigate","useLayoutEffect","navigate","matchesContext","createContext","routerContext","ReactRouter","Router","constructor","opts","loadComponent","component","RouterProvider","update","currentMatches","useStore","store","s","useEffect","mount","value","useContext","warning","useRouter","track","shallow","useMatches","useMatch","nearestMatch","match","from","state","find","d","route","id","invariant","strict","useRoute","routeId","resolvedRoute","getRoute","useSearch","useParams","last","useNavigate","defaultOpts","useCallback","useMatchRoute","pending","caseSensitive","matchRoute","MatchRoute","Outlet","matches","slice","SubOutlet","status","error","defaultPending","Inner","createElement","defaultComponent","__loadPromise","PendingComponent","pendingComponent","defaultPendingComponent","errorComponent","defaultErrorComponent","wrapInSuspense","CatchBoundary","Component","info","componentDidCatch","console","setState","render","CatchBoundaryInner","activeErrorState","setActiveErrorState","useState","errorState","DefaultErrorBoundary","prevKeyRef","useRef","currentLocation","key","current","padding","maxWidth","fontSize","height","message","border","borderRadius","color"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport {\n Route,\n RegisteredRoutesInfo,\n RegisteredRouter,\n RouterStore,\n last,\n warning,\n RouterOptions,\n RouteMatch,\n MatchRouteOptions,\n AnyRoutesInfo,\n DefaultRoutesInfo,\n functionalUpdate,\n RoutesInfo,\n ValidFromPath,\n LinkOptions,\n RouteByPath,\n ResolveRelativePath,\n NoInfer,\n ToOptions,\n invariant,\n Router,\n AnyRootRoute,\n RootRoute,\n AnyRouteMatch,\n NavigateOptions,\n RouterConstructorOptions,\n} from '@tanstack/router'\nimport { useStore } from '@tanstack/react-store'\n\n//\n\nexport * from '@tanstack/router'\n\nexport { useStore }\n\n//\n\ntype ReactNode = any\n\nexport type SyncRouteComponent<TProps = {}> = (props: TProps) => ReactNode\n\nexport type RouteComponent<TProps = {}> = SyncRouteComponent<TProps> & {\n preload?: () => Promise<void>\n}\n\nexport function lazy(\n importer: () => Promise<{ default: SyncRouteComponent }>,\n): RouteComponent {\n const lazyComp = React.lazy(importer as any)\n let preloaded: Promise<SyncRouteComponent>\n\n const finalComp = lazyComp as unknown as RouteComponent\n\n finalComp.preload = async () => {\n if (!preloaded) {\n await importer()\n }\n }\n\n return finalComp\n}\n\nexport type LinkPropsOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n> = LinkOptions<RegisteredRoutesInfo, 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 MakeUseMatchRouteOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n> = ToOptions<RegisteredRoutesInfo, TFrom, TTo> & MatchRouteOptions\n\nexport type MakeMatchRouteOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n> = ToOptions<RegisteredRoutesInfo, TFrom, 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 | ReactNode\n | ((\n params: RouteByPath<\n RegisteredRoutesInfo,\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['__types']['allParams'],\n ) => ReactNode)\n }\n\nexport type MakeLinkPropsOptions<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '',\n> = LinkPropsOptions<TFrom, TTo> & React.AnchorHTMLAttributes<HTMLAnchorElement>\n\nexport type MakeLinkOptions<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n> = LinkPropsOptions<TFrom, 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?: ReactNode | ((state: { isActive: boolean }) => ReactNode)\n }\n\ndeclare module '@tanstack/router' {\n interface FrameworkGenerics {\n Component: RouteComponent\n ErrorComponent: RouteComponent<{\n error: Error\n info: { componentStack: string }\n }>\n }\n\n interface RouterOptions<TRouteTree> {\n // ssrFooter?: () => JSX.Element | Node\n }\n\n interface FrameworkRouteOptions {\n wrapInSuspense?: boolean\n }\n}\n\nexport type PromptProps = {\n message: string\n when?: boolean | any\n children?: ReactNode\n}\n\n//\n\nexport function useLinkProps<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '',\n>(\n options: MakeLinkPropsOptions<TFrom, TTo>,\n): React.AnchorHTMLAttributes<HTMLAnchorElement> {\n const router = useRouterContext()\n\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 replace,\n // element props\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n ...rest\n } = options\n\n const linkInfo = router.buildLink(options as any)\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 handleTouchStart,\n isActive,\n next,\n } = linkInfo\n\n const reactHandleClick = (e: Event) => {\n if (React.startTransition) {\n // This is a hack for react < 18\n React.startTransition(() => {\n handleClick(e)\n })\n } else {\n handleClick(e)\n }\n }\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n if (e.persist) e.persist()\n handlers.filter(Boolean).forEach((handler) => {\n if (e.defaultPrevented) return\n handler!(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> = isActive\n ? functionalUpdate(activeProps as any, {}) ?? {}\n : {}\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([onClick, reactHandleClick]),\n onFocus: composeHandlers([onFocus, handleFocus]),\n onMouseEnter: composeHandlers([onMouseEnter, handleEnter]),\n onMouseLeave: composeHandlers([onMouseLeave, handleLeave]),\n onTouchStart: composeHandlers([onTouchStart, handleTouchStart]),\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\nexport interface LinkFn<\n TDefaultFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TDefaultTo extends string = '',\n> {\n <\n TFrom extends RegisteredRoutesInfo['routePaths'] = TDefaultFrom,\n TTo extends string = TDefaultTo,\n >(\n props: MakeLinkOptions<TFrom, TTo> & React.RefAttributes<HTMLAnchorElement>,\n ): ReactNode\n}\n\nexport const Link: LinkFn = React.forwardRef((props: any, ref) => {\n const linkProps = useLinkProps(props)\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\nexport function Navigate<\n TFrom extends RegisteredRoutesInfo['routePaths'] = '/',\n TTo extends string = '',\n>(props: NavigateOptions<RegisteredRoutesInfo, TFrom, TTo>): null {\n const router = useRouterContext()\n\n React.useLayoutEffect(() => {\n router.navigate(props as any)\n }, [])\n\n return null\n}\n\ntype MatchesContextValue = AnyRouteMatch[]\n\nexport const matchesContext = React.createContext<MatchesContextValue>(null!)\nexport const routerContext = React.createContext<{ router: RegisteredRouter }>(\n null!,\n)\n\nexport type MatchesProviderProps = {\n value: MatchesContextValue\n children: ReactNode\n}\n\nexport class ReactRouter<\n TRouteConfig extends AnyRootRoute = RootRoute,\n TRoutesInfo extends AnyRoutesInfo = RoutesInfo<TRouteConfig>,\n> extends Router<TRouteConfig, TRoutesInfo> {\n constructor(opts: RouterConstructorOptions<TRouteConfig>) {\n super({\n ...opts,\n loadComponent: async (component) => {\n if (component.preload) {\n await component.preload()\n }\n\n return component as any\n },\n })\n }\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRootRoute = RootRoute,\n TRoutesInfo extends AnyRoutesInfo = DefaultRoutesInfo,\n> = RouterOptions<TRouteConfig> & {\n router: Router<TRouteConfig, TRoutesInfo>\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRootRoute = RootRoute,\n TRoutesInfo extends AnyRoutesInfo = DefaultRoutesInfo,\n>({ router, ...rest }: RouterProps<TRouteConfig, TRoutesInfo>) {\n router.update(rest)\n\n const currentMatches = useStore(router.store, (s) => s.currentMatches)\n\n React.useEffect(router.mount, [router])\n\n return (\n <routerContext.Provider value={{ router: router as any }}>\n <matchesContext.Provider value={[undefined!, ...currentMatches]}>\n <CatchBoundary\n errorComponent={ErrorComponent}\n onCatch={() => {\n warning(\n false,\n `Error in router! Consider setting an 'errorComponent' in your RootRoute! 👍`,\n )\n }}\n >\n <Outlet />\n </CatchBoundary>\n </matchesContext.Provider>\n </routerContext.Provider>\n )\n}\n\nexport function useRouterContext(): RegisteredRouter {\n const value = React.useContext(routerContext)\n warning(!value, 'useRouter must be used inside a <Router> component!')\n\n useStore(value.router.store)\n\n return value.router\n}\n\nexport function useRouter<T = RouterStore>(\n track?: (state: Router['store']) => T,\n shallow?: boolean,\n): RegisteredRouter {\n const router = useRouterContext()\n useStore(router.store, track as any, shallow)\n return router\n}\n\nexport function useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\nexport function useMatch<\n TFrom extends keyof RegisteredRoutesInfo['routesById'],\n TStrict extends boolean = true,\n TRouteMatch = RouteMatch<\n RegisteredRoutesInfo,\n RegisteredRoutesInfo['routesById'][TFrom]\n >,\n>(opts?: {\n from: TFrom\n strict?: TStrict\n track?: (match: TRouteMatch) => any\n shallow?: boolean\n}): TStrict extends true ? TRouteMatch : TRouteMatch | undefined {\n const router = useRouterContext()\n const nearestMatch = useMatches()[0]!\n const match = opts?.from\n ? router.state.currentMatches.find((d) => d.route.id === opts?.from)\n : nearestMatch\n\n invariant(\n match,\n `Could not find ${\n opts?.from ? `an active match from \"${opts.from}\"` : 'a nearest match!'\n }`,\n )\n\n if (opts?.strict ?? true) {\n invariant(\n nearestMatch.route.id == match?.route.id,\n `useMatch(\"${\n match?.route.id as string\n }\") is being called in a component that is meant to render the '${\n nearestMatch.route.id\n }' route. Did you mean to 'useMatch(\"${\n match?.route.id as string\n }\", { strict: false })' or 'useRoute(\"${\n match?.route.id as string\n }\")' instead?`,\n )\n }\n\n useStore(\n match!.store as any,\n (d) => opts?.track?.(match as any) ?? match,\n opts?.shallow,\n )\n\n return match as any\n}\n\nexport function useRoute<\n TId extends keyof RegisteredRoutesInfo['routesById'] = '/',\n>(routeId: TId): RegisteredRoutesInfo['routesById'][TId] {\n const router = useRouterContext()\n const resolvedRoute = router.getRoute(routeId as any)\n\n invariant(\n resolvedRoute,\n `Could not find a route for route \"${\n routeId as string\n }\"! Did you forget to add it to your route?`,\n )\n\n return resolvedRoute as any\n}\n\nexport function useSearch<\n TFrom extends keyof RegisteredRoutesInfo['routesById'],\n TStrict extends boolean = true,\n TSearch = RegisteredRoutesInfo['routesById'][TFrom]['__types']['fullSearchSchema'],\n TSelected = TSearch,\n>(opts?: {\n from: TFrom\n strict?: TStrict\n track?: (search: TSearch) => TSelected\n}): TStrict extends true ? TSelected : TSelected | undefined {\n const match = useMatch(opts)\n useStore(\n (match as any).store,\n (d: any) => opts?.track?.(d.search) ?? d.search,\n true,\n )\n\n return (match as unknown as RouteMatch).state.search as any\n}\n\nexport function useParams<\n TFrom extends keyof RegisteredRoutesInfo['routesById'] = '/',\n TDefaultSelected = RegisteredRoutesInfo['allParams'] &\n RegisteredRoutesInfo['routesById'][TFrom]['__types']['allParams'],\n TSelected = TDefaultSelected,\n>(opts?: {\n from: TFrom\n track?: (search: TDefaultSelected) => TSelected\n}): TSelected {\n const router = useRouterContext()\n useStore(\n router.store,\n (d) => {\n const params = last(d.currentMatches)?.params as any\n return opts?.track?.(params) ?? params\n },\n true,\n )\n\n return last(router.state.currentMatches)?.params as any\n}\n\nexport function useNavigate<\n TDefaultFrom extends keyof RegisteredRoutesInfo['routesById'] = '/',\n>(defaultOpts?: { from?: TDefaultFrom }) {\n const router = useRouterContext()\n return React.useCallback(\n <\n TFrom extends keyof RegisteredRoutesInfo['routesById'] = TDefaultFrom,\n TTo extends string = '',\n >(\n opts?: MakeLinkOptions<TFrom, TTo>,\n ) => {\n return router.navigate({ ...defaultOpts, ...(opts as any) })\n },\n [],\n )\n}\n\nexport function useMatchRoute() {\n const router = useRouterContext()\n\n return React.useCallback(\n <\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '',\n >(\n opts: MakeUseMatchRouteOptions<TFrom, TTo>,\n ) => {\n const { pending, caseSensitive, ...rest } = opts\n\n return router.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n },\n [],\n )\n}\n\nexport function MatchRoute<\n TFrom extends ValidFromPath<RegisteredRoutesInfo> = '/',\n TTo extends string = '',\n>(props: MakeMatchRouteOptions<TFrom, TTo>): any {\n const matchRoute = useMatchRoute()\n const params = matchRoute(props)\n\n if (!params) {\n return null\n }\n\n if (typeof props.children === 'function') {\n return (props.children as any)(params)\n }\n\n return params ? props.children : null\n}\n\nexport function Outlet() {\n const matches = useMatches().slice(1)\n const match = matches[0]\n\n if (!match) {\n return null\n }\n\n return <SubOutlet matches={matches} match={match} />\n}\n\nfunction SubOutlet({\n matches,\n match,\n}: {\n matches: RouteMatch[]\n match: RouteMatch\n}) {\n const router = useRouterContext()\n useStore(match!.store, (store) => [store.status, store.error], true)\n\n const defaultPending = React.useCallback(() => null, [])\n\n const Inner = React.useCallback((props: { match: RouteMatch }): any => {\n if (props.match.state.status === 'error') {\n throw props.match.state.error\n }\n\n if (props.match.state.status === 'success') {\n return React.createElement(\n (props.match.component as any) ??\n router.options.defaultComponent ??\n Outlet,\n )\n }\n\n if (props.match.state.status === 'pending') {\n throw props.match.__loadPromise\n }\n\n invariant(\n false,\n 'Idle routeMatch status encountered during rendering! You should never see this. File an issue!',\n )\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 const ResolvedSuspenseBoundary =\n match.route.options.wrapInSuspense ?? true ? React.Suspense : SafeFragment\n const ResolvedCatchBoundary = errorComponent ? CatchBoundary : SafeFragment\n\n return (\n <matchesContext.Provider value={matches}>\n <ResolvedSuspenseBoundary fallback={<PendingComponent />}>\n <ResolvedCatchBoundary\n key={match.route.id}\n errorComponent={errorComponent}\n onCatch={() => {\n warning(false, `Error in route match: ${match.id}`)\n }}\n >\n <Inner match={match} />\n </ResolvedCatchBoundary>\n </ResolvedSuspenseBoundary>\n </matchesContext.Provider>\n )\n}\n\nfunction SafeFragment(props: any) {\n return <>{props.children}</>\n}\n\n// This is the messiest thing ever... I'm either seriously tired (likely) or\n// there has to be a better way to reset error boundaries when the\n// router's location key changes.\n\nclass CatchBoundary extends React.Component<{\n children: any\n errorComponent: any\n onCatch: (error: any, info: any) => void\n}> {\n state = {\n error: false,\n info: undefined,\n }\n componentDidCatch(error: any, info: any) {\n this.props.onCatch(error, info)\n console.error(error)\n this.setState({\n error,\n info,\n })\n }\n render() {\n return (\n <CatchBoundaryInner\n {...this.props}\n errorState={this.state}\n reset={() => this.setState({})}\n />\n )\n }\n}\n\nfunction CatchBoundaryInner(props: {\n children: any\n errorComponent: any\n errorState: { error: unknown; info: any }\n reset: () => void\n}) {\n const [activeErrorState, setActiveErrorState] = React.useState(\n props.errorState,\n )\n const router = useRouterContext()\n const errorComponent = props.errorComponent ?? ErrorComponent\n const prevKeyRef = React.useRef('' as any)\n\n React.useEffect(() => {\n if (activeErrorState) {\n if (router.state.currentLocation.key !== prevKeyRef.current) {\n setActiveErrorState({} as any)\n }\n }\n\n prevKeyRef.current = router.state.currentLocation.key\n }, [activeErrorState, router.state.currentLocation.key])\n\n React.useEffect(() => {\n if (props.errorState.error) {\n setActiveErrorState(props.errorState)\n }\n // props.reset()\n }, [props.errorState.error])\n\n if (props.errorState.error && activeErrorState.error) {\n return React.createElement(errorComponent, activeErrorState)\n }\n\n return props.children\n}\n\nexport function ErrorComponent({ 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\n// TODO: While we migrate away from the history package, these need to be disabled\n// export 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.getHistory().block((transition) => {\n// if (window.confirm(message)) {\n// unblock()\n// transition.retry()\n// } else {\n// router.setStore((s) => {\n// s.currentLocation.pathname = window.location.pathname\n// })\n// }\n// })\n\n// return unblock\n// }, [when, message])\n// }\n\n// export function Prompt({ message, when, children }: PromptProps) {\n// usePrompt(message, when ?? true)\n// return (children ?? null) as ReactNode\n// }\n"],"names":["lazy","importer","lazyComp","React","finalComp","preload","useLinkProps","options","router","useRouterContext","type","children","target","activeProps","className","inactiveProps","activeOptions","disabled","hash","search","params","to","preloadDelay","replace","style","onClick","onFocus","onMouseEnter","onMouseLeave","onTouchStart","rest","linkInfo","buildLink","href","handleClick","handleFocus","handleEnter","handleLeave","handleTouchStart","isActive","next","reactHandleClick","e","startTransition","composeHandlers","handlers","persist","filter","Boolean","forEach","handler","defaultPrevented","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","undefined","join","role","Link","forwardRef","props","ref","linkProps","Navigate","useLayoutEffect","navigate","matchesContext","createContext","routerContext","ReactRouter","Router","constructor","opts","loadComponent","component","RouterProvider","update","currentMatches","useStore","store","s","useEffect","mount","ErrorComponent","warning","value","useContext","useRouter","track","shallow","useMatches","useMatch","nearestMatch","match","from","state","find","d","route","id","invariant","strict","useRoute","routeId","resolvedRoute","getRoute","useSearch","useParams","last","useNavigate","defaultOpts","useCallback","useMatchRoute","pending","caseSensitive","matchRoute","MatchRoute","Outlet","matches","slice","SubOutlet","status","error","defaultPending","Inner","createElement","defaultComponent","__loadPromise","PendingComponent","pendingComponent","defaultPendingComponent","errorComponent","defaultErrorComponent","ResolvedSuspenseBoundary","wrapInSuspense","Suspense","SafeFragment","ResolvedCatchBoundary","CatchBoundary","Component","info","componentDidCatch","onCatch","console","setState","render","CatchBoundaryInner","activeErrorState","setActiveErrorState","useState","errorState","prevKeyRef","useRef","currentLocation","key","current","padding","maxWidth","fontSize","height","message","border","borderRadius","color"],"mappings":"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"}
|
package/build/stats-html.html
CHANGED
|
@@ -4024,7 +4024,7 @@ var drawChart = (function (exports) {
|
|
|
4024
4024
|
</script>
|
|
4025
4025
|
<script>
|
|
4026
4026
|
/*<!--*/
|
|
4027
|
-
const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.production.js","children":[{"uid":"
|
|
4027
|
+
const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.production.js","children":[{"uid":"d36d-93","name":"\u0000rollupPluginBabelHelpers.js"},{"name":"node_modules/.pnpm","children":[{"name":"tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","uid":"d36d-95"},{"name":"tiny-warning@1.0.3/node_modules/tiny-warning/dist/tiny-warning.esm.js","uid":"d36d-97"}]},{"name":"packages","children":[{"name":"store/build/esm/index.js","uid":"d36d-99"},{"name":"router/build/esm/index.js","uid":"d36d-101"},{"name":"react-store/build/esm/index.js","uid":"d36d-103"},{"name":"react-router/src/index.tsx","uid":"d36d-105"}]}]}],"isRoot":true},"nodeParts":{"d36d-93":{"renderedLength":429,"gzipLength":238,"brotliLength":0,"mainUid":"d36d-92"},"d36d-95":{"renderedLength":181,"gzipLength":129,"brotliLength":0,"mainUid":"d36d-94"},"d36d-97":{"renderedLength":44,"gzipLength":62,"brotliLength":0,"mainUid":"d36d-96"},"d36d-99":{"renderedLength":1288,"gzipLength":497,"brotliLength":0,"mainUid":"d36d-98"},"d36d-101":{"renderedLength":46138,"gzipLength":10996,"brotliLength":0,"mainUid":"d36d-100"},"d36d-103":{"renderedLength":1571,"gzipLength":594,"brotliLength":0,"mainUid":"d36d-102"},"d36d-105":{"renderedLength":12488,"gzipLength":3230,"brotliLength":0,"mainUid":"d36d-104"}},"nodeMetas":{"d36d-92":{"id":"\u0000rollupPluginBabelHelpers.js","moduleParts":{"index.production.js":"d36d-93"},"imported":[],"importedBy":[{"uid":"d36d-104"}]},"d36d-94":{"id":"/node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","moduleParts":{"index.production.js":"d36d-95"},"imported":[],"importedBy":[{"uid":"d36d-100"}]},"d36d-96":{"id":"/node_modules/.pnpm/tiny-warning@1.0.3/node_modules/tiny-warning/dist/tiny-warning.esm.js","moduleParts":{"index.production.js":"d36d-97"},"imported":[],"importedBy":[{"uid":"d36d-100"}]},"d36d-98":{"id":"/packages/store/build/esm/index.js","moduleParts":{"index.production.js":"d36d-99"},"imported":[],"importedBy":[{"uid":"d36d-100"}]},"d36d-100":{"id":"/packages/router/build/esm/index.js","moduleParts":{"index.production.js":"d36d-101"},"imported":[{"uid":"d36d-94"},{"uid":"d36d-96"},{"uid":"d36d-98"}],"importedBy":[{"uid":"d36d-104"}]},"d36d-102":{"id":"/packages/react-store/build/esm/index.js","moduleParts":{"index.production.js":"d36d-103"},"imported":[{"uid":"d36d-107"}],"importedBy":[{"uid":"d36d-104"}]},"d36d-104":{"id":"/packages/react-router/src/index.tsx","moduleParts":{"index.production.js":"d36d-105"},"imported":[{"uid":"d36d-92"},{"uid":"d36d-106"},{"uid":"d36d-100"},{"uid":"d36d-102"}],"importedBy":[],"isEntry":true},"d36d-106":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"d36d-104"}],"isExternal":true},"d36d-107":{"id":"use-sync-external-store/shim/with-selector","moduleParts":{},"imported":[],"importedBy":[{"uid":"d36d-102"}],"isExternal":true}},"env":{"rollup":"2.79.1"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
|
|
4028
4028
|
|
|
4029
4029
|
const run = () => {
|
|
4030
4030
|
const width = window.innerWidth;
|