UNPKG

react-hoc-modal

Version:
41 lines (40 loc) 1.81 kB
import { type ForwardRefExoticComponent, type RefAttributes, type FC, MemoExoticComponent } from "react"; import { Config } from "./Config"; import { Provider } from "./Provider"; import { withModal, type WithModalComponent } from "./withModal"; import { useModal } from "./useModal"; import { ModalProps, TProvider, TModal, TConfigComponent, TConfig, TUseModalControl } from "./types"; import { Footer, type FooterProps } from "./Footer"; import ContentScroll, { type ContentScrollProps } from "./Components/ContentScroll"; import PopupItem, { type PopupItemProps } from "./Components/PopupItem"; interface StaticComponents extends ForwardRefExoticComponent<ModalProps & RefAttributes<TModal>> { /** * Provider */ Provider: FC<TProvider>; Footer: FC<FooterProps>; ContentScroll: MemoExoticComponent<ForwardRefExoticComponent<ContentScrollProps>>; PopupItem: FC<PopupItemProps>; /** * Configuration component * @returns {ReactElement} */ Config: (config: TConfigComponent) => null; /** * Show modal by name * @param name Modal name * @returns {void} */ show: (name: string) => void; /** * Hide modal by name or close all modals * @param name Modal name * @returns {void} */ hide: (name?: string) => void; withModal: <ModalProps = {}, ModalState = {}>(WrappedComponent: ForwardRefExoticComponent<ModalProps> | FC<ModalProps>, config?: TConfig) => WithModalComponent<ModalProps, ModalState>; useModal: <ModalState>(config?: TConfig) => TUseModalControl<ModalState>; } declare const Modal: StaticComponents; export { withModal, useModal, Provider as ModalProvider, Config as ModalConfig, Footer as ModalFooter, ContentScroll as ModalContentScroll, PopupItem as ModalPopupItem }; export default Modal;