@tanstack/solid-router
Version:
Modern and scalable routing for Solid applications
40 lines (39 loc) • 1.54 kB
JavaScript
const require_runtime = 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");
solid_js = require_runtime.__toESM(solid_js);
//#region src/awaited.tsx
function useAwaited({ promise: _promise }) {
const promise = (0, _tanstack_router_core.defer)(_promise);
if (promise[_tanstack_router_core.TSR_DEFERRED_PROMISE].status === "pending") throw promise;
if (promise[_tanstack_router_core.TSR_DEFERRED_PROMISE].status === "error") throw promise[_tanstack_router_core.TSR_DEFERRED_PROMISE].error;
return [promise[_tanstack_router_core.TSR_DEFERRED_PROMISE].data, promise];
}
function Await(props) {
if (!("fallback" in props)) {
const [resource] = solid_js.createResource(() => (0, _tanstack_router_core.defer)(props.promise), (p) => p, { deferStream: true });
return (0, solid_js_web.createComponent)(solid_js.Show, {
get when() {
return resource();
},
children: (data) => props.children(data())
});
}
return (0, solid_js_web.createComponent)(solid_js.Suspense, {
get fallback() {
return props.fallback;
},
get children() {
return (0, solid_js_web.createComponent)(AwaitInner, props);
}
});
}
function AwaitInner(props) {
const [resource] = solid_js.createResource(() => (0, _tanstack_router_core.defer)(props.promise), (p) => p);
return props.children(resource());
}
//#endregion
exports.Await = Await;
exports.useAwaited = useAwaited;
//# sourceMappingURL=awaited.cjs.map