UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

31 lines 1 kB
import * as Solid from 'solid-js'; import { TSR_DEFERRED_PROMISE, defer } from '@tanstack/router-core'; export function useAwaited({ promise: _promise, }) { const promise = defer(_promise); const data = Solid.createMemo(async () => await promise); return [data(), promise]; } function InnerAwait(props) { return (<Solid.Show when={props.ready()}> {(_) => { const state = props.deferred[TSR_DEFERRED_PROMISE]; if (state.status === 'error') { throw state.error; } return props.children(state.data); }} </Solid.Show>); } export function Await(props) { const deferred = defer(props.promise); const ready = Solid.createMemo(async () => { await deferred; return true; }); return (<Solid.Loading fallback={props.fallback}> <InnerAwait deferred={deferred} ready={ready}> {props.children} </InnerAwait> </Solid.Loading>); } //# sourceMappingURL=awaited.jsx.map