import { Syringe } from '@difizen/mana-syringe'; export interface ModalItemProps { modalItem: ModalItem; data?: T; visible: boolean; close: () => void; } export interface ModalItem { id: string; component: React.FC>; shouldRender?: (data?: T) => boolean; render?: (props: ModalItemProps) => React.ReactNode; __data?: T; } export const ModalContribution = Syringe.defineToken('ModalContribution'); export interface ModalContribution { registerModal?: () => ModalItem; registerModals?: () => ModalItem[]; } export function renderModal( componet: React.FC>, props: ModalItemProps, ): React.ReactNode { const Modal = componet; return ; }