@appbuckets/react-ui-smart-components
Version:
UI Extended Components that work with @appbuckets/react-client and @appbuckets/react-ui
41 lines (40 loc) • 1.28 kB
TypeScript
import * as React from 'react';
import type { LoaderProps } from '@appbuckets/react-ui/Loader';
import type { ClientRequestError } from '@appbuckets/react-app-client';
export interface QueryResultBase {
/** A client error object */
error?: ClientRequestError | undefined | null;
/** A boolean isError state */
isError?: boolean;
/** A boolean isLoading state */
isLoading?: boolean;
/** A boolean isSuccess state */
isSuccess?: boolean;
/** The query status */
status?: string;
}
interface SuccessesQueryComponentProps<QuerySuccessState> {
/** The success query state */
state: QuerySuccessState;
}
export declare type SuccessesQueryComponent<
QuerySuccessState,
Props extends {} = {}
> = React.FunctionComponent<
SuccessesQueryComponentProps<QuerySuccessState> & Props
>;
export interface QuerySuspendedComponentProps<
QueryResult extends QueryResultBase,
QuerySuccessState = QueryResult,
Props extends {} = {}
> {
/** The component to render once the query state is success */
Component?: SuccessesQueryComponent<QuerySuccessState, Props>;
/** Inner props to pass to Component */
innerProps?: Props;
/** Override LoaderProps */
loaderProps?: Partial<LoaderProps>;
/** The query to execute */
query: QueryResult;
}
export {};