aem-react-js
Version:
AEM components written in React.
42 lines (41 loc) • 1.59 kB
TypeScript
/// <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>;
}