UNPKG

107 kBSource Map (JSON)View Raw
1{"version":3,"file":"react-router.development.js","sources":["../../lib/context.ts","../../lib/hooks.tsx","../../lib/components.tsx","../../index.ts"],"sourcesContent":["import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n LazyRouteFunction,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction<IndexRouteObject>;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction<NonIndexRouteObject>;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch<ParamKey, RouteObjectType> {}\n\nexport interface DataRouteMatch extends RouteMatch<string, DataRouteObject> {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext<DataRouterContextObject | null>(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext<TrackedPromise | null>(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level <Router> API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext<NavigationContextObject>(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext<LocationContextObject>(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext<RouteContextObject>({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext<any>(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a <Router> component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a <Router>.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a <Router> component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * <NavLink>.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(pattern: PathPattern<Path> | Path): PathMatch<ParamKey> | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a <Router> component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath<ParamKey, Path>(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters<typeof React.useLayoutEffect>[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by <Link>s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a <Router> component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext<unknown>(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext<Context = unknown>(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by <Outlet> to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n <OutletContext.Provider value={context}>{outlet}</OutletContext.Provider>\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record<string, string | undefined> = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params<ParamsOrKey> : Partial<ParamsOrKey>\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an <Outlet> to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial<Location> | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial<Location> | string,\n dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a <Router> component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different <Routes> under a <Route>\n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // <Routes>\n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // <Route path=\"blog\" element={<Blog />} />\n // <Route path=\"blog/feed\" element={<BlogFeed />} />\n // </Routes>\n //\n // function Blog() {\n // return (\n // <Routes>\n // <Route path=\"post/:id\" element={<Post />} />\n // </Routes>\n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant <Routes> (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under <Route path=\"${parentPath}\">) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent <Route path=\"${parentPath}\"> to <Route ` +\n `path=\"${parentPath === \"/\" ? \"*\" : `${parentPath}/*`}\">.`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`<Routes location>\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an <Outlet /> with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n <LocationContext.Provider\n value={{\n location: {\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\",\n ...location,\n },\n navigationType: NavigationType.Pop,\n }}\n >\n {renderedMatches}\n </LocationContext.Provider>\n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n <p>💿 Hey developer 👋</p>\n <p>\n You can provide a way better UX than this when your app throws errors\n by providing your own <code style={codeStyles}>ErrorBoundary</code> or{\" \"}\n <code style={codeStyles}>errorElement</code> prop on your route.\n </p>\n </>\n );\n }\n\n return (\n <>\n <h2>Unexpected Application Error!</h2>\n <h3 style={{ fontStyle: \"italic\" }}>{message}</h3>\n {stack ? <pre style={preStyles}>{stack}</pre> : null}\n {devInfo}\n </>\n );\n}\n\nconst defaultErrorElement = <DefaultErrorComponent />;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n <RouteContext.Provider value={this.props.routeContext}>\n <RouteErrorContext.Provider\n value={this.state.error}\n children={this.props.component}\n />\n </RouteContext.Provider>\n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch<string, RouteObject>;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n <RouteContext.Provider value={routeContext}>\n {children}\n </RouteContext.Provider>\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement: React.ReactNode | null = null;\n if (dataRouterState) {\n errorElement = match.route.errorElement || defaultErrorElement;\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `<Route Component={...}>` in `<Routes>` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = <match.route.Component />;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n <RenderedRoute\n match={match}\n routeContext={{\n outlet,\n matches,\n isDataRoute: dataRouterState != null,\n }}\n children={children}\n />\n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n <RenderErrorBoundary\n location={dataRouterState.location}\n revalidation={dataRouterState.revalidation}\n component={errorElement}\n error={error}\n children={getChildren()}\n routeContext={{ outlet: null, matches, isDataRoute: true }}\n />\n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor <Await /> value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor <Await /> value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey] = React.useState(() => String(++blockerId));\n\n let blockerFunction = React.useCallback<BlockerFunction>(\n (args) => {\n return typeof shouldBlock === \"function\"\n ? !!shouldBlock(args)\n : !!shouldBlock;\n },\n [shouldBlock]\n );\n\n let blocker = router.getBlocker(blockerKey, blockerFunction);\n\n // Cleanup on unmount\n React.useEffect(\n () => () => router.deleteBlocker(blockerKey),\n [router, blockerKey]\n );\n\n // Prefer the blocker from state since DataRouterContext is memoized so this\n // ensures we update on blocker state updates\n return state.blockers.get(blockerKey) || blocker;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record<string, boolean> = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n To,\n LazyRouteFunction,\n RelativeRoutingType,\n RouterState,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n RouteContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n useRoutesImpl,\n useLocation,\n} from \"./hooks\";\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n}: RouterProviderProps): React.ReactElement {\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n let [state, setStateImpl] = React.useState(router.state);\n let setState = React.useCallback(\n (newState: RouterState) => {\n \"startTransition\" in React\n ? React.startTransition(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl]\n );\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return (\n <>\n <DataRouterContext.Provider value={dataRouterContext}>\n <DataRouterStateContext.Provider value={state}>\n <Router\n basename={basename}\n location={state.location}\n navigationType={state.historyAction}\n navigator={navigator}\n >\n {state.initialized ? (\n <DataRoutes routes={router.routes} state={state} />\n ) : (\n fallbackElement\n )}\n </Router>\n </DataRouterStateContext.Provider>\n </DataRouterContext.Provider>\n {null}\n </>\n );\n}\n\nfunction DataRoutes({\n routes,\n state,\n}: {\n routes: DataRouteObject[];\n state: RouterState;\n}): React.ReactElement | null {\n return useRoutesImpl(routes, undefined, state);\n}\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A <Router> that stores all entries in memory.\n *\n * @see https://reactrouter.com/router-components/memory-router\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef<MemoryHistory>();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex,\n v5Compat: true,\n });\n }\n\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n \"startTransition\" in React\n ? React.startTransition(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n relative?: RelativeRoutingType;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/components/navigate\n */\nexport function Navigate({\n to,\n replace,\n state,\n relative,\n}: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n `<Navigate> may be used only in the context of a <Router> component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n `<Navigate> must not be used on the initial render in a <StaticRouter>. ` +\n `This is a no-op, but you should modify your code so the <Navigate> is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let navigate = useNavigate();\n\n // Resolve the path outside of the effect so that when effects run twice in\n // StrictMode they navigate to the same place\n let path = resolveTo(\n to,\n getPathContributingMatches(matches).map((match) => match.pathnameBase),\n locationPathname,\n relative === \"path\"\n );\n let jsonPath = JSON.stringify(path);\n\n React.useEffect(\n () => navigate(JSON.parse(jsonPath), { replace, state, relative }),\n [navigate, jsonPath, relative, replace, state]\n );\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/components/outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface PathRouteProps {\n caseSensitive?: NonIndexRouteObject[\"caseSensitive\"];\n path?: NonIndexRouteObject[\"path\"];\n id?: NonIndexRouteObject[\"id\"];\n lazy?: LazyRouteFunction<NonIndexRouteObject>;\n loader?: NonIndexRouteObject[\"loader\"];\n action?: NonIndexRouteObject[\"action\"];\n hasErrorBoundary?: NonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: NonIndexRouteObject[\"shouldRevalidate\"];\n handle?: NonIndexRouteObject[\"handle\"];\n index?: false;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n}\n\nexport interface LayoutRouteProps extends PathRouteProps {}\n\nexport interface IndexRouteProps {\n caseSensitive?: IndexRouteObject[\"caseSensitive\"];\n path?: IndexRouteObject[\"path\"];\n id?: IndexRouteObject[\"id\"];\n lazy?: LazyRouteFunction<IndexRouteObject>;\n loader?: IndexRouteObject[\"loader\"];\n action?: IndexRouteObject[\"action\"];\n hasErrorBoundary?: IndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: IndexRouteObject[\"shouldRevalidate\"];\n handle?: IndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n}\n\nexport type RouteProps = PathRouteProps | LayoutRouteProps | IndexRouteProps;\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/components/route\n */\nexport function Route(_props: RouteProps): React.ReactElement | null {\n invariant(\n false,\n `A <Route> is only ever to be used as the child of <Routes> element, ` +\n `never rendered directly. Please wrap your <Route> in a <Routes>.`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial<Location> | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a <Router> directly. Instead, you'll render a\n * router that is more specific to your environment such as a <BrowserRouter>\n * in web browsers or a <StaticRouter> for server rendering.\n *\n * @see https://reactrouter.com/router-components/router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a <Router> inside another <Router>.` +\n ` You should never have more than one in your app.`\n );\n\n // Preserve trailing slashes on basename, so we can let the user control\n // the enforcement of trailing slashes throughout the app\n let basename = basenameProp.replace(/^\\/*/, \"/\");\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let locationContext = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n location: {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n },\n navigationType,\n };\n }, [basename, pathname, search, hash, state, key, navigationType]);\n\n warning(\n locationContext != null,\n `<Router basename=\"${basename}\"> is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the <Router> won't render anything.`\n );\n\n if (locationContext == null) {\n return null;\n }\n\n return (\n <NavigationContext.Provider value={navigationContext}>\n <LocationContext.Provider children={children} value={locationContext} />\n </NavigationContext.Provider>\n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial<Location> | string;\n}\n\n/**\n * A container for a nested tree of <Route> elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/components/routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\nexport interface AwaitResolveRenderFunction {\n (data: Awaited<any>): React.ReactNode;\n}\n\nexport interface AwaitProps {\n children: React.ReactNode | AwaitResolveRenderFunction;\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}\n\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nexport function Await({ children, errorElement, resolve }: AwaitProps) {\n return (\n <AwaitErrorBoundary resolve={resolve} errorElement={errorElement}>\n <ResolveAwait>{children}</ResolveAwait>\n </AwaitErrorBoundary>\n );\n}\n\ntype AwaitErrorBoundaryProps = React.PropsWithChildren<{\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}>;\n\ntype AwaitErrorBoundaryState = {\n error: any;\n};\n\nenum AwaitRenderStatus {\n pending,\n success,\n error,\n}\n\nconst neverSettledPromise = new Promise(() => {});\n\nclass AwaitErrorBoundary extends React.Component<\n AwaitErrorBoundaryProps,\n AwaitErrorBoundaryState\n> {\n constructor(props: AwaitErrorBoundaryProps) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"<Await> caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n let { children, errorElement, resolve } = this.props;\n\n let promise: TrackedPromise | null = null;\n let status: AwaitRenderStatus = AwaitRenderStatus.pending;\n\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - provide as a resolved promise\n status = AwaitRenderStatus.success;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_data\", { get: () => resolve });\n } else if (this.state.error) {\n // Caught a render error, provide it as a rejected promise\n status = AwaitRenderStatus.error;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_error\", { get: () => renderError });\n } else if ((resolve as TrackedPromise)._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status =\n promise._error !== undefined\n ? AwaitRenderStatus.error\n : promise._data !== undefined\n ? AwaitRenderStatus.success\n : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", { get: () => true });\n promise = resolve.then(\n (data: any) =>\n Object.defineProperty(resolve, \"_data\", { get: () => data }),\n (error: any) =>\n Object.defineProperty(resolve, \"_error\", { get: () => error })\n );\n }\n\n if (\n status === AwaitRenderStatus.error &&\n promise._error instanceof AbortedDeferredError\n ) {\n // Freeze the UI by throwing a never resolved promise\n throw neverSettledPromise;\n }\n\n if (status === AwaitRenderStatus.error && !errorElement) {\n // No errorElement, throw to the nearest route-level error boundary\n throw promise._error;\n }\n\n if (status === AwaitRenderStatus.error) {\n // Render via our errorElement\n return <AwaitContext.Provider value={promise} children={errorElement} />;\n }\n\n if (status === AwaitRenderStatus.success) {\n // Render children with resolved value\n return <AwaitContext.Provider value={promise} children={children} />;\n }\n\n // Throw to the suspense boundary\n throw promise;\n }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on <Await>\n */\nfunction ResolveAwait({\n children,\n}: {\n children: React.ReactNode | AwaitResolveRenderFunction;\n}) {\n let data = useAsyncValue();\n let toRender = typeof children === \"function\" ? children(data) : children;\n return <>{toRender}</>;\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/utils/create-routes-from-children\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode,\n parentPath: number[] = []\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element, index) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n let treePath = [...parentPath, index];\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children, treePath)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`\n );\n\n invariant(\n !element.props.index || !element.props.children,\n \"An index route cannot have child routes.\"\n );\n\n let route: RouteObject = {\n id: element.props.id || treePath.join(\"-\"),\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n Component: element.props.Component,\n index: element.props.index,\n path: element.props.path,\n loader: element.props.loader,\n action: element.props.action,\n errorElement: element.props.errorElement,\n ErrorBoundary: element.props.ErrorBoundary,\n hasErrorBoundary:\n element.props.ErrorBoundary != null ||\n element.props.errorElement != null,\n shouldRevalidate: element.props.shouldRevalidate,\n handle: element.props.handle,\n lazy: element.props.lazy,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(\n element.props.children,\n treePath\n );\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","import * as React from \"react\";\nimport type {\n ActionFunction,\n ActionFunctionArgs,\n Blocker,\n BlockerFunction,\n Fetcher,\n HydrationState,\n JsonFunction,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n Navigation,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n PathPattern,\n RedirectFunction,\n RelativeRoutingType,\n Router as RemixRouter,\n ShouldRevalidateFunction,\n To,\n InitialEntry,\n LazyRouteFunction,\n FutureConfig,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n createPath,\n createRouter,\n defer,\n generatePath,\n isRouteErrorResponse,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n resolvePath,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n AwaitProps,\n MemoryRouterProps,\n NavigateProps,\n OutletProps,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n RoutesProps,\n RouterProviderProps,\n} from \"./lib/components\";\nimport {\n createRoutesFromChildren,\n renderMatches,\n Await,\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n RouterProvider,\n Routes,\n} from \"./lib/components\";\nimport type {\n DataRouteMatch,\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NavigateOptions,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./lib/context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./lib/context\";\nimport type { NavigateFunction } from \"./lib/hooks\";\nimport {\n useBlocker,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigationType,\n useNavigate,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRoutes,\n useActionData,\n useAsyncError,\n useAsyncValue,\n useRouteId,\n useLoaderData,\n useMatches,\n useNavigation,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutesImpl,\n} from \"./lib/hooks\";\n\n// Exported for backwards compatibility, but not being used internally anymore\ntype Hash = string;\ntype Pathname = string;\ntype Search = string;\n\n// Expose react-router public API\nexport type {\n ActionFunction,\n ActionFunctionArgs,\n AwaitProps,\n Blocker as unstable_Blocker,\n BlockerFunction as unstable_BlockerFunction,\n DataRouteMatch,\n DataRouteObject,\n Fetcher,\n Hash,\n IndexRouteObject,\n IndexRouteProps,\n JsonFunction,\n LazyRouteFunction,\n LayoutRouteProps,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigation,\n Navigator,\n NonIndexRouteObject,\n OutletProps,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n Pathname,\n PathPattern,\n PathRouteProps,\n RedirectFunction,\n RelativeRoutingType,\n RouteMatch,\n RouteObject,\n RouteProps,\n RouterProps,\n RouterProviderProps,\n RoutesProps,\n Search,\n ShouldRevalidateFunction,\n To,\n};\nexport {\n AbortedDeferredError,\n Await,\n MemoryRouter,\n Navigate,\n NavigationType,\n Outlet,\n Route,\n Router,\n RouterProvider,\n Routes,\n createPath,\n createRoutesFromChildren,\n createRoutesFromChildren as createRoutesFromElements,\n defer,\n isRouteErrorResponse,\n generatePath,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n renderMatches,\n resolvePath,\n useActionData,\n useAsyncError,\n useAsyncValue,\n useBlocker as unstable_useBlocker,\n useHref,\n useInRouterContext,\n useLoaderData,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useNavigationType,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutes,\n};\n\nfunction mapRouteProperties(route: RouteObject) {\n let updates: Partial<RouteObject> & { hasErrorBoundary: boolean } = {\n // Note: this check also occurs in createRoutesFromChildren so update\n // there if you change this -- please and thank you!\n hasErrorBoundary: route.ErrorBoundary != null || route.errorElement != null,\n };\n\n if (route.Component) {\n if (__DEV__) {\n if (route.element) {\n warning(\n false,\n \"You should not include both `Component` and `element` on your route - \" +\n \"`Component` will be used.\"\n );\n }\n }\n Object.assign(updates, {\n element: React.createElement(route.Component),\n Component: undefined,\n });\n }\n\n if (route.ErrorBoundary) {\n if (__DEV__) {\n if (route.errorElement) {\n warning(\n false,\n \"You should not include both `ErrorBoundary` and `errorElement` on your route - \" +\n \"`ErrorBoundary` will be used.\"\n );\n }\n }\n Object.assign(updates, {\n errorElement: React.createElement(route.ErrorBoundary),\n ErrorBoundary: undefined,\n });\n }\n\n return updates;\n}\n\nexport function createMemoryRouter(\n routes: RouteObject[],\n opts?: {\n basename?: string;\n future?: Partial<Omit<FutureConfig, \"v7_prependBasename\">>;\n hydrationData?: HydrationState;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n }\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n future: {\n ...opts?.future,\n v7_prependBasename: true,\n },\n history: createMemoryHistory({\n initialEntries: opts?.initialEntries,\n initialIndex: opts?.initialIndex,\n }),\n hydrationData: opts?.hydrationData,\n routes,\n mapRouteProperties,\n }).initialize();\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n NavigationContext as UNSAFE_NavigationContext,\n LocationContext as UNSAFE_LocationContext,\n RouteContext as UNSAFE_RouteContext,\n DataRouterContext as UNSAFE_DataRouterContext,\n DataRouterStateContext as UNSAFE_DataRouterStateContext,\n mapRouteProperties as UNSAFE_mapRouteProperties,\n useRouteId as UNSAFE_useRouteId,\n useRoutesImpl as UNSAFE_useRoutesImpl,\n};\n"],"names":["DataRouterContext","React","createContext","displayName","DataRouterStateContext","AwaitContext","NavigationContext","LocationContext","RouteContext","outlet","matches","isDataRoute","RouteErrorContext","useHref","to","_temp","relative","useInRouterContext","invariant","basename","navigator","useContext","hash","pathname","search","useResolvedPath","joinedPathname","joinPaths","createHref","useLocation","location","useNavigationType","navigationType","useMatch","pattern","useMemo","matchPath","navigateEffectWarning","useIsomorphicLayoutEffect","cb","isStatic","static","useLayoutEffect","useNavigate","useNavigateStable","useNavigateUnstable","dataRouterContext","locationPathname","routePathnamesJson","JSON","stringify","getPathContributingMatches","map","match","pathnameBase","activeRef","useRef","current","navigate","useCallback","options","process","warning","go","path","resolveTo","parse","replace","push","state","OutletContext","useOutletContext","useOutlet","context","createElement","Provider","value","useParams","routeMatch","length","params","_temp2","useRoutes","routes","locationArg","useRoutesImpl","dataRouterState","parentMatches","parentParams","parentPathname","parentPathnameBase","parentRoute","route","parentPath","warningOnce","endsWith","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","parsePath","startsWith","remainingPathname","slice","matchRoutes","element","undefined","Component","renderedMatches","_renderMatches","Object","assign","encodeLocation","_extends","key","NavigationType","Pop","DefaultErrorComponent","error","useRouteError","message","isRouteErrorResponse","status","statusText","Error","stack","lightgrey","preStyles","padding","backgroundColor","codeStyles","devInfo","console","Fragment","style","fontStyle","defaultErrorElement","RenderErrorBoundary","constructor","props","revalidation","getDerivedStateFromError","getDerivedStateFromProps","componentDidCatch","errorInfo","render","routeContext","children","component","RenderedRoute","_ref","staticContext","errorElement","ErrorBoundary","_deepestRenderedBoundaryId","id","_dataRouterState2","_dataRouterState","errors","errorIndex","findIndex","m","keys","join","Math","min","reduceRight","index","concat","getChildren","DataRouterHook","DataRouterStateHook","getDataRouterConsoleError","hookName","useDataRouterContext","ctx","useDataRouterState","useRouteContext","useCurrentRouteId","thisRoute","useRouteId","UseRouteId","useNavigation","UseNavigation","navigation","useRevalidator","UseRevalidator","revalidate","router","useMatches","loaderData","UseMatches","data","handle","useLoaderData","UseLoaderData","routeId","useRouteLoaderData","UseRouteLoaderData","useActionData","UseActionData","values","actionData","_state$errors","UseRouteError","useAsyncValue","_data","useAsyncError","_error","blockerId","useBlocker","shouldBlock","UseBlocker","blockerKey","useState","String","blockerFunction","args","blocker","getBlocker","useEffect","deleteBlocker","blockers","get","UseNavigateStable","fromRouteId","alreadyWarned","cond","RouterProvider","fallbackElement","setStateImpl","setState","newState","startTransition","subscribe","n","opts","preventScrollReset","Router","historyAction","initialized","DataRoutes","_ref2","MemoryRouter","_ref3","initialEntries","initialIndex","historyRef","createMemoryHistory","v5Compat","history","action","listen","Navigate","_ref4","jsonPath","Outlet","Route","_props","_ref5","basenameProp","locationProp","staticProp","navigationContext","locationContext","trailingPathname","stripBasename","Routes","_ref6","createRoutesFromChildren","Await","_ref7","resolve","AwaitErrorBoundary","ResolveAwait","AwaitRenderStatus","neverSettledPromise","Promise","promise","pending","success","defineProperty","renderError","reject","catch","_tracked","then","AbortedDeferredError","_ref8","toRender","Children","forEach","isValidElement","treePath","type","apply","name","caseSensitive","loader","hasErrorBoundary","shouldRevalidate","lazy","renderMatches","mapRouteProperties","updates","createMemoryRouter","createRouter","future","v7_prependBasename","hydrationData","initialize"],"mappings":"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"}
\No newline at end of file