UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

51 lines (50 loc) 1.63 kB
require("./_virtual/_rolldown/runtime.cjs"); let _tanstack_router_core = require("@tanstack/router-core"); let solid_js_web = require("solid-js/web"); let solid_js = require("solid-js"); //#region src/lazyRouteComponent.tsx function lazyRouteComponent(importer, exportName) { let loadPromise; let comp; let error; const load = () => { if (!loadPromise) loadPromise = importer().then((res) => { loadPromise = void 0; comp = res[exportName ?? "default"]; return comp; }).catch((err) => { error = err; }); return loadPromise; }; const lazyComp = function Lazy(props) { if (error) { if ((0, _tanstack_router_core.isModuleNotFoundError)(error)) { if (error instanceof Error && typeof window !== "undefined" && typeof sessionStorage !== "undefined") { const storageKey = `tanstack_router_reload:${error.message}`; if (!sessionStorage.getItem(storageKey)) { sessionStorage.setItem(storageKey, "1"); window.location.reload(); return { default: () => null }; } } } throw error; } if (!comp) { const [compResource] = (0, solid_js.createResource)(load, { initialValue: comp, ssrLoadFrom: "initial" }); return (0, solid_js_web.createComponent)(solid_js_web.Dynamic, (0, solid_js_web.mergeProps)({ get component() { return compResource(); } }, props)); } return (0, solid_js_web.createComponent)(solid_js_web.Dynamic, (0, solid_js_web.mergeProps)({ component: comp }, props)); }; lazyComp.preload = load; return lazyComp; } //#endregion exports.lazyRouteComponent = lazyRouteComponent; //# sourceMappingURL=lazyRouteComponent.cjs.map