@auraxy/react-modal
Version:
A react modal component
154 lines (129 loc) • 3.13 kB
TypeScript
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,
}