@tanstack/solid-router
Version:
Modern and scalable routing for Solid applications
35 lines (34 loc) • 1.93 kB
JavaScript
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