UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

33 lines 1.08 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; }); const inner = (<InnerAwait deferred={deferred} ready={ready}> {props.children} </InnerAwait>); if (props.fallback === undefined) { return inner; } return <Solid.Loading fallback={props.fallback}>{inner}</Solid.Loading>; } //# sourceMappingURL=awaited.jsx.map