UNPKG

aem-react-js

Version:
42 lines (41 loc) 1.59 kB
/// <reference types="react" /> import * as React from 'react'; import { JavaApi } from './JavaApi'; import { ReactParsysProps } from './ReactParsys'; import { ResourceComponent, ResourceProps } from './ResourceComponent'; export declare type Transform<R> = (api: JavaApi) => R; export declare type parsysFactory<P> = (api: JavaApi, props: P) => JSX.Element[]; export interface ComponentConfig<R> { readonly shortName?: string; readonly name?: string; readonly parsys?: ReactParsysProps; readonly parsysFactory?: parsysFactory<R>; readonly component: React.ComponentClass<any>; readonly props?: { [name: string]: any; }; readonly transform?: Transform<R>; readonly loadingComponent?: React.ComponentClass<any>; readonly selector?: string; } export interface WrapperProps<E extends object> extends ResourceProps { readonly extraProps: E; } export declare class Wrapper<E extends object, R> extends ResourceComponent<any, WrapperProps<E>, any> { protected readonly config: ComponentConfig<R>; constructor(config: ComponentConfig<R>, props?: any, context?: any); create(): React.ReactElement<any>; renderBody(): React.ReactElement<any>; protected isSkipData(): boolean; protected renderLoading(): React.ReactElement<any>; private transform(props); } export declare class WrapperFactory { /** * * @param config * @param resourceType * @return {TheWrapper} */ static createWrapper<E extends object, R>(config: ComponentConfig<R>, resourceType: string): React.ComponentClass<any>; }