UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

35 lines (34 loc) 1.93 kB
import { renderInNonRouteComponentContext } from "./nonRouteComponentContext.js"; import { DefaultGlobalNotFound } from "./not-found.js"; import { createComponent } from "solid-js/web"; //#region src/renderRouteNotFound.tsx /** * Renders a not found component for a route when no matching route is found. * * @param router - The router instance containing the route configuration * @param route - The route that triggered the not found state * @param data - Additional data to pass to the not found component * @returns The rendered not found component or a default fallback component */ function renderRouteNotFound(router, route, data) { if (process.env.NODE_ENV !== "production") { if (!route.options.notFoundComponent) { if (router.options.defaultNotFoundComponent) { const DefaultNotFoundComponent = router.options.defaultNotFoundComponent; return renderInNonRouteComponentContext(() => createComponent(DefaultNotFoundComponent, data), "notFoundComponent"); } console.warn(`Warning: A notFoundError was encountered on the route with ID "${route.id}", but a notFoundComponent option was not configured, nor was a router level defaultNotFoundComponent configured. Consider configuring at least one of these to avoid TanStack Router's overly generic defaultNotFoundComponent (<p>Not Found</p>)`); return createComponent(DefaultGlobalNotFound, {}); } const NotFoundComponent = route.options.notFoundComponent; return renderInNonRouteComponentContext(() => createComponent(NotFoundComponent, data), "notFoundComponent"); } if (!route.options.notFoundComponent) { if (router.options.defaultNotFoundComponent) return createComponent(router.options.defaultNotFoundComponent, data); return createComponent(DefaultGlobalNotFound, {}); } return createComponent(route.options.notFoundComponent, data); } //#endregion export { renderRouteNotFound }; //# sourceMappingURL=renderRouteNotFound.js.map