UNPKG

@difizen/mana-app

Version:

41 lines 1.71 kB
/// <reference types="react" /> import type { Disposable } from '@difizen/mana-common'; import type { Contribution } from '@difizen/mana-syringe'; import type { ModalItem, ModalItemProps } from './modal-protocol'; import { ModalContribution } from './modal-protocol'; export declare class ModalItemView<T = any> implements Disposable { modalItem: ModalItem<T>; modalVisible: boolean; modalData?: T; constructor(modalItem: ModalItem<T>); open: (data: T) => void; close: () => void; shouldRender(): boolean; getModalProps(): ModalItemProps<T>; disposed: boolean; dispose(): void; } export declare class ModalService { protected modals: Map<string, ModalItem<any>>; modalViewList: ModalItemView<any>[]; protected readonly contributions: Contribution.Provider<ModalContribution>; constructor(contributions: Contribution.Provider<ModalContribution>); init(): void; hasModal(modal: ModalItem<any> | string): boolean; getModal<T>(modal: ModalItem<T> | string): ModalItem<any> | undefined; registerModal(modal: ModalItem): void; registerModals(modals: ModalItem<any>[]): void; unregisterModal(modal: ModalItem): void; getOrCreateModalView<T>(modal: ModalItem<T>): ModalItemView<any>; openModal: <T>(modal: { id: string; } | string, data?: T | undefined) => void; closeModal: (modal: { id: string; } | string) => void; closeAllModal: () => void; getModalProps: <T>(itemView: ModalItemView<T>) => ModalItemProps<T>; shouldRenderModal: <T>(itemView: ModalItemView<T>) => boolean; renderModal<T>(itemView: ModalItemView<T>): React.ReactNode; } //# sourceMappingURL=modal-service.d.ts.map