@tanstack/solid-router
Version:
Modern and scalable routing for Solid applications
43 lines (42 loc) • 1.63 kB
JavaScript
const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
const require_CatchBoundary = require("./CatchBoundary.cjs");
const require_useRouter = require("./useRouter.cjs");
let _tanstack_router_core = require("@tanstack/router-core");
let _solidjs_web = require("@solidjs/web");
let solid_js = require("solid-js");
solid_js = require_runtime.__toESM(solid_js);
//#region src/not-found.tsx
var _tmpl$ = /* @__PURE__ */ (0, _solidjs_web.template)(`<p>Not Found`);
function getNotFound(error) {
if ((0, _tanstack_router_core.isNotFound)(error)) return error;
if ((0, _tanstack_router_core.isNotFound)(error?.cause)) return error.cause;
}
function CatchNotFound(props) {
const router = require_useRouter.useRouter();
const pathname = solid_js.createMemo(() => router.stores.location.state.pathname);
const status = solid_js.createMemo(() => router.stores.status.state);
return (0, _solidjs_web.createComponent)(require_CatchBoundary.CatchBoundary, {
getResetKey: () => `not-found-${pathname()}-${status()}`,
onCatch: (error) => {
const notFoundError = getNotFound(error);
if (notFoundError) props.onCatch?.(notFoundError);
else throw error;
},
errorComponent: ({ error }) => {
const notFoundError = getNotFound(error);
if (notFoundError) return props.fallback?.(notFoundError);
else throw error;
},
get children() {
return props.children;
}
});
}
function DefaultGlobalNotFound() {
return _tmpl$();
}
//#endregion
exports.CatchNotFound = CatchNotFound;
exports.DefaultGlobalNotFound = DefaultGlobalNotFound;
exports.getNotFound = getNotFound;
//# sourceMappingURL=not-found.cjs.map