import React, { CSSProperties, ReactNode } from 'react'; import { TriggerProps } from '../trigger'; import { ButtonProps } from '../button'; /** * @title Popconfirm */ export interface PopconfirmProps { style?: CSSProperties; className?: string | string[]; /** * 弹出挂载的节点 */ getPopupContainer?: (node: HTMLElement) => Element; /** * 弹出框的方位,有 12 个方位可供选择 * @defaultValue top */ position?: 'top' | 'tl' | 'tr' | 'bottom' | 'bl' | 'br' | 'left' | 'lt' | 'lb' | 'right' | 'rt' | 'rb'; /** * 标题 */ title?: ReactNode | (() => ReactNode); /** * 内容 */ content?: ReactNode | (() => ReactNode); /** * 是否禁用 */ disabled?: boolean; /** * 取消按钮文字 */ cancelText?: ReactNode; /** * 确认按钮文字 */ okText?: ReactNode; /** * 确认按钮的类型 * @defaultValue primary */ okType?: ButtonProps['type']; /** * 确定按钮的参数,可接受 `Button` 组件的所有参数 */ okButtonProps?: ButtonProps; /** * 取消按钮的参数,可接受 `Button` 组件的所有参数 */ cancelButtonProps?: ButtonProps; /** * 点击确认按钮的回调函数 */ onOk?: (e: React.MouseEvent) => Promise | void; /** * 点击取消按钮的回调函数。 */ onCancel?: (e: React.MouseEvent) => void; /** * 默认弹出框是打开还是关闭 */ defaultPopupVisible?: boolean; /** * 弹出框是打开还是关闭 */ popupVisible?: boolean; /** * 弹出打开和关闭触发的回调 */ onVisibleChange?: (visible: boolean) => void; /** * 标题前的图标 * @defaultValue */ icon?: ReactNode; blurToHide?: boolean; /** * 是否在隐藏的时候销毁 DOM 节点 * @defaultValue true */ unmountOnExit?: boolean; /** * 触发方式 * @defaultValue click */ trigger?: TriggerProps['trigger']; escToClose?: TriggerProps['escToClose']; /** * 可以接受所有 Trigger 的参数 */ triggerProps?: Partial; /** * 是否自动聚焦弹出框内的可聚焦元素 */ autoFocus?: boolean; /** * 是否将焦点锁定在弹出框内 */ focusLock?: boolean; }