react-application-core
Version:
A react-based application core for the business applications.
101 lines (100 loc) • 3.36 kB
TypeScript
import * as React from 'react';
import { IConnectorEntity, IGenericContainerCtor, IRouteEntity, IStorageSettingsEntity, IUniversalUiMessageConfigEntity, RoutePredicateT } from '../../definition';
import { IUniversalApplicationContainerProps } from './universal-application.interface';
import { GenericContainer } from '../base/generic.container';
export declare abstract class UniversalApplicationContainer<TProps extends IUniversalApplicationContainerProps> extends GenericContainer<TProps> {
static readonly defaultProps: IUniversalApplicationContainerProps;
private static readonly logger;
private readonly extraRoutes;
/**
* @stable [17.11.2019]
* @param {TProps} props
*/
constructor(props: TProps);
/**
* @stable [17.11.2019]
*/
componentDidMount(): void;
/**
* @stable [24.09.2019]
*/
componentWillUnmount(): void;
/**
* @stable [18.11.2019]
*/
protected syncAppState(): void;
/**
* @stable [28.11.2019]
* @param {RoutePredicateT} routePredicate
* @returns {React.ReactNode}
*/
protected getRoutes(routePredicate?: RoutePredicateT): React.ReactNode;
/**
* @stable [17.11.2019]
* @param {string} path
* @returns {IGenericContainerCtor}
*/
protected lookupDynamicContainerByRoutePath(path: string): IGenericContainerCtor;
/**
* @stable [17.11.2019]
* @param {IGenericContainerCtor} container
* @param {IConnectorEntity} config
*/
protected registerExtraRoute(container: IGenericContainerCtor, config: IConnectorEntity): void;
protected registerLogoutRoute(): void;
/**
* @stable [17.11.2019]
*/
protected onBeforeLogout(): void;
/**
* @stable [16.11.2019]
* @param {IGenericContainerCtor} ctor
* @param {IConnectorEntity} connectorEntity
* @returns {JSX.Element}
*/
protected abstract buildRoute(ctor: IGenericContainerCtor, connectorEntity: IConnectorEntity): JSX.Element;
/**
* @stable [17.11.2019]
* @param {IRouteEntity} routeCfg
* @returns {string}
*/
protected toRouteId(routeCfg: IRouteEntity): string;
/**
* @stable [28.11.2019]
* @returns {React.ReactNode}
*/
protected getMessageElement(): React.ReactNode;
/**
* @stable [28.11.2019]
* @param {IUniversalUiMessageConfigEntity} message
* @returns {IUniversalUiMessageConfigEntity}
*/
protected prepareMessage(message: IUniversalUiMessageConfigEntity): IUniversalUiMessageConfigEntity;
/**
* @stable [17.11.2019]
* @param {Map<IGenericContainerCtor, IConnectorEntity>} map
* @param {RoutePredicateT} routePredicate
* @returns {JSX.Element[]}
*/
private buildRoutes;
/**
* @stable [17.11.2019]
* @returns {IStorageSettingsEntity}
*/
protected get storageSettings(): IStorageSettingsEntity;
/**
* @stable [28.11.2019]
* @returns {boolean}
*/
protected get isMessageVisible(): boolean;
/**
* @stable [28.11.2019]
* @returns {boolean}
*/
protected get inProgress(): boolean;
/**
* @stable [28.11.2019]
* @returns {boolean}
*/
protected get doesErrorExist(): boolean;
}