UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

1 lines 2.79 kB
{"version":3,"file":"awaited.cjs","names":["<Solid.Show when={props.ready()}>\n {(_) => {\n const state = props.deferred[TSR_DEFERRED_PROMISE]\n if (state.status === 'error') {\n throw state.error\n }\n return props.children(state.data as T) as any\n }}\n </Solid.Show>","Solid.Show","<InnerAwait deferred={deferred} ready={ready}>\n {props.children}\n </InnerAwait>","<Solid.Loading fallback={props.fallback as any}>{inner}</Solid.Loading>","Solid.Loading"],"sources":["../../src/awaited.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\n\nimport { TSR_DEFERRED_PROMISE, defer } from '@tanstack/router-core'\nimport type { DeferredPromise } from '@tanstack/router-core'\nimport type { SolidNode } from './route'\n\nexport type AwaitOptions<T> = {\n promise: Promise<T>\n}\n\nexport function useAwaited<T>({\n promise: _promise,\n}: AwaitOptions<T>): [data: T, promise: DeferredPromise<T>] {\n const promise = defer(_promise)\n const data = Solid.createMemo(async () => await promise)\n\n return [data(), promise]\n}\n\nfunction InnerAwait<T>(props: {\n deferred: DeferredPromise<T>\n ready: Solid.Accessor<unknown>\n children: (res: T) => SolidNode\n}) {\n return (\n <Solid.Show when={props.ready()}>\n {(_) => {\n const state = props.deferred[TSR_DEFERRED_PROMISE]\n if (state.status === 'error') {\n throw state.error\n }\n return props.children(state.data as T) as any\n }}\n </Solid.Show>\n )\n}\n\nexport function Await<T>(\n props: AwaitOptions<T> & {\n fallback?: SolidNode\n children: (result: T) => SolidNode\n },\n) {\n const deferred = defer(props.promise)\n const ready = Solid.createMemo(async () => {\n await deferred\n return true\n })\n\n const inner = (\n <InnerAwait deferred={deferred} ready={ready}>\n {props.children}\n </InnerAwait>\n )\n\n if (props.fallback === undefined) {\n return inner\n }\n\n return <Solid.Loading fallback={props.fallback as any}>{inner}</Solid.Loading>\n}\n"],"mappings":";;;;;;AAUA,SAAgB,WAAc,EAC5B,SAAS,YACiD;CAC1D,MAAM,WAAA,GAAA,sBAAA,OAAgB,QAAQ;CAG9B,OAAO,CAFM,SAAM,WAAW,YAAY,MAAM,OAExC,EAAK,GAAG,OAAO;AACzB;AAEA,SAAS,WAAc,OAIpB;CACD,QAAA,GAAA,aAAA,iBACEA,SAACC,MAAD;EAAY,IAAA,OAAA;UAAM,MAAM,MAAM;EAAC;EAA/BD,WACI,MAAM;GACN,MAAM,QAAQ,MAAM,SAAS,sBAAA;GAC7B,IAAI,MAAM,WAAW,SACnB,MAAM,MAAM;GAEd,OAAO,MAAM,SAAS,MAAM,IAAS;EACvC;CACU,CAAA;AAEhB;AAEA,SAAgB,MACd,OAIA;CACA,MAAM,YAAA,GAAA,sBAAA,OAAiB,MAAM,OAAO;CAMpC,MAAM,SAAA,GAAA,aAAA,iBACJE,YAAAA;EAAsB;EAAiB,OAN3B,SAAM,WAAW,YAAY;GACzC,MAAM;GACN,OAAO;EACT,CAGyC;EAAvC,IAAA,WAAA;UACG,MAAM;EACG;;CAGd,IAAI,MAAM,aAAa,KAAA,GACrB,OAAO;CAGT,QAAA,GAAA,aAAA,iBAAOC,SAACC,SAAD;EAAe,IAAA,WAAA;UAAU,MAAM;EAAe;EAA9CD,UAAiD;CAAqB,CAAA;AAC/E"}