UNPKG

react-restful

Version:

Another liblary for restful resources management for React app.

39 lines (38 loc) 2.29 kB
/// <reference types="node" /> import * as React from 'react'; import { RecordType, ResourceType, Store, SubscribeEvent } from '../utilities'; interface ContainerProps<DataModel extends RecordType, MappingProps, OwnProps> { readonly store?: Store; readonly resourceType: ResourceType<DataModel>; readonly shouldTrackingNewRecord?: (record: DataModel, ownProps: OwnProps, trackedData: ReadonlyArray<DataModel>) => boolean; readonly registerToTracking?: (props: OwnProps, current?: ReadonlyArray<DataModel>, event?: SubscribeEvent) => ReadonlyArray<DataModel>; readonly mapToProps: (data: ReadonlyArray<DataModel>, ownProps: OwnProps) => MappingProps; } interface RestfulDataContainerState<DataModel> { readonly trackingData: ReadonlyArray<DataModel>; } export declare function restfulDataContainer<DataModel extends RecordType, MappingProps, OwnProps extends MappingProps>(containerProps: ContainerProps<DataModel, MappingProps, OwnProps>): (Component: React.ComponentType<OwnProps>) => { new (props: OwnProps, context: {}): { readonly store: Store; readonly subscribeId: string; mappingTimeout: NodeJS.Timer; componentWillUnmount(): void; render(): JSX.Element; isTracked: (record: DataModel) => boolean; onStoreEvent: (e: SubscribeEvent<DataModel>) => void; manualMapping: (e: SubscribeEvent<DataModel>) => undefined; autoMapping: (e: SubscribeEvent<DataModel>) => void; onDataRemove: (record: DataModel) => void; setState<K extends "trackingData">(state: RestfulDataContainerState<DataModel> | ((prevState: Readonly<RestfulDataContainerState<DataModel>>, props: Readonly<OwnProps>) => RestfulDataContainerState<DataModel> | Pick<RestfulDataContainerState<DataModel>, K> | null) | Pick<RestfulDataContainerState<DataModel>, K> | null, callback?: (() => void) | undefined): void; forceUpdate(callBack?: (() => void) | undefined): void; readonly props: Readonly<{ children?: React.ReactNode; }> & Readonly<OwnProps>; state: Readonly<RestfulDataContainerState<DataModel>>; context: any; refs: { [key: string]: React.ReactInstance; }; }; }; export {};