UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

52 lines (51 loc) • 1.57 kB
const require_runtime = require("./_virtual/_rolldown/runtime.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, 1); //#region src/awaited.tsx function useAwaited({ promise: _promise }) { const promise = (0, _tanstack_router_core.defer)(_promise); return [solid_js.createMemo(async () => await promise)(), promise]; } function InnerAwait(props) { return (0, _solidjs_web.createComponent)(solid_js.Show, { get when() { return props.ready(); }, children: (_) => { const state = props.deferred[_tanstack_router_core.TSR_DEFERRED_PROMISE]; if (state.status === "error") throw state.error; if (state.status === "pending") { const streamed = props.deferred; if (streamed.s === 2) throw streamed.v; if (streamed.s === 1) return props.children(streamed.v); } return props.children(state.data); } }); } function Await(props) { const deferred = (0, _tanstack_router_core.defer)(props.promise); const inner = (0, _solidjs_web.createComponent)(InnerAwait, { deferred, ready: solid_js.createMemo(async () => { await deferred; return true; }), get children() { return props.children; } }); if (props.fallback === void 0) return inner; return (0, _solidjs_web.createComponent)(solid_js.Loading, { get fallback() { return props.fallback; }, children: inner }); } //#endregion exports.Await = Await; exports.useAwaited = useAwaited; //# sourceMappingURL=awaited.cjs.map