UNPKG

@auraxy/react-modal

Version:

A react modal component

154 lines (129 loc) 3.13 kB
import React, { ReactNode, Ref, RefObject } from 'react' interface GlobalConfigT { /** * Must be an Element or a parameter of querySelector * * Default: undefined * */ portalDom?: Element | string } /** * Global config for setting default props of component * */ declare const GlobalConfig: GlobalConfigT declare function getPortalDom( portalDom?: GlobalConfigT['portalDom'], ): Element | null | undefined interface OverlayProps { /** * 是否强制显示 * */ forceShow?: boolean /** * 是否允许监听 escape 按键 * Enable to listen the escape key * * Default: true * */ enableEscape?: boolean /** * 是否允许监听点击事件以关闭浮层 * Enable to listen the click event to close overlay * * Default: true * */ enableClick?: boolean /** * 如果值存在,则使用 createPortal 将浮层提取到 portalDom * If portalDom is not undefined, the overlay will be extract to portalDom via createPortal * * Default: getPortalDom(GlobalConfig.portalDom) * */ portalDom?: GlobalConfigT['portalDom'] children?: ReactNode /** * 在浮层关闭之后触发的回调 * A callback function that will be call after overlay closed * */ onClose?(): void /** * 在浮层打开之后触发的回调 * A callback function that will be call after overlay opened * */ onOpen?(): void } interface OverlayRefProps { open(): void close(): void } declare const Overlay: React.ForwardRefExoticComponent< OverlayProps & React.RefAttributes<OverlayRefProps> > interface ModalProps extends OverlayProps { title?: ReactNode /** * Default: true * */ showClose?: boolean className?: string } declare const Modal: React.ForwardRefExoticComponent< ModalProps & React.RefAttributes<OverlayRefProps> > interface ConfirmTexts { ok?: ReactNode cancel?: ReactNode } interface ConfirmModalProps extends ModalProps { content?: ReactNode texts?: ConfirmTexts onOk?(): any onCancel?(): any } declare const ConfirmModal: React.ForwardRefExoticComponent< ConfirmModalProps & React.RefAttributes<OverlayRefProps> > declare global { interface Window { GlobalConfirmModal?: { open(props: ConfirmModalProps): void close(): void } } } declare class GlobalConfirmModal { static id: string static open(props: ConfirmModalProps): void static close(): void private static render } /** * 直到组件状态第一次被置为可见,否则直接返回空的 dom(可以减少一些初始化逻辑的运行) * Return the empty dom directly until the component state is first made visible * */ declare function useShouldRender(visible: boolean): boolean declare function useDeliveryRef( ref: Ref<OverlayRefProps>, ): { overlayRef: RefObject<OverlayRefProps> methods: { open(): void close(): void } } export { ConfirmModal, ConfirmModalProps, ConfirmTexts, GlobalConfig, GlobalConfigT, GlobalConfirmModal, Modal, ModalProps, Overlay, OverlayProps, OverlayRefProps, getPortalDom, useDeliveryRef, useShouldRender, }