UNPKG

@flatbiz/antd

Version:
108 lines (105 loc) 4.1 kB
import { TAny, TNoopDefine, TPlainObject } from '@flatbiz/utils'; import { ButtonProps, DropdownProps, FormInstance, ModalProps } from 'antd'; import { ConfigProviderProps } from 'antd/lib/config-provider/index.js'; import { ReactElement, ReactNode } from 'react'; export type ButtonWrapperProps = Omit<ButtonProps, "onClick" | "color"> & { /** 当返回 Promise 时,按钮自动loading */ onClick?: (e: React.MouseEvent) => Promise<TAny> | void; /** 重复点击间隙,单位毫秒 默认值:500 */ debounceDuration?: number; /** 基于GLOBAL中elemAclLimits按钮权限列表,控制按钮显示、隐藏 */ permission?: string; /** 是否隐藏按钮 */ hidden?: boolean; /** loading 显示位置,默认值:left */ loadingPosition?: "left" | "center"; /** 移除按钮内边距,一般用于 type=link 类型下 */ removeGap?: boolean; color?: string; }; export type TLocale = "en" | "zh-cn"; export type TFbaLocale = { TreeWrapper?: { /** 数据加载异常默认文案 */ requestError?: string; }; FbaDialogModal?: { cancelText?: string; }; }; export type ConfigProviderWrapperProps = Omit<ConfigProviderProps, "locale"> & { locale?: TLocale; /** 自定义国际化数据 */ customLocaleMessage?: Partial<TFbaLocale>; /** 同 fbaHooks.useCopyRemoveSpace[ignoreClass] */ copyOperateIgnoreClass?: string[]; }; export type DialogModalProps = Omit<ModalProps, "onOk" | "onCancel" | "getContainer" | "open" | "open" | "okButtonProps" | "cancelButtonProps" | "footer"> & { /** * 内置尺寸,根据比例固定高度、宽度,默认:无 * ``` * 1. 如果自定义了width、bodyHeight属性,size中的height、width将对应失效 * 2. 不传、传null值可取消内置尺寸 * ``` */ size?: "small" | "middle" | "large" | null; onOk?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>; onCancel?: (form: FormInstance, e: React.MouseEvent<HTMLElement>) => void | Promise<void>; /** * content只在第一次弹起时,执行一次 */ content: string | ReactElement | ((form: FormInstance, operate: { onClose: TNoopDefine; }) => ReactElement); configProviderProps?: ConfigProviderWrapperProps; okHidden?: boolean; cancelHidden?: boolean; okButtonProps?: Omit<ButtonWrapperProps, "hidden" | "children" | "onClick">; cancelButtonProps?: Omit<ButtonWrapperProps, "hidden" | "children" | "onClick">; /** * 设置modal body height 为当前窗口height的百分比,例如:30 * @deprecated 已失效,可通过size属性设置 * ``` * 1. 最大值:80 * 1. 设置bodyStyle.height 后,bodyHeightPercent失效 * ``` */ bodyHeightPercent?: number; titleExtra?: ReactElement; /** * null则隐藏footer * ``` * extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据 * ``` */ footer?: null | ReactElement | ReactElement[] | ((form: FormInstance, extraData?: TPlainObject) => ReactElement); /** 内容高度,为styles.body.height快捷配置,优先级低于styles.body.height */ bodyHeight?: number; }; export interface DropdownMenuItem extends Omit<ButtonProps, "color"> { text?: string | ReactElement; color?: string; onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>; permission?: string; needConfirm?: boolean; confirmMessage?: ReactNode; hidden?: boolean; confirmModalProps?: DialogModalProps; stopPropagation?: boolean; } export interface DropdownMenuWrapperProps extends Omit<DropdownProps, "menu"> { menuList: Array<DropdownMenuItem | null>; /** dropdown 设置弹框根节点在body下 */ isFixed?: boolean; } /** * DropdownMenuWrapper * 升级 antd 5.5.1 后,Dropdown 中 Popconfirm弹框使用存在问题,所以在 @flatbiz/antd@4.2.49版本修改为使用dialogConfirm组件实现二次弹框确认功能 * @param props * @returns * ``` * 1. Dropdown默认弹框根节点在组件内部,通过isFixed=true可设置弹框根节点在body下 * ``` */ export declare const DropdownMenuWrapper: (props: DropdownMenuWrapperProps) => import("react").JSX.Element; export {};