UNPKG

react-solid-flow

Version:

[SolidJS](https://www.solidjs.com/docs/latest/api#control-flow)-inspired basic control-flow components and everyday async state hook library for [React](https://reactjs.org/)

51 lines (50 loc) 1.86 kB
export interface ResourceLike<T> { /** Is new data currently loading */ loading?: boolean; /** Resolved resource data for sync access */ data: Awaited<T> | undefined; /** Rejected resource error */ error: unknown; } export type ResourceState = "unresolved" | "pending" | "ready" | "refreshing" | "errored"; export declare class Resource<T> implements ResourceLike<T> { loading: boolean; data: Awaited<T> | undefined; error: unknown; /** State name * * | state | data | loading | error | * |:-----------|:-----:|:-------:|:-----:| * | unresolved | No | No | No | * | pending | No | Yes | No | * | ready | Yes | No | No | * | refreshing | Yes | Yes | No | * | errored | No | No | Yes | */ state: ResourceState; /** last resolved value * * This can be useful if you want to show the out-of-date data while the new * data is loading. */ latest: Awaited<T> | undefined; constructor(init?: Partial<ResourceLike<T>>, previous?: { latest?: Awaited<T>; }); static from<T>(data: Promise<T> | Awaited<T> | undefined, pend?: boolean): Resource<T>; /** * Determine resource-like state, based on its fields values. * * | state | data | loading | error | * |:-----------|:-----:|:-------:|:-----:| * | unresolved | No | No | No | * | pending | No | Yes | No* | * | ready | Yes | No | No | * | refreshing | Yes | Yes | No* | * | errored | No* | No | Yes | * * Values marked with * are expected to equal the specified value, * but actually ignored, when determining the status. */ static getState(r: ResourceLike<unknown>): ResourceState; }