UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

35 lines (34 loc) 981 B
import { TSR_DEFERRED_PROMISE, defer } from "@tanstack/router-core"; import { createComponent } from "@solidjs/web"; import * as Solid from "solid-js"; //#region src/awaited.tsx function useAwaited({ promise: _promise }) { const promise = defer(_promise); if (promise[TSR_DEFERRED_PROMISE].status === "pending") throw promise; if (promise[TSR_DEFERRED_PROMISE].status === "error") throw promise[TSR_DEFERRED_PROMISE].error; return [promise[TSR_DEFERRED_PROMISE].data, promise]; } function InnerAwait(props) { const [data] = useAwaited({ promise: props.promise }); return props.children(data); } function Await(props) { return createComponent(Solid.Loading, { get fallback() { return props.fallback; }, get children() { return createComponent(InnerAwait, { get promise() { return props.promise; }, get children() { return props.children; } }); } }); } //#endregion export { Await, useAwaited }; //# sourceMappingURL=awaited.js.map