UNPKG

@flatbiz/antd

Version:
101 lines (98 loc) 3.75 kB
import { TAny, TNoopDefine, TPlainObject } from '@flatbiz/utils'; import { ButtonProps, DrawerProps, FormInstance } 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 DialogDrawerProps = Omit<DrawerProps, "onOk" | "onCancel" | "getContainer" | "open" | "open" | "footer" | "extra"> & { okText?: string | ReactElement; cancelText?: string | ReactElement; 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; okButtonExtraProps?: Omit<ButtonWrapperProps, "onClick" | "children" | "loading">; cancelButtonExtraProps?: Omit<ButtonWrapperProps, "onClick" | "children">; okHidden?: boolean; cancelHidden?: boolean; /** 设置操作区域位置 */ operatePosition?: "header" | "footer"; /** 右上角自定义内容,如果operatePosition=header,此设置无效 */ extra?: ReactNode | ((form: FormInstance) => ReactElement); /** * ``` * 1. 自定义弹框操作区域,通过 operatePosition 配置可以自定义位置 * 2. extraData 为外部通过 useDialogModal.rerenderFooter 重新渲染footer携带的数据 * ``` */ operateRender?: (form: FormInstance, extraData?: TPlainObject) => ReactElement; }; /** * 抽屉弹框 * ``` * 1. 可嵌套使用 * 2. 为什么不推荐使用 * dialogDrawer.open 打开的内容无法适配兼容自定义主题、无法适配兼容旧版浏览器、无法兼容国际化 * 适配兼容旧版浏览器(https://ant-design.antgroup.com/docs/react/compatible-style-cn) * 3. 需要修改默认主题风格的场景,请使用 * const { appDialogDrawer } = FbaApp.useDialogDrawer(); * appDialogDrawer.open({}) * ``` */ export declare const dialogDrawer: { open: (props: DialogDrawerProps) => { close: () => void; }; /** * ``` * 1. 关闭最新弹框,如果有多个弹框只能关闭最后一个 * 2. 多个弹框主动关闭,只能使用 dialogDrawer.open()返回值中的close * ``` */ close: () => void; /** * ``` * 1. rerenderFooter 携带指定数据重新渲染 footer,可用于切换footer中的按钮状态 * ``` */ useDialogDrawer: () => { /** 重新渲染 footer, data为携带的数据,是footer的第二个参数 */ rerenderFooter: (data?: TPlainObject) => void; }; }; export {};