import React, { CSSProperties, HTMLAttributes, ReactNode } from 'react'; import { ButtonProps, ButtonType } from '../Button'; import { WithRef } from '../utils/type'; export interface Props { /** 是否打开 */ visible?: boolean; title: ReactNode; /** * 宽度 单位 px * * @default 480 */ width?: number; /** * 自定义底部按钮区域 */ footer?: ReactNode; /** 点击确定回调 */ onOk?: () => void | Promise; /** 点击右上角叉、取消按钮、遮罩层或键盘按下 Esc 时的回调 */ onCancel?: () => void; /** * 不可见时是否自动销毁 * * @default false */ autoDestroy?: boolean; /** 自定义样式名 */ className?: string; /** 自定义样式 */ style?: CSSProperties; /** 抽屉内容 */ children?: ReactNode; /** * 根元素的 html 属性 */ rootHtmlProps?: WithRef, 'onChange'>, HTMLDivElement>; /** * 遮罩的 html 属性 */ maskHtmlProps?: WithRef, HTMLDivElement>; /** * 点击 mask 是否允许关闭对话框;默认使用全局配置 mask.drawer.clickable (true) */ maskClickable?: boolean; } export interface InternalDrawerProps extends Props { /** 自定义 drawer render 逻辑 */ renderDrawer?: (node: ReactNode) => ReactNode; } export interface DrawerFooterCtxValue { /** 点击确定回调 */ onOk?: () => Promise | void; /** 点击取消回调 */ onCancel?: () => void; } /** 获取用于自定义 Footer 实现的上下文信息 */ export declare function useDrawerFooterCtx(): DrawerFooterCtxValue; /** 对(icecream)内的 Drawer 实现,相比对外的 Drawer 提供更高的可定制化程度 */ export declare function InternalDrawer(props: InternalDrawerProps): React.JSX.Element; export default function Drawer(props: Props): React.JSX.Element; export interface DrawerFooterProps { /** 确定按钮文本 */ okText?: string; /** 取消按钮文本 */ cancelText?: string; /** 确定按钮类型 */ okType?: ButtonType; /** 取消按钮类型 */ cancelType?: ButtonType; /** 确定按钮的 loading 状态 */ okLoading?: boolean; /** 确定按钮的 props */ okButtonProps?: ButtonProps; /** 取消按钮的 props */ cancelButtonProps?: ButtonProps; } export declare function DrawerFooter({ okText, cancelText, okType, cancelType, okLoading, okButtonProps, cancelButtonProps }: DrawerFooterProps): React.JSX.Element;