@difizen/mana-app
Version:
41 lines • 1.71 kB
TypeScript
/// <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