UNPKG

@flatbiz/antd

Version:
80 lines (77 loc) 2.63 kB
import { TAny } from '@flatbiz/utils'; import { PopconfirmProps, SwitchProps } from 'antd'; export type SwitchConfirmWrapperValue = string | number | boolean; export type SwitchConfirmWrapperProps = Omit<SwitchProps, "defaultChecked" | "onChange"> & { value?: SwitchConfirmWrapperValue; checkedValue: SwitchConfirmWrapperValue; unCheckedValue: SwitchConfirmWrapperValue; needConfirm?: "close" | "open" | "all" | "none"; noMessage?: boolean; onChange?: (value: SwitchConfirmWrapperValue) => void; popConfirmProps?: Pick<PopconfirmProps, "disabled" | "title" | "description"> | ((checked?: boolean) => Pick<PopconfirmProps, "disabled" | "title" | "description">); serviceConfig?: { onRequest: (value: SwitchConfirmWrapperValue) => TAny; message?: { success?: string; defaultError?: string; }; }; }; /** * * @description switch 切换时做二次pop提醒, 非可控组件【内部控制】 * @param props * @param value * @param checkedValue:选中状态值 * @param unCheckedValue:非选中状态值 * @param needConfirm:二次pop拦截时机 可不传 * close:switch 由开启转换成关闭时pop弹出 * open:switch 由开启转换成开启时pop弹出 * all:switch 一直pop * none:switch 不弹出 * @param noMessage:不采用内置message提示 * @param onChange:switch 有效切换回掉 * @param popConfirmProps:popConfirm中参数 disabled title description * @param serviceConfig onRequest * @field onRequest 请求函数 * @field message message配置 success defaultError * ``` * 1. 单独使用 * <SwitchConfirmWrapper * value={value} * checkedValue={'1'} * unCheckedValue={'2'} * serviceConfig={{ * onRequest: async () => { * await sleep(2000); * }, * }} * needConfirm={'all'} * popConfirmProps={{ * title: '确定要开启吗?', * }} * onChange={(value) => { * setValue(value as string); * }} * /> * * 2. 与Form.Item结合使用 * <Form.Item name="open"> * <SwitchConfirmWrapper * checkedValue={'1'} * unCheckedValue={'2'} * serviceConfig={{ * onRequest: async () => { * await sleep(2000); * }, * }} * needConfirm={'all'} * popConfirmProps={{ * title: '确定要开启吗?', * }} * /> * </Form.Item> * ``` */ export declare const SwitchConfirmWrapper: (props: SwitchConfirmWrapperProps) => import("react").JSX.Element; export {};