@tiny-codes/react-easy 1.0.10 → 1.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ## 1.0.11
6
+
7
+ 2025-6-26
8
+
9
+ ### Features
10
+
11
+ - ✨ Enhance `ConfirmAction` and `ModalAction` components that disable the cancel button while submitting
12
+
5
13
  ## 1.0.10
6
14
 
7
15
  2025-6-20
@@ -120,33 +120,54 @@ export var genRenderer = function genRenderer(defaultProps) {
120
120
  content: coloredText(content, contentColor),
121
121
  icon: coloredText(icon, (_ref2 = iconColor !== null && iconColor !== void 0 ? iconColor : fallbackColor) !== null && _ref2 !== void 0 ? _ref2 : 'warning'),
122
122
  autoFocusButton: null,
123
+ okButtonProps: _objectSpread(_objectSpread({}, danger ? {
124
+ type: 'primary',
125
+ danger: true
126
+ } : {}), okButtonProps !== null && okButtonProps !== void 0 ? okButtonProps : {}),
123
127
  onOk: function () {
124
128
  var _onOk2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
125
- var _triggerEventArgsRef$;
126
- var result;
129
+ var _triggerEventArgsRef$, result;
127
130
  return _regeneratorRuntime().wrap(function _callee$(_context) {
128
131
  while (1) switch (_context.prev = _context.next) {
129
132
  case 0:
130
- _context.next = 2;
133
+ _context.prev = 0;
134
+ api.update({
135
+ closable: true,
136
+ okButtonProps: _objectSpread({
137
+ loading: true
138
+ }, okButtonProps),
139
+ cancelButtonProps: {
140
+ disabled: true
141
+ }
142
+ });
143
+ _context.next = 4;
131
144
  return _onOk === null || _onOk === void 0 ? void 0 : _onOk.apply(void 0, _toConsumableArray((_triggerEventArgsRef$ = triggerEventArgsRef.current) !== null && _triggerEventArgsRef$ !== void 0 ? _triggerEventArgsRef$ : []));
132
- case 2:
145
+ case 4:
133
146
  result = _context.sent;
134
147
  afterOk === null || afterOk === void 0 || afterOk(result);
135
- case 4:
148
+ case 6:
149
+ _context.prev = 6;
150
+ api.update({
151
+ closable: false,
152
+ okButtonProps: {
153
+ loading: false
154
+ },
155
+ cancelButtonProps: {
156
+ disabled: false
157
+ }
158
+ });
159
+ return _context.finish(6);
160
+ case 9:
136
161
  case "end":
137
162
  return _context.stop();
138
163
  }
139
- }, _callee);
164
+ }, _callee, null, [[0,, 6, 9]]);
140
165
  }));
141
166
  function onOk() {
142
167
  return _onOk2.apply(this, arguments);
143
168
  }
144
169
  return onOk;
145
- }(),
146
- okButtonProps: _objectSpread(_objectSpread({}, danger ? {
147
- type: 'primary',
148
- danger: true
149
- } : {}), okButtonProps !== null && okButtonProps !== void 0 ? okButtonProps : {})
170
+ }()
150
171
  }, restProps));
151
172
  setConfirmApi(api);
152
173
  return api;
@@ -165,9 +186,11 @@ export var genRenderer = function genRenderer(defaultProps) {
165
186
  args[_key] = arguments[_key];
166
187
  }
167
188
  triggerEventArgsRef.current = args;
168
- showConfirm();
189
+ var api = showConfirm();
169
190
  if (triggerProps && typeof triggerProps[triggerEvent] === 'function') {
170
- triggerProps[triggerEvent].apply(triggerProps, args);
191
+ triggerProps[triggerEvent].apply(triggerProps, args.concat([{
192
+ api: api
193
+ }]));
171
194
  }
172
195
  }) : {}), {}, {
173
196
  children: (_children = triggerProps.children) !== null && _children !== void 0 ? _children : children
@@ -1 +1 @@
1
- {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iter","Array","from","isArray","_arrayLikeToArray","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","toString","test","len","arr2","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_toPropertyKey","_toPrimitive","String","toPrimitive","Number","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","forwardRef","useContext","useImperativeHandle","useRef","useState","App","Button","Modal","Switch","Typography","useToken","useContextValidator","useLocalizedText","useRefFunction","ReactEasyContext","jsx","_jsx","genRenderer","defaultProps","Render","props","ref","_restDefaults$trigger","_app$modal","_children","confirmType","restDefaults","_excluded","mergedProps","okButtonProps","cancelButtonProps","bodyProps","maskProps","wrapProps","triggerProps","style","context","defaultTitle","defaultDeletionConfirmTitle","defaultConfirmTitle","defaultContent","defaultDeletionConfirmContent","defaultConfirmContent","_mergedProps$triggerC","triggerComponent","Trigger","_mergedProps$triggerE","triggerEvent","danger","_mergedProps$title","title","_mergedProps$content","content","titleColor","contentColor","icon","iconColor","onOk","afterOk","children","restProps","_excluded2","app","useApp","modal","confirm","_useContext","localize","_useToken","_useToken2","token","_useState","_useState2","confirmApi","setConfirmApi","triggerEventArgsRef","fallbackColor","coloredText","text","color","_localize","textContent","Text","colorPrimary","showConfirm","_ref","_ref2","api","autoFocusButton","_onOk2","_callee","_triggerEventArgsRef$","result","_callee$","_context","current","show","_len","_key","withDefaultConfirmActionProps","WrappedComponent","WithDefaultProps","renderConfirmAction","forwarded","ConfirmAction","Link","whiteSpace"],"sources":["../../../src/components/ConfirmAction/index.tsx"],"sourcesContent":["import type { ComponentType, ForwardedRef, PropsWithoutRef, ReactElement, ReactNode, RefAttributes } from 'react';\nimport { forwardRef, useContext, useImperativeHandle, useRef, useState } from 'react';\nimport type { ButtonProps, ModalFuncProps, SwitchProps } from 'antd';\nimport { App, Button, Modal, Switch, Typography } from 'antd';\nimport type { ModalFunc } from 'antd/es/modal/confirm';\nimport type confirm from 'antd/es/modal/confirm';\nimport useToken from 'antd/es/theme/useToken';\nimport type { LinkProps } from 'antd/es/typography/Link';\nimport type { TextProps } from 'antd/es/typography/Text';\nimport useContextValidator from '../../hooks/useContextValidator';\nimport useLocalizedText from '../../hooks/useLocalizedText';\nimport useRefFunction from '../../hooks/useRefFunction';\nimport ReactEasyContext from '../ConfigProvider/context';\n\nexport type ConfirmActionProps<TP extends object, E extends keyof TP> = Omit<ModalFuncProps, 'onOk'> &\n ConfirmActionTrigger<TP, E> & {\n /**\n * **EN:** Whether to display in red danger mode, which will automatically affect the color of\n * the title, icon, and confirm button. Default is `false`, for DeleteConfirmAction, the\n * defaults is `true`.\n *\n * - You can explicitly set `titleColor`, `iconColor`, and `okButtonProps.type` to override\n *\n * **CN:** 是否显示为红色危险模式,会自动影响标题、图标和确认按钮的颜色。默认`false`,DeleteConfirmAction组件的默认值为`true`。\n *\n * - 可以显式设置`titleColor`、`iconColor`和`okButtonProps.type`来覆盖\n */\n danger?: boolean;\n /**\n * **EN:** The color of confirm box title, default is `warning`\n *\n * **CN:** 弹框标题颜色,默认`warning`\n */\n titleColor?: TextProps['type'] | 'primary';\n /**\n * **EN:** The color of confirm box content\n *\n * **CN:** 弹框内容文本颜色\n */\n contentColor?: TextProps['type'] | 'primary';\n /**\n * **EN:** The color of confirm box title icon, default is the same as `titleColor`\n *\n * **CN:** 弹框标题图标颜色,默认与`titleColor`相同\n */\n iconColor?: TextProps['type'] | 'primary';\n /**\n * **EN:** Callback when click confirm button\n *\n * **CN:** 点击确认按钮的回调\n */\n // @ts-expect-error: because TP[E] should be casted to function type\n onOk?: (...args: Parameters<TP[E]>) => unknown | Promise<unknown>;\n /**\n * **EN:** Callback after confirm event, won't trigger if failed, the argument is the return\n * value of `onOk`\n *\n * **CN:** 确认事件完成后的回调,失败时不会触发,参数为`onOk`的返回值\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n afterOk?: (data?: any) => void;\n };\n\nexport interface ConfirmActionTrigger<TP extends object, E extends keyof TP> {\n /**\n * **EN:** Trigger component, trigger to show confirm box\n *\n * **CN:** 触发器组件,触发显示确认弹框\n */\n triggerComponent?: ComponentType<TP>;\n /**\n * **EN:** Props of trigger component\n *\n * **CN:** 触发器组件的Props属性\n */\n triggerProps?: TP;\n /**\n * **EN:** The event name that triggers the dialog\n *\n * **CN:** 触发弹窗的事件名称\n *\n * - `Button`: 'onClick'\n * - `Switch`: 'onChange'\n * - `Link`: 'onClick'\n */\n triggerEvent?: E;\n /**\n * **EN:** Custom trigger content\n *\n * **CN:** 自定义触发器内容\n */\n children?: ReactNode;\n}\nexport type ConfirmActionRef = ReturnType<typeof confirm> & {\n /**\n * **EN:** Show confirm box\n *\n * **CN:** 显示确认弹框\n */\n show: (props?: Parameters<ModalFunc>[0]) => ReturnType<ModalFunc>;\n};\n\n/**\n * **EN:** Generate a confirm box component\n *\n * **CN:** 生成一个确认弹框组件\n *\n * @param defaultProps Default props | 默认属性\n *\n * @returns Component render method | 组件render方法\n */\nexport const genRenderer = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n defaultProps: Partial<ConfirmActionProps<any, never>> & { confirmType: 'normal' | 'delete' }\n) => {\n const Render = <TP extends object, E extends keyof TP>(\n props: ConfirmActionProps<TP, E>,\n ref: ForwardedRef<ConfirmActionRef>\n ) => {\n const { confirmType, ...restDefaults } = defaultProps;\n const mergedProps: ConfirmActionProps<TP, E> = {\n ...restDefaults,\n ...props,\n okButtonProps: {\n ...restDefaults.okButtonProps,\n ...props.okButtonProps,\n },\n cancelButtonProps: {\n ...restDefaults.cancelButtonProps,\n ...props.cancelButtonProps,\n },\n bodyProps: {\n ...restDefaults.bodyProps,\n ...props.bodyProps,\n },\n maskProps: {\n ...restDefaults.maskProps,\n ...props.maskProps,\n },\n wrapProps: {\n ...restDefaults.wrapProps,\n ...props.wrapProps,\n },\n triggerProps: {\n ...restDefaults.triggerProps,\n ...props.triggerProps,\n style: {\n ...restDefaults.triggerProps?.style,\n ...(props.triggerProps && 'style' in props.triggerProps && typeof props.triggerProps.style === 'object'\n ? props.triggerProps.style\n : {}),\n },\n } as TP,\n };\n const context = useContext(ReactEasyContext);\n const defaultTitle = useLocalizedText(\n confirmType === 'delete' ? context.defaultDeletionConfirmTitle : context.defaultConfirmTitle\n );\n const defaultContent = useLocalizedText(\n confirmType === 'delete' ? context.defaultDeletionConfirmContent : context.defaultConfirmContent\n );\n const {\n triggerComponent: Trigger = Button,\n triggerEvent = 'onClick' as E,\n triggerProps,\n danger,\n title = defaultTitle,\n content = defaultContent,\n titleColor,\n contentColor,\n icon,\n iconColor,\n okButtonProps,\n onOk,\n afterOk,\n children,\n ...restProps\n } = mergedProps;\n\n useContextValidator();\n\n const app = App.useApp();\n // @ts-expect-error: because app may return a stub object when App is not used\n const modal = app.modal?.confirm ? app.modal : Modal;\n const { localize } = useContext(ReactEasyContext);\n const [, token] = useToken();\n const [confirmApi, setConfirmApi] = useState<ReturnType<typeof confirm>>();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const triggerEventArgsRef = useRef<any[]>(undefined);\n\n const fallbackColor = danger ? 'danger' : undefined;\n // Text with color\n const coloredText = (text: ReactNode, color?: TextProps['type'] | 'primary') => {\n const textContent = typeof text === 'string' ? (localize?.(text) ?? text) : text;\n if (!color) {\n return textContent;\n }\n if (color === 'primary') {\n return <Typography.Text style={{ color: token.colorPrimary }}>{textContent}</Typography.Text>;\n }\n return textContent ? <Typography.Text type={color}>{textContent}</Typography.Text> : undefined;\n };\n\n // Show confirm box\n const showConfirm: ConfirmActionRef['show'] = useRefFunction(() => {\n const api = modal.confirm({\n title: coloredText(title, titleColor ?? fallbackColor ?? 'warning'),\n content: coloredText(content, contentColor),\n icon: coloredText(icon, iconColor ?? fallbackColor ?? 'warning'),\n autoFocusButton: null,\n onOk: async () => {\n const result = await onOk?.(...((triggerEventArgsRef.current ?? []) as Parameters<typeof onOk>));\n afterOk?.(result);\n },\n okButtonProps: {\n ...(danger ? { type: 'primary', danger: true } : {}),\n ...(okButtonProps ?? {}),\n },\n ...restProps,\n });\n setConfirmApi(api);\n return api;\n });\n\n // Output ref\n useImperativeHandle(ref, () => ({ show: showConfirm, ...confirmApi! }), [showConfirm, confirmApi]);\n\n // Render trigger component\n return (\n <Trigger\n {...triggerProps}\n // Trigger event\n {...((triggerEvent\n ? {\n [triggerEvent]: (...args: any[]) => {\n triggerEventArgsRef.current = args;\n showConfirm();\n if (triggerProps && typeof triggerProps[triggerEvent] === 'function') {\n (triggerProps[triggerEvent] as (...args: any[]) => void)(...args);\n }\n },\n }\n : {}) as TP)}\n >\n {(triggerProps as { children?: ReactNode }).children ?? children}\n </Trigger>\n );\n };\n Render.displayName = 'ConfirmAction';\n return Render;\n};\n\n/**\n * **EN:** Add default properties to the ConfirmAction component\n *\n * **CN:** 给ConfirmAction组件添加默认属性\n *\n * @param WrappedComponent ConfirmAction component | ConfirmAction组件\n * @param defaultProps Default properties | 默认属性\n */\nexport const withDefaultConfirmActionProps = <TP extends object, E extends keyof TP>(\n WrappedComponent: ComponentType<PropsWithoutRef<ConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>>,\n defaultProps?: Partial<ConfirmActionProps<TP, E>>\n) => {\n const WithDefaultProps = forwardRef<ConfirmActionRef, ConfirmActionProps<TP, E>>((props, ref) => {\n const mergedProps: ConfirmActionProps<TP, E> = {\n ...defaultProps,\n ...props,\n triggerProps: {\n ...defaultProps?.triggerProps,\n ...props.triggerProps,\n } as TP,\n };\n return <WrappedComponent ref={ref} {...mergedProps} />;\n });\n WithDefaultProps.displayName = 'ForwardedRef(WithDefaultProps)';\n return WithDefaultProps;\n};\n\nconst renderConfirmAction = genRenderer({\n confirmType: 'normal',\n});\nconst forwarded = forwardRef(renderConfirmAction);\nforwarded.displayName = 'ForwardedRef(ConfirmAction)';\n\n/**\n * **EN:** Interface of generic type component\n *\n * **CN:** 泛型组件的接口\n */\nexport type GenericConfirmActionInterface = <TP extends object, E extends keyof TP>(\n props: PropsWithoutRef<TypedConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>\n) => ReactElement;\n\n/**\n * **EN:** Interface of specific type component\n *\n * **CN:** 具体类型组件的接口\n */\nexport type TypedConfirmActionInterface<TP extends object, E extends keyof TP> = ComponentType<\n PropsWithoutRef<TypedConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>\n>;\n\n/**\n * **EN:** Props definition of specific type component\n *\n * **CN:** 具体类型组件的Props定义\n */\ntype TypedConfirmActionProps<TP extends object, E extends keyof TP> = Omit<\n ConfirmActionProps<TP, E>,\n 'triggerComponent' | 'triggerEvent'\n>;\nexport type ConfirmActionWithStatic = GenericConfirmActionInterface & {\n /**\n * **EN:** Confirm box with button trigger\n *\n * **CN:** 按钮类型的确认框\n */\n Button: TypedConfirmActionInterface<ButtonProps, 'onClick'>;\n /**\n * **EN:** Confirm box with switch trigger\n *\n * **CN:** 开关类型的确认框\n */\n Switch: TypedConfirmActionInterface<SwitchProps, 'onChange'>;\n /**\n * **EN:** Confirm box with link trigger\n *\n * **CN:** 链接类型的确认框\n */\n Link: TypedConfirmActionInterface<LinkProps, 'onClick'>;\n};\n\n/**\n * **EN:** Confirm box component with trigger\n *\n * **CN:** 带触发器的确认框组件\n */\nconst ConfirmAction = forwarded as unknown as ConfirmActionWithStatic;\n// Type of button\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Button = withDefaultConfirmActionProps<ButtonProps, 'onClick'>(forwarded as any, {\n triggerComponent: Button,\n triggerEvent: 'onClick',\n triggerProps: {},\n});\n// Type of switch\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Switch = withDefaultConfirmActionProps<SwitchProps, 'onChange'>(forwarded as any, {\n triggerComponent: Switch,\n triggerEvent: 'onChange',\n triggerProps: {},\n});\n// Type of link\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Link = withDefaultConfirmActionProps<LinkProps, 'onClick'>(forwarded as any, {\n triggerComponent: Typography.Link,\n triggerEvent: 'onClick',\n triggerProps: {\n style: { whiteSpace: 'nowrap' },\n },\n});\n\nexport default ConfirmAction;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iter","Array","from","isArray","_arrayLikeToArray","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","toString","test","len","arr2","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_toPropertyKey","_toPrimitive","String","toPrimitive","Number","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","forwardRef","useContext","useImperativeHandle","useRef","useState","App","Button","Modal","Switch","Typography","useToken","useContextValidator","useLocalizedText","useRefFunction","ReactEasyContext","jsx","_jsx","genRenderer","defaultProps","Render","props","ref","_restDefaults$trigger","_app$modal","_children","confirmType","restDefaults","_excluded","mergedProps","okButtonProps","cancelButtonProps","bodyProps","maskProps","wrapProps","triggerProps","style","context","defaultTitle","defaultDeletionConfirmTitle","defaultConfirmTitle","defaultContent","defaultDeletionConfirmContent","defaultConfirmContent","_mergedProps$triggerC","triggerComponent","Trigger","_mergedProps$triggerE","triggerEvent","danger","_mergedProps$title","title","_mergedProps$content","content","titleColor","contentColor","icon","iconColor","onOk","afterOk","children","restProps","_excluded2","app","useApp","modal","confirm","_useContext","localize","_useToken","_useToken2","token","_useState","_useState2","confirmApi","setConfirmApi","triggerEventArgsRef","fallbackColor","coloredText","text","color","_localize","textContent","Text","colorPrimary","showConfirm","_ref","_ref2","api","autoFocusButton","_onOk2","_callee","_triggerEventArgsRef$","result","_callee$","_context","update","closable","loading","disabled","current","show","_len","_key","concat","withDefaultConfirmActionProps","WrappedComponent","WithDefaultProps","renderConfirmAction","forwarded","ConfirmAction","Link","whiteSpace"],"sources":["../../../src/components/ConfirmAction/index.tsx"],"sourcesContent":["import type { ComponentType, ForwardedRef, PropsWithoutRef, ReactElement, ReactNode, RefAttributes } from 'react';\nimport { forwardRef, useContext, useImperativeHandle, useRef, useState } from 'react';\nimport type { ButtonProps, ModalFuncProps, SwitchProps } from 'antd';\nimport { App, Button, Modal, Switch, Typography } from 'antd';\nimport type { ModalFunc } from 'antd/es/modal/confirm';\nimport type confirm from 'antd/es/modal/confirm';\nimport useToken from 'antd/es/theme/useToken';\nimport type { LinkProps } from 'antd/es/typography/Link';\nimport type { TextProps } from 'antd/es/typography/Text';\nimport useContextValidator from '../../hooks/useContextValidator';\nimport useLocalizedText from '../../hooks/useLocalizedText';\nimport useRefFunction from '../../hooks/useRefFunction';\nimport ReactEasyContext from '../ConfigProvider/context';\n\nexport type ConfirmActionProps<TP extends object, E extends keyof TP> = Omit<ModalFuncProps, 'onOk'> &\n ConfirmActionTrigger<TP, E> & {\n /**\n * **EN:** Whether to display in red danger mode, which will automatically affect the color of\n * the title, icon, and confirm button. Default is `false`, for DeleteConfirmAction, the\n * defaults is `true`.\n *\n * - You can explicitly set `titleColor`, `iconColor`, and `okButtonProps.type` to override\n *\n * **CN:** 是否显示为红色危险模式,会自动影响标题、图标和确认按钮的颜色。默认`false`,DeleteConfirmAction组件的默认值为`true`。\n *\n * - 可以显式设置`titleColor`、`iconColor`和`okButtonProps.type`来覆盖\n */\n danger?: boolean;\n /**\n * **EN:** The color of confirm box title, default is `warning`\n *\n * **CN:** 弹框标题颜色,默认`warning`\n */\n titleColor?: TextProps['type'] | 'primary';\n /**\n * **EN:** The color of confirm box content\n *\n * **CN:** 弹框内容文本颜色\n */\n contentColor?: TextProps['type'] | 'primary';\n /**\n * **EN:** The color of confirm box title icon, default is the same as `titleColor`\n *\n * **CN:** 弹框标题图标颜色,默认与`titleColor`相同\n */\n iconColor?: TextProps['type'] | 'primary';\n /**\n * **EN:** Callback when click confirm button\n *\n * **CN:** 点击确认按钮的回调\n */\n // @ts-expect-error: because TP[E] should be casted to function type\n onOk?: (...args: Parameters<TP[E]>) => unknown | Promise<unknown>;\n /**\n * **EN:** Callback after confirm event, won't trigger if failed, the argument is the return\n * value of `onOk`\n *\n * **CN:** 确认事件完成后的回调,失败时不会触发,参数为`onOk`的返回值\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n afterOk?: (data?: any) => void;\n };\n\nexport interface ConfirmActionTrigger<TP extends object, E extends keyof TP> {\n /**\n * **EN:** Trigger component, trigger to show confirm box\n *\n * **CN:** 触发器组件,触发显示确认弹框\n */\n triggerComponent?: ComponentType<TP>;\n /**\n * **EN:** Props of trigger component\n *\n * **CN:** 触发器组件的Props属性\n */\n triggerProps?: TP;\n /**\n * **EN:** The event name that triggers the dialog\n *\n * **CN:** 触发弹窗的事件名称\n *\n * - `Button`: 'onClick'\n * - `Switch`: 'onChange'\n * - `Link`: 'onClick'\n */\n triggerEvent?: E;\n /**\n * **EN:** Custom trigger content\n *\n * **CN:** 自定义触发器内容\n */\n children?: ReactNode;\n}\nexport type ConfirmActionRef = ReturnType<typeof confirm> & {\n /**\n * **EN:** Show confirm box\n *\n * **CN:** 显示确认弹框\n */\n show: (props?: Parameters<ModalFunc>[0]) => ReturnType<ModalFunc>;\n};\n\n/**\n * **EN:** Generate a confirm box component\n *\n * **CN:** 生成一个确认弹框组件\n *\n * @param defaultProps Default props | 默认属性\n *\n * @returns Component render method | 组件render方法\n */\nexport const genRenderer = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n defaultProps: Partial<ConfirmActionProps<any, never>> & { confirmType: 'normal' | 'delete' }\n) => {\n const Render = <TP extends object, E extends keyof TP>(\n props: ConfirmActionProps<TP, E>,\n ref: ForwardedRef<ConfirmActionRef>\n ) => {\n const { confirmType, ...restDefaults } = defaultProps;\n const mergedProps: ConfirmActionProps<TP, E> = {\n ...restDefaults,\n ...props,\n okButtonProps: {\n ...restDefaults.okButtonProps,\n ...props.okButtonProps,\n },\n cancelButtonProps: {\n ...restDefaults.cancelButtonProps,\n ...props.cancelButtonProps,\n },\n bodyProps: {\n ...restDefaults.bodyProps,\n ...props.bodyProps,\n },\n maskProps: {\n ...restDefaults.maskProps,\n ...props.maskProps,\n },\n wrapProps: {\n ...restDefaults.wrapProps,\n ...props.wrapProps,\n },\n triggerProps: {\n ...restDefaults.triggerProps,\n ...props.triggerProps,\n style: {\n ...restDefaults.triggerProps?.style,\n ...(props.triggerProps && 'style' in props.triggerProps && typeof props.triggerProps.style === 'object'\n ? props.triggerProps.style\n : {}),\n },\n } as TP,\n };\n const context = useContext(ReactEasyContext);\n const defaultTitle = useLocalizedText(\n confirmType === 'delete' ? context.defaultDeletionConfirmTitle : context.defaultConfirmTitle\n );\n const defaultContent = useLocalizedText(\n confirmType === 'delete' ? context.defaultDeletionConfirmContent : context.defaultConfirmContent\n );\n const {\n triggerComponent: Trigger = Button,\n triggerEvent = 'onClick' as E,\n triggerProps,\n danger,\n title = defaultTitle,\n content = defaultContent,\n titleColor,\n contentColor,\n icon,\n iconColor,\n okButtonProps,\n onOk,\n afterOk,\n children,\n ...restProps\n } = mergedProps;\n\n useContextValidator();\n\n const app = App.useApp();\n // @ts-expect-error: because app may return a stub object when App is not used\n const modal = app.modal?.confirm ? app.modal : Modal;\n const { localize } = useContext(ReactEasyContext);\n const [, token] = useToken();\n const [confirmApi, setConfirmApi] = useState<ReturnType<typeof confirm>>();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const triggerEventArgsRef = useRef<any[]>(undefined);\n\n const fallbackColor = danger ? 'danger' : undefined;\n // Text with color\n const coloredText = (text: ReactNode, color?: TextProps['type'] | 'primary') => {\n const textContent = typeof text === 'string' ? (localize?.(text) ?? text) : text;\n if (!color) {\n return textContent;\n }\n if (color === 'primary') {\n return <Typography.Text style={{ color: token.colorPrimary }}>{textContent}</Typography.Text>;\n }\n return textContent ? <Typography.Text type={color}>{textContent}</Typography.Text> : undefined;\n };\n\n // Show confirm box\n const showConfirm: ConfirmActionRef['show'] = useRefFunction(() => {\n const api = modal.confirm({\n title: coloredText(title, titleColor ?? fallbackColor ?? 'warning'),\n content: coloredText(content, contentColor),\n icon: coloredText(icon, iconColor ?? fallbackColor ?? 'warning'),\n autoFocusButton: null,\n okButtonProps: {\n ...(danger ? { type: 'primary', danger: true } : {}),\n ...(okButtonProps ?? {}),\n },\n onOk: async () => {\n try {\n api.update({\n closable: true,\n okButtonProps: {\n loading: true,\n ...okButtonProps,\n },\n cancelButtonProps: {\n disabled: true,\n },\n });\n const result = await onOk?.(...((triggerEventArgsRef.current ?? []) as Parameters<typeof onOk>));\n afterOk?.(result);\n } finally {\n api.update({\n closable: false,\n okButtonProps: {\n loading: false,\n },\n cancelButtonProps: {\n disabled: false,\n },\n });\n }\n },\n ...restProps,\n });\n setConfirmApi(api);\n return api;\n });\n\n // Output ref\n useImperativeHandle(ref, () => ({ show: showConfirm, ...confirmApi! }), [showConfirm, confirmApi]);\n\n // Render trigger component\n return (\n <Trigger\n {...triggerProps}\n // Trigger event\n {...((triggerEvent\n ? {\n [triggerEvent]: (...args: any[]) => {\n triggerEventArgsRef.current = args;\n const api = showConfirm();\n if (triggerProps && typeof triggerProps[triggerEvent] === 'function') {\n (triggerProps[triggerEvent] as (...args: any[]) => void)(...args, { api });\n }\n },\n }\n : {}) as TP)}\n >\n {(triggerProps as { children?: ReactNode }).children ?? children}\n </Trigger>\n );\n };\n Render.displayName = 'ConfirmAction';\n return Render;\n};\n\n/**\n * **EN:** Add default properties to the ConfirmAction component\n *\n * **CN:** 给ConfirmAction组件添加默认属性\n *\n * @param WrappedComponent ConfirmAction component | ConfirmAction组件\n * @param defaultProps Default properties | 默认属性\n */\nexport const withDefaultConfirmActionProps = <TP extends object, E extends keyof TP>(\n WrappedComponent: ComponentType<PropsWithoutRef<ConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>>,\n defaultProps?: Partial<ConfirmActionProps<TP, E>>\n) => {\n const WithDefaultProps = forwardRef<ConfirmActionRef, ConfirmActionProps<TP, E>>((props, ref) => {\n const mergedProps: ConfirmActionProps<TP, E> = {\n ...defaultProps,\n ...props,\n triggerProps: {\n ...defaultProps?.triggerProps,\n ...props.triggerProps,\n } as TP,\n };\n return <WrappedComponent ref={ref} {...mergedProps} />;\n });\n WithDefaultProps.displayName = 'ForwardedRef(WithDefaultProps)';\n return WithDefaultProps;\n};\n\nconst renderConfirmAction = genRenderer({\n confirmType: 'normal',\n});\nconst forwarded = forwardRef(renderConfirmAction);\nforwarded.displayName = 'ForwardedRef(ConfirmAction)';\n\n/**\n * **EN:** Interface of generic type component\n *\n * **CN:** 泛型组件的接口\n */\nexport type GenericConfirmActionInterface = <TP extends object, E extends keyof TP>(\n props: PropsWithoutRef<TypedConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>\n) => ReactElement;\n\n/**\n * **EN:** Interface of specific type component\n *\n * **CN:** 具体类型组件的接口\n */\nexport type TypedConfirmActionInterface<TP extends object, E extends keyof TP> = ComponentType<\n PropsWithoutRef<TypedConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>\n>;\n\n/**\n * **EN:** Props definition of specific type component\n *\n * **CN:** 具体类型组件的Props定义\n */\ntype TypedConfirmActionProps<TP extends object, E extends keyof TP> = Omit<\n ConfirmActionProps<TP, E>,\n 'triggerComponent' | 'triggerEvent'\n>;\nexport type ConfirmActionWithStatic = GenericConfirmActionInterface & {\n /**\n * **EN:** Confirm box with button trigger\n *\n * **CN:** 按钮类型的确认框\n */\n Button: TypedConfirmActionInterface<ButtonProps, 'onClick'>;\n /**\n * **EN:** Confirm box with switch trigger\n *\n * **CN:** 开关类型的确认框\n */\n Switch: TypedConfirmActionInterface<SwitchProps, 'onChange'>;\n /**\n * **EN:** Confirm box with link trigger\n *\n * **CN:** 链接类型的确认框\n */\n Link: TypedConfirmActionInterface<LinkProps, 'onClick'>;\n};\n\n/**\n * **EN:** Confirm box component with trigger\n *\n * **CN:** 带触发器的确认框组件\n */\nconst ConfirmAction = forwarded as unknown as ConfirmActionWithStatic;\n// Type of button\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Button = withDefaultConfirmActionProps<ButtonProps, 'onClick'>(forwarded as any, {\n triggerComponent: Button,\n triggerEvent: 'onClick',\n triggerProps: {},\n});\n// Type of switch\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Switch = withDefaultConfirmActionProps<SwitchProps, 'onChange'>(forwarded as any, {\n triggerComponent: Switch,\n triggerEvent: 'onChange',\n triggerProps: {},\n});\n// Type of link\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Link = withDefaultConfirmActionProps<LinkProps, 'onClick'>(forwarded as any, {\n triggerComponent: Typography.Link,\n triggerEvent: 'onClick',\n triggerProps: {\n style: { whiteSpace: 'nowrap' },\n },\n});\n\nexport default ConfirmAction;\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- var _excluded = ["formComp", "formProps", "triggerComponent", "triggerEvent", "triggerProps", "open", "destroyOnClose", "destroyOnHidden", "maskClosable", "onOk", "afterOk", "onCancel", "afterClose", "children"];
1
+ var _excluded = ["formComp", "formProps", "triggerComponent", "triggerEvent", "triggerProps", "open", "destroyOnClose", "destroyOnHidden", "maskClosable", "okButtonProps", "cancelButtonProps", "onOk", "afterOk", "onCancel", "afterClose", "children"];
2
2
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
3
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
4
4
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
@@ -60,6 +60,8 @@ export var genModalActionRenderer = function genModalActionRenderer(defaultProps
60
60
  destroyOnHidden = _mergedProps$destroyO2 === void 0 ? true : _mergedProps$destroyO2,
61
61
  _mergedProps$maskClos = _mergedProps.maskClosable,
62
62
  maskClosable = _mergedProps$maskClos === void 0 ? false : _mergedProps$maskClos,
63
+ okButtonProps = _mergedProps.okButtonProps,
64
+ cancelButtonProps = _mergedProps.cancelButtonProps,
63
65
  onOk = _mergedProps.onOk,
64
66
  afterOk = _mergedProps.afterOk,
65
67
  onCancel = _mergedProps.onCancel,
@@ -174,73 +176,74 @@ export var genModalActionRenderer = function genModalActionRenderer(defaultProps
174
176
  destroyOnClose: destroyOnClose,
175
177
  destroyOnHidden: destroyOnHidden,
176
178
  maskClosable: maskClosable,
177
- onOk: ( /*#__PURE__*/function () {
178
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(e) {
179
- var formData, _saveFuncRef$current, _triggerEventArgsRef$, _ref3, _triggerEventArgsRef$2, result;
180
- return _regeneratorRuntime().wrap(function _callee$(_context) {
181
- while (1) switch (_context.prev = _context.next) {
182
- case 0:
183
- _context.prev = 0;
184
- _context.next = 3;
185
- return form === null || form === void 0 ? void 0 : form.validateFields();
186
- case 3:
187
- formData = _context.sent;
188
- _context.next = 9;
179
+ okButtonProps: _objectSpread({
180
+ loading: isSaving
181
+ }, okButtonProps),
182
+ cancelButtonProps: _objectSpread({
183
+ disabled: isSaving
184
+ }, cancelButtonProps),
185
+ onOk: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
186
+ var formData, _saveFuncRef$current, _triggerEventArgsRef$, _ref3, _triggerEventArgsRef$2, result;
187
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
188
+ while (1) switch (_context.prev = _context.next) {
189
+ case 0:
190
+ _context.prev = 0;
191
+ _context.next = 3;
192
+ return form === null || form === void 0 ? void 0 : form.validateFields();
193
+ case 3:
194
+ formData = _context.sent;
195
+ _context.next = 9;
196
+ break;
197
+ case 6:
198
+ _context.prev = 6;
199
+ _context.t0 = _context["catch"](0);
200
+ return _context.abrupt("return");
201
+ case 9:
202
+ if (Object.keys(formData).length === 0) {
203
+ console.warn('form.getFieldsValue() is empty. Please use the form instance passed to formComp instead of creating the form instance yourself.');
204
+ }
205
+ _context.prev = 10;
206
+ setIsSaving(true);
207
+ // First call onSave of the form component
208
+ _context.next = 14;
209
+ return (_saveFuncRef$current = saveFuncRef.current) === null || _saveFuncRef$current === void 0 ? void 0 : _saveFuncRef$current.call.apply(_saveFuncRef$current, [saveFuncRef, formData].concat(_toConsumableArray((_triggerEventArgsRef$ = triggerEventArgsRef.current) !== null && _triggerEventArgsRef$ !== void 0 ? _triggerEventArgsRef$ : [])));
210
+ case 14:
211
+ result = _context.sent;
212
+ if (!(result === SubmitWithoutClosingSymbol)) {
213
+ _context.next = 17;
189
214
  break;
190
- case 6:
191
- _context.prev = 6;
192
- _context.t0 = _context["catch"](0);
193
- return _context.abrupt("return");
194
- case 9:
195
- if (Object.keys(formData).length === 0) {
196
- console.warn('form.getFieldsValue() is empty. Please use the form instance passed to formComp instead of creating the form instance yourself.');
197
- }
198
- _context.prev = 10;
199
- setIsSaving(true);
200
- // First call onSave of the form component
201
- _context.next = 14;
202
- return (_saveFuncRef$current = saveFuncRef.current) === null || _saveFuncRef$current === void 0 ? void 0 : _saveFuncRef$current.call.apply(_saveFuncRef$current, [saveFuncRef, formData].concat(_toConsumableArray((_triggerEventArgsRef$ = triggerEventArgsRef.current) !== null && _triggerEventArgsRef$ !== void 0 ? _triggerEventArgsRef$ : [])));
203
- case 14:
204
- result = _context.sent;
205
- if (!(result === SubmitWithoutClosingSymbol)) {
206
- _context.next = 17;
207
- break;
208
- }
209
- throw new Error('SubmitWithoutClosing');
210
- case 17:
211
- _context.next = 19;
212
- return onOk === null || onOk === void 0 ? void 0 : onOk.apply(void 0, [(_ref3 = result) !== null && _ref3 !== void 0 ? _ref3 : formData].concat(_toConsumableArray((_triggerEventArgsRef$2 = triggerEventArgsRef.current) !== null && _triggerEventArgsRef$2 !== void 0 ? _triggerEventArgsRef$2 : [])));
213
- case 19:
214
- result = _context.sent;
215
- if (!(result === SubmitWithoutClosingSymbol)) {
216
- _context.next = 22;
217
- break;
218
- }
219
- throw new Error('SubmitWithoutClosing');
220
- case 22:
221
- // If onOK is successful, close the dialog and trigger the afterOk event
222
- hideModal();
223
- afterOk === null || afterOk === void 0 || afterOk(result);
224
- _context.next = 29;
215
+ }
216
+ throw new Error('SubmitWithoutClosing');
217
+ case 17:
218
+ _context.next = 19;
219
+ return onOk === null || onOk === void 0 ? void 0 : onOk.apply(void 0, [(_ref3 = result) !== null && _ref3 !== void 0 ? _ref3 : formData].concat(_toConsumableArray((_triggerEventArgsRef$2 = triggerEventArgsRef.current) !== null && _triggerEventArgsRef$2 !== void 0 ? _triggerEventArgsRef$2 : [])));
220
+ case 19:
221
+ result = _context.sent;
222
+ if (!(result === SubmitWithoutClosingSymbol)) {
223
+ _context.next = 22;
225
224
  break;
226
- case 26:
227
- _context.prev = 26;
228
- _context.t1 = _context["catch"](10);
229
- console.error(_context.t1);
230
- case 29:
231
- _context.prev = 29;
232
- setIsSaving(false);
233
- return _context.finish(29);
234
- case 32:
235
- case "end":
236
- return _context.stop();
237
- }
238
- }, _callee, null, [[0, 6], [10, 26, 29, 32]]);
239
- }));
240
- return function (_x) {
241
- return _ref2.apply(this, arguments);
242
- };
243
- }()),
225
+ }
226
+ throw new Error('SubmitWithoutClosing');
227
+ case 22:
228
+ // If onOK is successful, close the dialog and trigger the afterOk event
229
+ hideModal();
230
+ afterOk === null || afterOk === void 0 || afterOk(result);
231
+ _context.next = 29;
232
+ break;
233
+ case 26:
234
+ _context.prev = 26;
235
+ _context.t1 = _context["catch"](10);
236
+ console.error(_context.t1);
237
+ case 29:
238
+ _context.prev = 29;
239
+ setIsSaving(false);
240
+ return _context.finish(29);
241
+ case 32:
242
+ case "end":
243
+ return _context.stop();
244
+ }
245
+ }, _callee, null, [[0, 6], [10, 26, 29, 32]]);
246
+ })),
244
247
  onCancel: ( /*#__PURE__*/function () {
245
248
  var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(e) {
246
249
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
@@ -254,7 +257,7 @@ export var genModalActionRenderer = function genModalActionRenderer(defaultProps
254
257
  }
255
258
  }, _callee2);
256
259
  }));
257
- return function (_x2) {
260
+ return function (_x) {
258
261
  return _ref4.apply(this, arguments);
259
262
  };
260
263
  }()),
@@ -1 +1 @@
1
- {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iter","Array","from","isArray","_arrayLikeToArray","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_toPropertyKey","_toPrimitive","String","toPrimitive","Number","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","toString","test","len","arr2","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","Button","Form","Modal","Switch","Typography","isForwardRef","useContextValidator","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SubmitWithoutClosingSymbol","genModalActionRenderer","defaultProps","ModalActionRenderer","props","ref","_children","_useState","_useState2","userModalProps","setUserModalProps","mergedProps","mergeProps","_mergedProps","formComp","formProps","_mergedProps$triggerC","triggerComponent","Trigger","_mergedProps$triggerE","triggerEvent","triggerProps","openInProps","open","_mergedProps$destroyO","destroyOnClose","_mergedProps$destroyO2","destroyOnHidden","_mergedProps$maskClos","maskClosable","onOk","afterOk","onCancel","afterClose","children","restProps","_excluded","FormComp","triggerEventArgsRef","_useState3","_useState4","setOpen","saveFuncRef","_useState5","_useState6","isSaving","setIsSaving","_useState7","_useState8","formCompRef","setFormCompRef","_useState9","_useState10","form","setForm","formRef","current","destroyOnCloseRef","openListenerRef","resetFields","showInProps","show","showTrigger","showModal","_openListenerRef$curr","hideModal","_openListenerRef$curr2","setOpenListener","listener","_openListenerRef$curr3","setOnSaveHandler","handler","handleSetOpen","_openListenerRef$curr4","_len","_key","confirmLoading","_ref2","_callee","formData","_saveFuncRef$current","_triggerEventArgsRef$","_ref3","_triggerEventArgsRef$2","result","_callee$","_context","validateFields","t0","console","warn","concat","t1","_x","_ref4","_callee2","_callee2$","_context2","_x2","FormCreator","onCreate","onOpenChange","onSave","triggerEventData","updateModalProps","first","second","okButtonProps","cancelButtonProps","bodyProps","maskProps","wrapProps","style","onCreateRef","_Form$useForm","useForm","_Form$useForm2","withDefaultModalActionProps","WrappedComponent","WithDefaultProps","useDefaultProps","defaults","renderModalAction","forwardedModalAction","addTriggers","comp","patchedComp","Link","whiteSpace","ModalAction","SubmitWithoutClosing","withModalAction","withForm"],"sources":["../../../src/components/ModalAction/index.tsx"],"sourcesContent":["import type { ComponentType, FC, ForwardedRef, ReactElement, ReactNode, RefAttributes } from 'react';\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport type { ButtonProps, FormInstance, ModalProps, SwitchProps } from 'antd';\nimport { Button, Form, Modal, Switch, Typography } from 'antd';\nimport type { LinkProps } from 'antd/es/typography/Link';\nimport { isForwardRef } from 'react-is';\nimport useContextValidator from '../../hooks/useContextValidator';\n\n/**\n * **EN:** Symbol for not closing the dialog when submitting the form, which takes effect when\n * returning in the `onSave` event of the editing form component\n *\n * **CN:** 提交表单时不关闭弹框的Symbol,在编辑表单组件的`onSave`事件中返回时生效\n */\nexport const SubmitWithoutClosingSymbol = Symbol('[SubmitWithoutClose]');\n\nexport type ModalActionProps<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n> = Omit<ModalProps, 'onOk'> &\n ModalActionTrigger<FD, CP, TP, E> & {\n /**\n * **EN:** Form editing component, do not use the Form component inside the component, the form\n * component and form instance are automatically created by the parent component\n *\n * **CN:** 表单编辑组件,组件内部不要使用Form组件,表单组件及表单实例由父组件自动创建\n */\n formComp: ComponentType<CP & RefAttributes<CRef>>;\n /**\n * **EN:** Props of the form editing component\n *\n * **CN:** 表单编辑组件的Props属性\n */\n formProps?: Omit<CP, keyof FormCompPropsConstraint<FD>>;\n /**\n * **EN:** The callback when clicks the confirmation button, support asynchronous saving, return\n * `SubmitWithoutClosingSymbol` can prevent the dialog from closing, return other values will be\n * passed to the `afterOk` event, if any\n *\n * **CN:** 点击确认按钮的回调,支持异步保存,返回`SubmitWithoutClosingSymbol`可以阻止弹框关闭,返回其他值会传递给`afterOk`事件,如果有的话\n */\n onOk?: (\n formData: FD,\n // @ts-expect-error: because TP[E] should be a function type\n ...args: Parameters<TP[E]>\n ) => unknown | Promise<unknown>;\n /**\n * **EN:** The callback after the confirmation event is completed, it will not be triggered when\n * it fails, the parameter is the return value of `onOk`\n *\n * **CN:** 确认事件完成后的回调,失败时不会触发,参数为`onOk`的返回值\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n afterOk?: (data?: any) => void;\n };\n\nexport interface FormCompPropsConstraint<FD> {\n /**\n * **EN:** Automatically generated form instance, use this form instance in FormComp, do not\n * create a new instance\n *\n * **CN:** 自动生成的表单实例,编辑表单要使用这个表单实例,不要新创建实例\n */\n form: FormInstance<FD>;\n /**\n * **EN:** Register the form save event, the callback function passed in will be called when the\n * confirm button is clicked, support asynchronous saving\n *\n * **CN:** 注册表单保存事件,传入的回调函数会在点击确认按钮时被调用,支持异步保存\n *\n * @param handler Event handler | 事件处理函数\n */\n onSave: (\n handler: (\n /**\n * **EN:** Form data\n *\n * **CN:** 表单数据\n */\n formData: FD,\n /**\n * **EN:** Trigger click event data, for example, for the `Switch` type trigger, you can get\n * the value of the switch; for the `Button` type trigger, you can get the click event object\n * of the button\n *\n * **CN:** 触发器点击的事件数据,例如,对于`Switch`类型的触发器,可以获取点击开关的值;对于`Button`类型的触发器,可以获取按钮的点击事件对象\n */\n ...triggerEventData: any[]\n ) => unknown | Promise<unknown>\n ) => void;\n /**\n * **EN:** Listen to the open and close status of the dialog. When `destroyOnHidden` is set to\n * false, the form component instance is cached, and the dialog can only be listened to in this\n * way\n *\n * **CN:** 监听弹框打开关闭状态。当`destroyOnHidden`设置为false时,表单组件实例被缓存,只能通过这种方式监听弹框\n *\n * @param handler Event handler | 事件处理函数\n */\n onOpenChange: (handler: ModalProps['afterOpenChange']) => void;\n /**\n * **EN:** Set the dialog open status\n *\n * **CN:** 设置弹框打开状态\n *\n * @param open Whether is open or not | 弹窗是否打开\n */\n setOpen: (open: boolean) => void;\n /**\n * **EN:** Modify the properties of the dialog, such as title, width, button properties, etc.\n *\n * **CN:** 修改弹窗的属性,例如标题、宽度,按钮属性等\n */\n updateModalProps: (props: Partial<ModalProps>) => void;\n /**\n * **EN:** Trigger click event data, for example, for the `Switch` type trigger, you can get the\n * value of the switch; for the `Button` type trigger, you can get the click event object of the\n * button\n *\n * **CN:** 触发器点击的事件数据,例如,对于`Switch`类型的触发器,可以获取点击开关的值,对于`Button`类型的触发器,可以获取按钮的点击事件对象\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n triggerEventData?: any[];\n}\n\nexport interface ModalActionTrigger<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n> {\n /**\n * **EN:** Trigger component, click to show the dialog\n *\n * **CN:** 弹窗触发器组件,点击触发显示弹框\n */\n triggerComponent?: ComponentType<TP> | FC<TP>;\n /**\n * **EN:** Props of the trigger component\n *\n * **CN:** 触发器组件的Props属性\n */\n triggerProps?: TP & {\n /**\n * **EN:** Set a custom function to determine whether to show the trigger button\n *\n * **CN:** 设置一个自定义函数,用于判断是否显示触发器按钮\n *\n * @default true\n *\n * @param formProps Form component props | 表单组件的props\n */\n show?: boolean | ((formProps?: Omit<CP, keyof FormCompPropsConstraint<FD>>) => boolean);\n };\n /**\n * **EN:** The event name that triggers the dialog\n *\n * **CN:** 触发弹窗的事件名称\n *\n * - `Button`: 'onClick'\n * - `Switch`: 'onChange'\n * - `Link`: 'onClick'\n */\n triggerEvent?: E;\n /**\n * **EN:** Custom trigger content\n *\n * **CN:** 自定义触发器内容\n */\n children?: ReactNode;\n}\nexport type ModalActionRef<R> = R & {\n /**\n * **EN:** Show the dialog\n *\n * **CN:** 显示弹框\n */\n show: () => void;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const genModalActionRenderer = (defaultProps: Partial<ModalActionProps<any, any, any, never, never>>) => {\n const ModalActionRenderer = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n >(\n props: ModalActionProps<FD, CP, TP, E, CRef>,\n ref: ForwardedRef<ModalActionRef<CRef>>\n ) => {\n const [userModalProps, setUserModalProps] = useState<Partial<ModalProps>>({});\n let mergedProps = mergeProps<FD, CP, TP, E, CRef>(defaultProps, props);\n mergedProps = mergeProps(mergedProps, userModalProps as typeof props);\n const {\n formComp,\n formProps,\n triggerComponent: Trigger = Button,\n triggerEvent = 'onClick' as E,\n triggerProps,\n open: openInProps,\n destroyOnClose = true,\n destroyOnHidden = true,\n maskClosable = false,\n onOk,\n afterOk,\n onCancel,\n afterClose,\n children,\n ...restProps\n } = mergedProps;\n useContextValidator();\n const FormComp = formComp as ComponentType<FormCompPropsConstraint<FD> & RefAttributes<CRef>>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const triggerEventArgsRef = useRef<any[]>(undefined);\n const [open, setOpen] = useState(false);\n const saveFuncRef = useRef<(formData: FD, ...args: any[]) => unknown>(undefined);\n const [isSaving, setIsSaving] = useState(false);\n const [formCompRef, setFormCompRef] = useState<CRef | null>(null);\n const [form, setForm] = useState<FormInstance<FD>>();\n const formRef = useRef<FormInstance<FD>>(form);\n formRef.current = form;\n const destroyOnCloseRef = useRef(destroyOnClose);\n destroyOnCloseRef.current = destroyOnClose || destroyOnHidden;\n const openListenerRef = useRef<ModalProps['afterOpenChange']>(undefined);\n\n // Listen to the open props changes\n useEffect(() => {\n if (openInProps) {\n setOpen(openInProps);\n }\n }, [openInProps]);\n\n // Reset the form after closed\n useEffect(() => {\n if (!destroyOnCloseRef.current && open && formRef.current) {\n formRef.current.resetFields();\n }\n }, [open]);\n\n // show trigger\n const showInProps = triggerProps?.show;\n const showTrigger = useMemo(() => {\n if (typeof showInProps === 'boolean') {\n return showInProps;\n } else if (typeof showInProps === 'function') {\n return showInProps(formProps);\n }\n return true;\n }, [showInProps, formProps]);\n\n // Show the dialog\n const showModal = useCallback(() => {\n setOpen(true);\n openListenerRef.current?.(true);\n }, []);\n // Hide the dialog\n const hideModal = useCallback(() => {\n setOpen(false);\n openListenerRef.current?.(false);\n }, []);\n // Set the dialog status listener\n const setOpenListener = useCallback(\n (listener: ModalProps['afterOpenChange']) => {\n openListenerRef.current = listener;\n // Call once when initialized\n openListenerRef.current?.(open);\n },\n [open]\n );\n // Receive the onSave callback method passed by the form component\n const setOnSaveHandler: FormCompPropsConstraint<FD>['onSave'] = useCallback((handler) => {\n saveFuncRef.current = handler;\n }, []);\n // Set the dialog status and trigger the onOpenChange event of the form component\n const handleSetOpen = useCallback((open: boolean) => {\n setOpen(open);\n openListenerRef.current?.(open);\n }, []);\n\n // Output ref\n useImperativeHandle(ref, () => ({ ...formCompRef, show: showModal }) as ModalActionRef<CRef>, [\n formCompRef,\n showModal,\n ]);\n\n // Render the trigger component\n return (\n <>\n {showTrigger && (\n <Trigger\n {...triggerProps}\n // Trigger event\n {...((triggerEvent\n ? {\n [triggerEvent]: (...args: any[]) => {\n triggerEventArgsRef.current = args;\n showModal();\n if (triggerProps && typeof triggerProps[triggerEvent] === 'function') {\n (triggerProps[triggerEvent] as (...args: any[]) => void)(...args);\n }\n },\n }\n : {}) as TP)}\n >\n {(triggerProps as { children?: ReactNode }).children ?? children}\n </Trigger>\n )}\n <Modal\n open={open}\n confirmLoading={isSaving}\n destroyOnClose={destroyOnClose}\n destroyOnHidden={destroyOnHidden}\n maskClosable={maskClosable}\n onOk={async (e) => {\n let formData: FD;\n try {\n formData = (await form?.validateFields()) as FD;\n } catch (e) {\n // Validation error, should not throw error\n return;\n }\n if (Object.keys(formData).length === 0) {\n console.warn(\n 'form.getFieldsValue() is empty. Please use the form instance passed to formComp instead of creating the form instance yourself.'\n );\n }\n try {\n setIsSaving(true);\n // First call onSave of the form component\n let result = await saveFuncRef.current?.(formData, ...(triggerEventArgsRef.current ?? []));\n // The onSave of the form component has the ability to prevent the dialog from closing\n if (result === SubmitWithoutClosingSymbol) {\n throw new Error('SubmitWithoutClosing');\n }\n // Then call onOk of the dialog, support asynchronous, and will pass the return value of onSave, if any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result = await onOk?.((result as FD) ?? formData, ...((triggerEventArgsRef.current ?? []) as any));\n // onOk also has the ability to prevent the dialog from closing\n if (result === SubmitWithoutClosingSymbol) {\n throw new Error('SubmitWithoutClosing');\n }\n // If onOK is successful, close the dialog and trigger the afterOk event\n hideModal();\n afterOk?.(result);\n } catch (error) {\n console.error(error);\n } finally {\n setIsSaving(false);\n }\n }}\n onCancel={async (e) => {\n hideModal();\n onCancel?.(e);\n }}\n afterClose={() => {\n hideModal();\n afterClose?.();\n }}\n {...restProps}\n >\n <FormCreator<FD> onCreate={setForm} />\n {form && (\n <FormComp\n ref={isForwardRef(FormComp) ? setFormCompRef : undefined}\n {...formProps}\n form={form}\n onOpenChange={setOpenListener}\n onSave={setOnSaveHandler}\n triggerEventData={triggerEventArgsRef.current}\n setOpen={handleSetOpen}\n updateModalProps={setUserModalProps}\n />\n )}\n </Modal>\n </>\n );\n };\n return ModalActionRenderer;\n};\n\nfunction mergeProps<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(first?: Partial<ModalActionProps<FD, CP, TP, E, CRef>>, second?: Partial<ModalActionProps<FD, CP, TP, E, CRef>>) {\n return {\n ...first,\n ...second,\n okButtonProps: {\n ...first?.okButtonProps,\n ...second?.okButtonProps,\n },\n cancelButtonProps: {\n ...first?.cancelButtonProps,\n ...second?.cancelButtonProps,\n },\n bodyProps: {\n ...first?.bodyProps,\n ...second?.bodyProps,\n },\n maskProps: {\n ...first?.maskProps,\n ...second?.maskProps,\n },\n wrapProps: {\n ...first?.wrapProps,\n ...second?.wrapProps,\n },\n triggerProps: {\n ...first?.triggerProps,\n ...second?.triggerProps,\n style: {\n ...(first?.triggerProps && 'style' in first.triggerProps && typeof first.triggerProps.style === 'object'\n ? first.triggerProps.style\n : {}),\n ...(second?.triggerProps && 'style' in second.triggerProps && typeof second.triggerProps.style === 'object'\n ? second.triggerProps.style\n : {}),\n },\n },\n } as unknown as ModalActionProps<FD, CP, TP, E, CRef>;\n}\n\nfunction FormCreator<FD extends object>(props: { onCreate: (form: FormInstance<FD> | undefined) => void }) {\n const { onCreate } = props;\n const onCreateRef = useRef(onCreate);\n onCreateRef.current = onCreate;\n const [form] = Form.useForm<FD>();\n\n // output ref\n useEffect(() => {\n onCreateRef.current(form);\n return () => {\n onCreateRef.current(undefined);\n };\n }, [form]);\n\n return null;\n}\n\n/**\n * **EN:** Add default properties to the ModalAction component\n *\n * **CN:** 给ModalAction组件添加默认属性\n *\n * @param WrappedComponent ModalAction component | ModalAction组件\n * @param defaultProps Default properties | 默认属性\n */\nexport const withDefaultModalActionProps = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(\n WrappedComponent: ComponentType<ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>>,\n defaultProps?: Partial<ModalActionProps<FD, CP, TP, E, CRef>> | (() => Partial<ModalActionProps<FD, CP, TP, E, CRef>>)\n) => {\n const WithDefaultProps = forwardRef<ModalActionRef<CRef>, ModalActionProps<FD, CP, TP, E, CRef>>((props, ref) => {\n const useDefaultProps = typeof defaultProps === 'function' ? defaultProps : () => defaultProps;\n const defaults = useDefaultProps();\n const mergedProps = mergeProps(defaults, props);\n WithDefaultProps.displayName = 'ForwardedRef(WithDefaultProps)';\n return <WrappedComponent ref={ref} {...mergedProps} />;\n });\n return WithDefaultProps;\n};\n\nconst renderModalAction = genModalActionRenderer({});\nconst forwardedModalAction = forwardRef(renderModalAction);\nforwardedModalAction.displayName = 'ForwardedRef(ModalAction)';\n/**\n * **EN:** ModalAction component type\n *\n * **CN:** ModalAction组件的类型\n */\nexport type ModalActionInterface<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n> = ComponentType<ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>>;\n/**\n * **EN:** ModalAction component with generic type\n *\n * **CN:** ModalAction泛型组件的类型\n */\nexport type GenericModalActionInterface = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(\n props: ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>\n) => ReactElement;\n/**\n * **EN:** ModalAction with specified trigger type (specified form component)\n *\n * **CN:** 已指定Trigger类型的ModalAction(并且已指定表单组件)\n */\ntype ModalActionWithTrigger<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n OMIT extends string = never,\n> = ComponentType<\n Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'triggerComponent' | 'triggerEvent' | OMIT> &\n RefAttributes<ModalActionRef<CRef>>\n>;\n\n/**\n * **EN:** ModalAction with specified trigger type (unspecified form component, keep generic)\n *\n * **CN:** 已指定Trigger类型的ModalAction(未指定表单组件,保持泛型)\n */\ntype GenericModalActionWithTrigger<TP extends object, E extends keyof TP, OMIT extends string = never> = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'triggerComponent' | 'triggerEvent' | OMIT> &\n RefAttributes<ModalActionRef<CRef>>\n) => ReactElement;\n\n/**\n * **EN:** Built-in trigger types (specified form components)\n *\n * **CN:** 内置的几种触发器类型(已指定表单组件)\n */\ninterface TypedTriggers<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n OMIT extends string = never,\n> {\n /**\n * **EN:** Dialog with button type trigger\n *\n * **CN:** 按钮类型的弹窗\n */\n Button: ModalActionWithTrigger<FD, CP, ButtonProps, 'onClick', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with switch type trigger\n *\n * **CN:** 开关类型的弹窗\n */\n Switch: ModalActionWithTrigger<FD, CP, SwitchProps, 'onChange', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with link type trigger\n *\n * **CN:** 链接类型的弹窗\n */\n Link: ModalActionWithTrigger<FD, CP, LinkProps, 'onClick', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n}\n/**\n * **EN:** Built-in trigger types (generic types, unspecified form components)\n *\n * **CN:** 内置的几种触发器类型(泛型类型,未指定表单组件)\n */\ninterface GenericTypedTriggers<OMIT extends string = never> {\n /**\n * **EN:** Dialog with button type trigger\n *\n * **CN:** 按钮类型的弹窗\n */\n Button: GenericModalActionWithTrigger<ButtonProps, 'onClick', 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with switch type trigger\n *\n * **CN:** 开关类型的弹窗\n */\n Switch: GenericModalActionWithTrigger<SwitchProps, 'onChange', 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with link type trigger\n *\n * **CN:** 链接类型的弹窗\n */\n Link: GenericModalActionWithTrigger<LinkProps, 'onClick', 'triggerComponent' | 'triggerEvent' | OMIT>;\n}\ntype WithGenericTriggers<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n OMIT extends string = never,\n> = (<TP extends object, E extends keyof TP>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, OMIT> & RefAttributes<ModalActionRef<CRef>>\n) => ReactElement) &\n (CP extends never ? GenericTypedTriggers<OMIT> : TypedTriggers<FD, CP, CRef, OMIT>);\n\n/**\n * **EN:** Add trigger types to the ModalAction component\n *\n * **CN:** 给ModalAction组件添加子触发器类型\n */\nconst addTriggers = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n OuterTP extends object,\n OuterE extends keyof OuterTP,\n CRef extends object,\n OMIT extends string = never,\n>(\n comp: ComponentType<ModalActionProps<FD, CP, OuterTP, OuterE, CRef> & RefAttributes<ModalActionRef<CRef>>>\n) => {\n const patchedComp = comp as WithGenericTriggers<FD, CP, CRef, OMIT>;\n // Type of button trigger\n patchedComp.Button = withDefaultModalActionProps(comp as ModalActionInterface<FD, CP, ButtonProps, 'onClick', CRef>, {\n triggerComponent: Button,\n triggerEvent: 'onClick',\n triggerProps: {},\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any;\n // Type of switch trigger\n patchedComp.Switch = withDefaultModalActionProps(\n comp as ModalActionInterface<FD, CP, SwitchProps, 'onChange', CRef>,\n {\n triggerComponent: Switch,\n triggerEvent: 'onChange',\n triggerProps: {},\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) as any;\n // Type of link trigger\n patchedComp.Link = withDefaultModalActionProps(comp as ModalActionInterface<FD, CP, LinkProps, 'onClick', CRef>, {\n triggerComponent: Typography.Link,\n triggerEvent: 'onClick',\n triggerProps: {\n style: { whiteSpace: 'nowrap' },\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any;\n return patchedComp;\n};\n\n/**\n * **EN:** Dialog component with trigger\n *\n * **CN:** 带触发器的弹窗组件\n */\nconst ModalAction = addTriggers(forwardedModalAction);\n\n/**\n * **EN:** Dialog component with trigger\n *\n * **CN:** 带触发器的弹窗组件\n */\nexport type ModalActionWithStatic = typeof ModalAction & {\n /**\n * **EN:** Symbol for not closing the dialog when submitting the form, which takes effect when\n * returning in the `onSave` event of the editing form component\n *\n * **CN:** 提交表单时不关闭弹框的Symbol,在编辑表单组件的`onSave`事件中返回时生效\n */\n SubmitWithoutClosing: symbol;\n};\n(ModalAction as ModalActionWithStatic).SubmitWithoutClosing = SubmitWithoutClosingSymbol;\n\n/**\n * **EN:** Generate a dialog component based on the editing form component\n *\n * **CN:** 基于编辑表单组件生成一个弹框组件\n *\n * @param formComp Component of dialog content | 弹窗内容组件\n * @param defaultProps Default properties of the dialog | 弹窗的默认属性\n */\nexport function withModalAction<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n OuterTP extends object,\n OuterE extends keyof OuterTP,\n CRef extends object,\n>(\n formComp: ComponentType<CP & FormCompPropsConstraint<FD> & RefAttributes<CRef>>,\n defaultProps?:\n | Partial<ModalActionProps<FD, CP, OuterTP, OuterE, CRef>>\n | (() => Partial<ModalActionProps<FD, CP, OuterTP, OuterE, CRef>>)\n) {\n const withForm = withDefaultModalActionProps(\n forwardedModalAction as unknown as ModalActionInterface<FD, CP, OuterTP, OuterE, CRef>,\n () => {\n const useDefaultProps = typeof defaultProps === 'function' ? defaultProps : () => defaultProps;\n const defaults = useDefaultProps();\n return {\n formComp,\n ...defaults,\n };\n }\n ) as unknown as <TP extends object, E extends keyof TP>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'formComp'> & RefAttributes<ModalActionRef<CRef>>\n ) => ReactElement;\n return addTriggers<FD, CP, OuterTP, OuterE, CRef, 'formComp'>(withForm);\n}\n\nexport default ModalAction as ModalActionWithStatic;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iter","Array","from","isArray","_arrayLikeToArray","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_toPropertyKey","_toPrimitive","String","toPrimitive","Number","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","toString","test","len","arr2","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","Button","Form","Modal","Switch","Typography","isForwardRef","useContextValidator","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SubmitWithoutClosingSymbol","genModalActionRenderer","defaultProps","ModalActionRenderer","props","ref","_children","_useState","_useState2","userModalProps","setUserModalProps","mergedProps","mergeProps","_mergedProps","formComp","formProps","_mergedProps$triggerC","triggerComponent","Trigger","_mergedProps$triggerE","triggerEvent","triggerProps","openInProps","open","_mergedProps$destroyO","destroyOnClose","_mergedProps$destroyO2","destroyOnHidden","_mergedProps$maskClos","maskClosable","okButtonProps","cancelButtonProps","onOk","afterOk","onCancel","afterClose","children","restProps","_excluded","FormComp","triggerEventArgsRef","_useState3","_useState4","setOpen","saveFuncRef","_useState5","_useState6","isSaving","setIsSaving","_useState7","_useState8","formCompRef","setFormCompRef","_useState9","_useState10","form","setForm","formRef","current","destroyOnCloseRef","openListenerRef","resetFields","showInProps","show","showTrigger","showModal","_openListenerRef$curr","hideModal","_openListenerRef$curr2","setOpenListener","listener","_openListenerRef$curr3","setOnSaveHandler","handler","handleSetOpen","_openListenerRef$curr4","_len","_key","confirmLoading","loading","disabled","_callee","formData","_saveFuncRef$current","_triggerEventArgsRef$","_ref3","_triggerEventArgsRef$2","result","_callee$","_context","validateFields","t0","console","warn","concat","t1","_ref4","_callee2","_callee2$","_context2","_x","FormCreator","onCreate","onOpenChange","onSave","triggerEventData","updateModalProps","first","second","bodyProps","maskProps","wrapProps","style","onCreateRef","_Form$useForm","useForm","_Form$useForm2","withDefaultModalActionProps","WrappedComponent","WithDefaultProps","useDefaultProps","defaults","renderModalAction","forwardedModalAction","addTriggers","comp","patchedComp","Link","whiteSpace","ModalAction","SubmitWithoutClosing","withModalAction","withForm"],"sources":["../../../src/components/ModalAction/index.tsx"],"sourcesContent":["import type { ComponentType, FC, ForwardedRef, ReactElement, ReactNode, RefAttributes } from 'react';\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport type { ButtonProps, FormInstance, ModalProps, SwitchProps } from 'antd';\nimport { Button, Form, Modal, Switch, Typography } from 'antd';\nimport type { LinkProps } from 'antd/es/typography/Link';\nimport { isForwardRef } from 'react-is';\nimport useContextValidator from '../../hooks/useContextValidator';\n\n/**\n * **EN:** Symbol for not closing the dialog when submitting the form, which takes effect when\n * returning in the `onSave` event of the editing form component\n *\n * **CN:** 提交表单时不关闭弹框的Symbol,在编辑表单组件的`onSave`事件中返回时生效\n */\nexport const SubmitWithoutClosingSymbol = Symbol('[SubmitWithoutClose]');\n\nexport type ModalActionProps<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n> = Omit<ModalProps, 'onOk'> &\n ModalActionTrigger<FD, CP, TP, E> & {\n /**\n * **EN:** Form editing component, do not use the Form component inside the component, the form\n * component and form instance are automatically created by the parent component\n *\n * **CN:** 表单编辑组件,组件内部不要使用Form组件,表单组件及表单实例由父组件自动创建\n */\n formComp: ComponentType<CP & RefAttributes<CRef>>;\n /**\n * **EN:** Props of the form editing component\n *\n * **CN:** 表单编辑组件的Props属性\n */\n formProps?: Omit<CP, keyof FormCompPropsConstraint<FD>>;\n /**\n * **EN:** The callback when clicks the confirmation button, support asynchronous saving, return\n * `SubmitWithoutClosingSymbol` can prevent the dialog from closing, return other values will be\n * passed to the `afterOk` event, if any\n *\n * **CN:** 点击确认按钮的回调,支持异步保存,返回`SubmitWithoutClosingSymbol`可以阻止弹框关闭,返回其他值会传递给`afterOk`事件,如果有的话\n */\n onOk?: (\n formData: FD,\n // @ts-expect-error: because TP[E] should be a function type\n ...args: Parameters<TP[E]>\n ) => unknown | Promise<unknown>;\n /**\n * **EN:** The callback after the confirmation event is completed, it will not be triggered when\n * it fails, the parameter is the return value of `onOk`\n *\n * **CN:** 确认事件完成后的回调,失败时不会触发,参数为`onOk`的返回值\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n afterOk?: (data?: any) => void;\n };\n\nexport interface FormCompPropsConstraint<FD> {\n /**\n * **EN:** Automatically generated form instance, use this form instance in FormComp, do not\n * create a new instance\n *\n * **CN:** 自动生成的表单实例,编辑表单要使用这个表单实例,不要新创建实例\n */\n form: FormInstance<FD>;\n /**\n * **EN:** Register the form save event, the callback function passed in will be called when the\n * confirm button is clicked, support asynchronous saving\n *\n * **CN:** 注册表单保存事件,传入的回调函数会在点击确认按钮时被调用,支持异步保存\n *\n * @param handler Event handler | 事件处理函数\n */\n onSave: (\n handler: (\n /**\n * **EN:** Form data\n *\n * **CN:** 表单数据\n */\n formData: FD,\n /**\n * **EN:** Trigger click event data, for example, for the `Switch` type trigger, you can get\n * the value of the switch; for the `Button` type trigger, you can get the click event object\n * of the button\n *\n * **CN:** 触发器点击的事件数据,例如,对于`Switch`类型的触发器,可以获取点击开关的值;对于`Button`类型的触发器,可以获取按钮的点击事件对象\n */\n ...triggerEventData: any[]\n ) => unknown | Promise<unknown>\n ) => void;\n /**\n * **EN:** Listen to the open and close status of the dialog. When `destroyOnHidden` is set to\n * false, the form component instance is cached, and the dialog can only be listened to in this\n * way\n *\n * **CN:** 监听弹框打开关闭状态。当`destroyOnHidden`设置为false时,表单组件实例被缓存,只能通过这种方式监听弹框\n *\n * @param handler Event handler | 事件处理函数\n */\n onOpenChange: (handler: ModalProps['afterOpenChange']) => void;\n /**\n * **EN:** Set the dialog open status\n *\n * **CN:** 设置弹框打开状态\n *\n * @param open Whether is open or not | 弹窗是否打开\n */\n setOpen: (open: boolean) => void;\n /**\n * **EN:** Modify the properties of the dialog, such as title, width, button properties, etc.\n *\n * **CN:** 修改弹窗的属性,例如标题、宽度,按钮属性等\n */\n updateModalProps: (props: Partial<ModalProps>) => void;\n /**\n * **EN:** Trigger click event data, for example, for the `Switch` type trigger, you can get the\n * value of the switch; for the `Button` type trigger, you can get the click event object of the\n * button\n *\n * **CN:** 触发器点击的事件数据,例如,对于`Switch`类型的触发器,可以获取点击开关的值,对于`Button`类型的触发器,可以获取按钮的点击事件对象\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n triggerEventData?: any[];\n}\n\nexport interface ModalActionTrigger<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n> {\n /**\n * **EN:** Trigger component, click to show the dialog\n *\n * **CN:** 弹窗触发器组件,点击触发显示弹框\n */\n triggerComponent?: ComponentType<TP> | FC<TP>;\n /**\n * **EN:** Props of the trigger component\n *\n * **CN:** 触发器组件的Props属性\n */\n triggerProps?: TP & {\n /**\n * **EN:** Set a custom function to determine whether to show the trigger button\n *\n * **CN:** 设置一个自定义函数,用于判断是否显示触发器按钮\n *\n * @default true\n *\n * @param formProps Form component props | 表单组件的props\n */\n show?: boolean | ((formProps?: Omit<CP, keyof FormCompPropsConstraint<FD>>) => boolean);\n };\n /**\n * **EN:** The event name that triggers the dialog\n *\n * **CN:** 触发弹窗的事件名称\n *\n * - `Button`: 'onClick'\n * - `Switch`: 'onChange'\n * - `Link`: 'onClick'\n */\n triggerEvent?: E;\n /**\n * **EN:** Custom trigger content\n *\n * **CN:** 自定义触发器内容\n */\n children?: ReactNode;\n}\nexport type ModalActionRef<R> = R & {\n /**\n * **EN:** Show the dialog\n *\n * **CN:** 显示弹框\n */\n show: () => void;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const genModalActionRenderer = (defaultProps: Partial<ModalActionProps<any, any, any, never, never>>) => {\n const ModalActionRenderer = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n >(\n props: ModalActionProps<FD, CP, TP, E, CRef>,\n ref: ForwardedRef<ModalActionRef<CRef>>\n ) => {\n const [userModalProps, setUserModalProps] = useState<Partial<ModalProps>>({});\n let mergedProps = mergeProps<FD, CP, TP, E, CRef>(defaultProps, props);\n mergedProps = mergeProps(mergedProps, userModalProps as typeof props);\n const {\n formComp,\n formProps,\n triggerComponent: Trigger = Button,\n triggerEvent = 'onClick' as E,\n triggerProps,\n open: openInProps,\n destroyOnClose = true,\n destroyOnHidden = true,\n maskClosable = false,\n okButtonProps,\n cancelButtonProps,\n onOk,\n afterOk,\n onCancel,\n afterClose,\n children,\n ...restProps\n } = mergedProps;\n useContextValidator();\n const FormComp = formComp as ComponentType<FormCompPropsConstraint<FD> & RefAttributes<CRef>>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const triggerEventArgsRef = useRef<any[]>(undefined);\n const [open, setOpen] = useState(false);\n const saveFuncRef = useRef<(formData: FD, ...args: any[]) => unknown>(undefined);\n const [isSaving, setIsSaving] = useState(false);\n const [formCompRef, setFormCompRef] = useState<CRef | null>(null);\n const [form, setForm] = useState<FormInstance<FD>>();\n const formRef = useRef<FormInstance<FD>>(form);\n formRef.current = form;\n const destroyOnCloseRef = useRef(destroyOnClose);\n destroyOnCloseRef.current = destroyOnClose || destroyOnHidden;\n const openListenerRef = useRef<ModalProps['afterOpenChange']>(undefined);\n\n // Listen to the open props changes\n useEffect(() => {\n if (openInProps) {\n setOpen(openInProps);\n }\n }, [openInProps]);\n\n // Reset the form after closed\n useEffect(() => {\n if (!destroyOnCloseRef.current && open && formRef.current) {\n formRef.current.resetFields();\n }\n }, [open]);\n\n // show trigger\n const showInProps = triggerProps?.show;\n const showTrigger = useMemo(() => {\n if (typeof showInProps === 'boolean') {\n return showInProps;\n } else if (typeof showInProps === 'function') {\n return showInProps(formProps);\n }\n return true;\n }, [showInProps, formProps]);\n\n // Show the dialog\n const showModal = useCallback(() => {\n setOpen(true);\n openListenerRef.current?.(true);\n }, []);\n // Hide the dialog\n const hideModal = useCallback(() => {\n setOpen(false);\n openListenerRef.current?.(false);\n }, []);\n // Set the dialog status listener\n const setOpenListener = useCallback(\n (listener: ModalProps['afterOpenChange']) => {\n openListenerRef.current = listener;\n // Call once when initialized\n openListenerRef.current?.(open);\n },\n [open]\n );\n // Receive the onSave callback method passed by the form component\n const setOnSaveHandler: FormCompPropsConstraint<FD>['onSave'] = useCallback((handler) => {\n saveFuncRef.current = handler;\n }, []);\n // Set the dialog status and trigger the onOpenChange event of the form component\n const handleSetOpen = useCallback((open: boolean) => {\n setOpen(open);\n openListenerRef.current?.(open);\n }, []);\n\n // Output ref\n useImperativeHandle(ref, () => ({ ...formCompRef, show: showModal }) as ModalActionRef<CRef>, [\n formCompRef,\n showModal,\n ]);\n\n // Render the trigger component\n return (\n <>\n {showTrigger && (\n <Trigger\n {...triggerProps}\n // Trigger event\n {...((triggerEvent\n ? {\n [triggerEvent]: (...args: any[]) => {\n triggerEventArgsRef.current = args;\n showModal();\n if (triggerProps && typeof triggerProps[triggerEvent] === 'function') {\n (triggerProps[triggerEvent] as (...args: any[]) => void)(...args);\n }\n },\n }\n : {}) as TP)}\n >\n {(triggerProps as { children?: ReactNode }).children ?? children}\n </Trigger>\n )}\n <Modal\n open={open}\n confirmLoading={isSaving}\n destroyOnClose={destroyOnClose}\n destroyOnHidden={destroyOnHidden}\n maskClosable={maskClosable}\n okButtonProps={{\n loading: isSaving,\n ...okButtonProps,\n }}\n cancelButtonProps={{\n disabled: isSaving,\n ...cancelButtonProps,\n }}\n onOk={async () => {\n let formData: FD;\n try {\n formData = (await form?.validateFields()) as FD;\n } catch (e) {\n // Validation error, should not throw error\n return;\n }\n if (Object.keys(formData).length === 0) {\n console.warn(\n 'form.getFieldsValue() is empty. Please use the form instance passed to formComp instead of creating the form instance yourself.'\n );\n }\n try {\n setIsSaving(true);\n // First call onSave of the form component\n let result = await saveFuncRef.current?.(formData, ...(triggerEventArgsRef.current ?? []));\n // The onSave of the form component has the ability to prevent the dialog from closing\n if (result === SubmitWithoutClosingSymbol) {\n throw new Error('SubmitWithoutClosing');\n }\n // Then call onOk of the dialog, support asynchronous, and will pass the return value of onSave, if any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result = await onOk?.((result as FD) ?? formData, ...((triggerEventArgsRef.current ?? []) as any));\n // onOk also has the ability to prevent the dialog from closing\n if (result === SubmitWithoutClosingSymbol) {\n throw new Error('SubmitWithoutClosing');\n }\n // If onOK is successful, close the dialog and trigger the afterOk event\n hideModal();\n afterOk?.(result);\n } catch (error) {\n console.error(error);\n } finally {\n setIsSaving(false);\n }\n }}\n onCancel={async (e) => {\n hideModal();\n onCancel?.(e);\n }}\n afterClose={() => {\n hideModal();\n afterClose?.();\n }}\n {...restProps}\n >\n <FormCreator<FD> onCreate={setForm} />\n {form && (\n <FormComp\n ref={isForwardRef(FormComp) ? setFormCompRef : undefined}\n {...formProps}\n form={form}\n onOpenChange={setOpenListener}\n onSave={setOnSaveHandler}\n triggerEventData={triggerEventArgsRef.current}\n setOpen={handleSetOpen}\n updateModalProps={setUserModalProps}\n />\n )}\n </Modal>\n </>\n );\n };\n return ModalActionRenderer;\n};\n\nfunction mergeProps<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(first?: Partial<ModalActionProps<FD, CP, TP, E, CRef>>, second?: Partial<ModalActionProps<FD, CP, TP, E, CRef>>) {\n return {\n ...first,\n ...second,\n okButtonProps: {\n ...first?.okButtonProps,\n ...second?.okButtonProps,\n },\n cancelButtonProps: {\n ...first?.cancelButtonProps,\n ...second?.cancelButtonProps,\n },\n bodyProps: {\n ...first?.bodyProps,\n ...second?.bodyProps,\n },\n maskProps: {\n ...first?.maskProps,\n ...second?.maskProps,\n },\n wrapProps: {\n ...first?.wrapProps,\n ...second?.wrapProps,\n },\n triggerProps: {\n ...first?.triggerProps,\n ...second?.triggerProps,\n style: {\n ...(first?.triggerProps && 'style' in first.triggerProps && typeof first.triggerProps.style === 'object'\n ? first.triggerProps.style\n : {}),\n ...(second?.triggerProps && 'style' in second.triggerProps && typeof second.triggerProps.style === 'object'\n ? second.triggerProps.style\n : {}),\n },\n },\n } as unknown as ModalActionProps<FD, CP, TP, E, CRef>;\n}\n\nfunction FormCreator<FD extends object>(props: { onCreate: (form: FormInstance<FD> | undefined) => void }) {\n const { onCreate } = props;\n const onCreateRef = useRef(onCreate);\n onCreateRef.current = onCreate;\n const [form] = Form.useForm<FD>();\n\n // output ref\n useEffect(() => {\n onCreateRef.current(form);\n return () => {\n onCreateRef.current(undefined);\n };\n }, [form]);\n\n return null;\n}\n\n/**\n * **EN:** Add default properties to the ModalAction component\n *\n * **CN:** 给ModalAction组件添加默认属性\n *\n * @param WrappedComponent ModalAction component | ModalAction组件\n * @param defaultProps Default properties | 默认属性\n */\nexport const withDefaultModalActionProps = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(\n WrappedComponent: ComponentType<ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>>,\n defaultProps?: Partial<ModalActionProps<FD, CP, TP, E, CRef>> | (() => Partial<ModalActionProps<FD, CP, TP, E, CRef>>)\n) => {\n const WithDefaultProps = forwardRef<ModalActionRef<CRef>, ModalActionProps<FD, CP, TP, E, CRef>>((props, ref) => {\n const useDefaultProps = typeof defaultProps === 'function' ? defaultProps : () => defaultProps;\n const defaults = useDefaultProps();\n const mergedProps = mergeProps(defaults, props);\n WithDefaultProps.displayName = 'ForwardedRef(WithDefaultProps)';\n return <WrappedComponent ref={ref} {...mergedProps} />;\n });\n return WithDefaultProps;\n};\n\nconst renderModalAction = genModalActionRenderer({});\nconst forwardedModalAction = forwardRef(renderModalAction);\nforwardedModalAction.displayName = 'ForwardedRef(ModalAction)';\n/**\n * **EN:** ModalAction component type\n *\n * **CN:** ModalAction组件的类型\n */\nexport type ModalActionInterface<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n> = ComponentType<ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>>;\n/**\n * **EN:** ModalAction component with generic type\n *\n * **CN:** ModalAction泛型组件的类型\n */\nexport type GenericModalActionInterface = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(\n props: ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>\n) => ReactElement;\n/**\n * **EN:** ModalAction with specified trigger type (specified form component)\n *\n * **CN:** 已指定Trigger类型的ModalAction(并且已指定表单组件)\n */\ntype ModalActionWithTrigger<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n OMIT extends string = never,\n> = ComponentType<\n Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'triggerComponent' | 'triggerEvent' | OMIT> &\n RefAttributes<ModalActionRef<CRef>>\n>;\n\n/**\n * **EN:** ModalAction with specified trigger type (unspecified form component, keep generic)\n *\n * **CN:** 已指定Trigger类型的ModalAction(未指定表单组件,保持泛型)\n */\ntype GenericModalActionWithTrigger<TP extends object, E extends keyof TP, OMIT extends string = never> = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'triggerComponent' | 'triggerEvent' | OMIT> &\n RefAttributes<ModalActionRef<CRef>>\n) => ReactElement;\n\n/**\n * **EN:** Built-in trigger types (specified form components)\n *\n * **CN:** 内置的几种触发器类型(已指定表单组件)\n */\ninterface TypedTriggers<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n OMIT extends string = never,\n> {\n /**\n * **EN:** Dialog with button type trigger\n *\n * **CN:** 按钮类型的弹窗\n */\n Button: ModalActionWithTrigger<FD, CP, ButtonProps, 'onClick', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with switch type trigger\n *\n * **CN:** 开关类型的弹窗\n */\n Switch: ModalActionWithTrigger<FD, CP, SwitchProps, 'onChange', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with link type trigger\n *\n * **CN:** 链接类型的弹窗\n */\n Link: ModalActionWithTrigger<FD, CP, LinkProps, 'onClick', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n}\n/**\n * **EN:** Built-in trigger types (generic types, unspecified form components)\n *\n * **CN:** 内置的几种触发器类型(泛型类型,未指定表单组件)\n */\ninterface GenericTypedTriggers<OMIT extends string = never> {\n /**\n * **EN:** Dialog with button type trigger\n *\n * **CN:** 按钮类型的弹窗\n */\n Button: GenericModalActionWithTrigger<ButtonProps, 'onClick', 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with switch type trigger\n *\n * **CN:** 开关类型的弹窗\n */\n Switch: GenericModalActionWithTrigger<SwitchProps, 'onChange', 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with link type trigger\n *\n * **CN:** 链接类型的弹窗\n */\n Link: GenericModalActionWithTrigger<LinkProps, 'onClick', 'triggerComponent' | 'triggerEvent' | OMIT>;\n}\ntype WithGenericTriggers<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n OMIT extends string = never,\n> = (<TP extends object, E extends keyof TP>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, OMIT> & RefAttributes<ModalActionRef<CRef>>\n) => ReactElement) &\n (CP extends never ? GenericTypedTriggers<OMIT> : TypedTriggers<FD, CP, CRef, OMIT>);\n\n/**\n * **EN:** Add trigger types to the ModalAction component\n *\n * **CN:** 给ModalAction组件添加子触发器类型\n */\nconst addTriggers = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n OuterTP extends object,\n OuterE extends keyof OuterTP,\n CRef extends object,\n OMIT extends string = never,\n>(\n comp: ComponentType<ModalActionProps<FD, CP, OuterTP, OuterE, CRef> & RefAttributes<ModalActionRef<CRef>>>\n) => {\n const patchedComp = comp as WithGenericTriggers<FD, CP, CRef, OMIT>;\n // Type of button trigger\n patchedComp.Button = withDefaultModalActionProps(comp as ModalActionInterface<FD, CP, ButtonProps, 'onClick', CRef>, {\n triggerComponent: Button,\n triggerEvent: 'onClick',\n triggerProps: {},\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any;\n // Type of switch trigger\n patchedComp.Switch = withDefaultModalActionProps(\n comp as ModalActionInterface<FD, CP, SwitchProps, 'onChange', CRef>,\n {\n triggerComponent: Switch,\n triggerEvent: 'onChange',\n triggerProps: {},\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) as any;\n // Type of link trigger\n patchedComp.Link = withDefaultModalActionProps(comp as ModalActionInterface<FD, CP, LinkProps, 'onClick', CRef>, {\n triggerComponent: Typography.Link,\n triggerEvent: 'onClick',\n triggerProps: {\n style: { whiteSpace: 'nowrap' },\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any;\n return patchedComp;\n};\n\n/**\n * **EN:** Dialog component with trigger\n *\n * **CN:** 带触发器的弹窗组件\n */\nconst ModalAction = addTriggers(forwardedModalAction);\n\n/**\n * **EN:** Dialog component with trigger\n *\n * **CN:** 带触发器的弹窗组件\n */\nexport type ModalActionWithStatic = typeof ModalAction & {\n /**\n * **EN:** Symbol for not closing the dialog when submitting the form, which takes effect when\n * returning in the `onSave` event of the editing form component\n *\n * **CN:** 提交表单时不关闭弹框的Symbol,在编辑表单组件的`onSave`事件中返回时生效\n */\n SubmitWithoutClosing: symbol;\n};\n(ModalAction as ModalActionWithStatic).SubmitWithoutClosing = SubmitWithoutClosingSymbol;\n\n/**\n * **EN:** Generate a dialog component based on the editing form component\n *\n * **CN:** 基于编辑表单组件生成一个弹框组件\n *\n * @param formComp Component of dialog content | 弹窗内容组件\n * @param defaultProps Default properties of the dialog | 弹窗的默认属性\n */\nexport function withModalAction<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n OuterTP extends object,\n OuterE extends keyof OuterTP,\n CRef extends object,\n>(\n formComp: ComponentType<CP & FormCompPropsConstraint<FD> & RefAttributes<CRef>>,\n defaultProps?:\n | Partial<ModalActionProps<FD, CP, OuterTP, OuterE, CRef>>\n | (() => Partial<ModalActionProps<FD, CP, OuterTP, OuterE, CRef>>)\n) {\n const withForm = withDefaultModalActionProps(\n forwardedModalAction as unknown as ModalActionInterface<FD, CP, OuterTP, OuterE, CRef>,\n () => {\n const useDefaultProps = typeof defaultProps === 'function' ? defaultProps : () => defaultProps;\n const defaults = useDefaultProps();\n return {\n formComp,\n ...defaults,\n };\n }\n ) as unknown as <TP extends object, E extends keyof TP>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'formComp'> & RefAttributes<ModalActionRef<CRef>>\n ) => ReactElement;\n return addTriggers<FD, CP, OuterTP, OuterE, CRef, 'formComp'>(withForm);\n}\n\nexport default ModalAction as ModalActionWithStatic;\n"],"mappings":"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"}
@@ -125,14 +125,36 @@ var genRenderer = (defaultProps) => {
125
125
  content: coloredText(content, contentColor),
126
126
  icon: coloredText(icon, iconColor ?? fallbackColor ?? "warning"),
127
127
  autoFocusButton: null,
128
- onOk: async () => {
129
- const result = await (onOk == null ? void 0 : onOk(...triggerEventArgsRef.current ?? []));
130
- afterOk == null ? void 0 : afterOk(result);
131
- },
132
128
  okButtonProps: {
133
129
  ...danger ? { type: "primary", danger: true } : {},
134
130
  ...okButtonProps ?? {}
135
131
  },
132
+ onOk: async () => {
133
+ try {
134
+ api.update({
135
+ closable: true,
136
+ okButtonProps: {
137
+ loading: true,
138
+ ...okButtonProps
139
+ },
140
+ cancelButtonProps: {
141
+ disabled: true
142
+ }
143
+ });
144
+ const result = await (onOk == null ? void 0 : onOk(...triggerEventArgsRef.current ?? []));
145
+ afterOk == null ? void 0 : afterOk(result);
146
+ } finally {
147
+ api.update({
148
+ closable: false,
149
+ okButtonProps: {
150
+ loading: false
151
+ },
152
+ cancelButtonProps: {
153
+ disabled: false
154
+ }
155
+ });
156
+ }
157
+ },
136
158
  ...restProps
137
159
  });
138
160
  setConfirmApi(api);
@@ -146,9 +168,9 @@ var genRenderer = (defaultProps) => {
146
168
  ...triggerEvent ? {
147
169
  [triggerEvent]: (...args) => {
148
170
  triggerEventArgsRef.current = args;
149
- showConfirm();
171
+ const api = showConfirm();
150
172
  if (triggerProps && typeof triggerProps[triggerEvent] === "function") {
151
- triggerProps[triggerEvent](...args);
173
+ triggerProps[triggerEvent](...args, { api });
152
174
  }
153
175
  }
154
176
  } : {}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/ConfirmAction/index.tsx"],
4
- "sourcesContent": ["import type { ComponentType, ForwardedRef, PropsWithoutRef, ReactElement, ReactNode, RefAttributes } from 'react';\nimport { forwardRef, useContext, useImperativeHandle, useRef, useState } from 'react';\nimport type { ButtonProps, ModalFuncProps, SwitchProps } from 'antd';\nimport { App, Button, Modal, Switch, Typography } from 'antd';\nimport type { ModalFunc } from 'antd/es/modal/confirm';\nimport type confirm from 'antd/es/modal/confirm';\nimport useToken from 'antd/es/theme/useToken';\nimport type { LinkProps } from 'antd/es/typography/Link';\nimport type { TextProps } from 'antd/es/typography/Text';\nimport useContextValidator from '../../hooks/useContextValidator';\nimport useLocalizedText from '../../hooks/useLocalizedText';\nimport useRefFunction from '../../hooks/useRefFunction';\nimport ReactEasyContext from '../ConfigProvider/context';\n\nexport type ConfirmActionProps<TP extends object, E extends keyof TP> = Omit<ModalFuncProps, 'onOk'> &\n ConfirmActionTrigger<TP, E> & {\n /**\n * **EN:** Whether to display in red danger mode, which will automatically affect the color of\n * the title, icon, and confirm button. Default is `false`, for DeleteConfirmAction, the\n * defaults is `true`.\n *\n * - You can explicitly set `titleColor`, `iconColor`, and `okButtonProps.type` to override\n *\n * **CN:** 是否显示为红色危险模式,会自动影响标题、图标和确认按钮的颜色。默认`false`,DeleteConfirmAction组件的默认值为`true`。\n *\n * - 可以显式设置`titleColor`、`iconColor`和`okButtonProps.type`来覆盖\n */\n danger?: boolean;\n /**\n * **EN:** The color of confirm box title, default is `warning`\n *\n * **CN:** 弹框标题颜色,默认`warning`\n */\n titleColor?: TextProps['type'] | 'primary';\n /**\n * **EN:** The color of confirm box content\n *\n * **CN:** 弹框内容文本颜色\n */\n contentColor?: TextProps['type'] | 'primary';\n /**\n * **EN:** The color of confirm box title icon, default is the same as `titleColor`\n *\n * **CN:** 弹框标题图标颜色,默认与`titleColor`相同\n */\n iconColor?: TextProps['type'] | 'primary';\n /**\n * **EN:** Callback when click confirm button\n *\n * **CN:** 点击确认按钮的回调\n */\n // @ts-expect-error: because TP[E] should be casted to function type\n onOk?: (...args: Parameters<TP[E]>) => unknown | Promise<unknown>;\n /**\n * **EN:** Callback after confirm event, won't trigger if failed, the argument is the return\n * value of `onOk`\n *\n * **CN:** 确认事件完成后的回调,失败时不会触发,参数为`onOk`的返回值\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n afterOk?: (data?: any) => void;\n };\n\nexport interface ConfirmActionTrigger<TP extends object, E extends keyof TP> {\n /**\n * **EN:** Trigger component, trigger to show confirm box\n *\n * **CN:** 触发器组件,触发显示确认弹框\n */\n triggerComponent?: ComponentType<TP>;\n /**\n * **EN:** Props of trigger component\n *\n * **CN:** 触发器组件的Props属性\n */\n triggerProps?: TP;\n /**\n * **EN:** The event name that triggers the dialog\n *\n * **CN:** 触发弹窗的事件名称\n *\n * - `Button`: 'onClick'\n * - `Switch`: 'onChange'\n * - `Link`: 'onClick'\n */\n triggerEvent?: E;\n /**\n * **EN:** Custom trigger content\n *\n * **CN:** 自定义触发器内容\n */\n children?: ReactNode;\n}\nexport type ConfirmActionRef = ReturnType<typeof confirm> & {\n /**\n * **EN:** Show confirm box\n *\n * **CN:** 显示确认弹框\n */\n show: (props?: Parameters<ModalFunc>[0]) => ReturnType<ModalFunc>;\n};\n\n/**\n * **EN:** Generate a confirm box component\n *\n * **CN:** 生成一个确认弹框组件\n *\n * @param defaultProps Default props | 默认属性\n *\n * @returns Component render method | 组件render方法\n */\nexport const genRenderer = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n defaultProps: Partial<ConfirmActionProps<any, never>> & { confirmType: 'normal' | 'delete' }\n) => {\n const Render = <TP extends object, E extends keyof TP>(\n props: ConfirmActionProps<TP, E>,\n ref: ForwardedRef<ConfirmActionRef>\n ) => {\n const { confirmType, ...restDefaults } = defaultProps;\n const mergedProps: ConfirmActionProps<TP, E> = {\n ...restDefaults,\n ...props,\n okButtonProps: {\n ...restDefaults.okButtonProps,\n ...props.okButtonProps,\n },\n cancelButtonProps: {\n ...restDefaults.cancelButtonProps,\n ...props.cancelButtonProps,\n },\n bodyProps: {\n ...restDefaults.bodyProps,\n ...props.bodyProps,\n },\n maskProps: {\n ...restDefaults.maskProps,\n ...props.maskProps,\n },\n wrapProps: {\n ...restDefaults.wrapProps,\n ...props.wrapProps,\n },\n triggerProps: {\n ...restDefaults.triggerProps,\n ...props.triggerProps,\n style: {\n ...restDefaults.triggerProps?.style,\n ...(props.triggerProps && 'style' in props.triggerProps && typeof props.triggerProps.style === 'object'\n ? props.triggerProps.style\n : {}),\n },\n } as TP,\n };\n const context = useContext(ReactEasyContext);\n const defaultTitle = useLocalizedText(\n confirmType === 'delete' ? context.defaultDeletionConfirmTitle : context.defaultConfirmTitle\n );\n const defaultContent = useLocalizedText(\n confirmType === 'delete' ? context.defaultDeletionConfirmContent : context.defaultConfirmContent\n );\n const {\n triggerComponent: Trigger = Button,\n triggerEvent = 'onClick' as E,\n triggerProps,\n danger,\n title = defaultTitle,\n content = defaultContent,\n titleColor,\n contentColor,\n icon,\n iconColor,\n okButtonProps,\n onOk,\n afterOk,\n children,\n ...restProps\n } = mergedProps;\n\n useContextValidator();\n\n const app = App.useApp();\n // @ts-expect-error: because app may return a stub object when App is not used\n const modal = app.modal?.confirm ? app.modal : Modal;\n const { localize } = useContext(ReactEasyContext);\n const [, token] = useToken();\n const [confirmApi, setConfirmApi] = useState<ReturnType<typeof confirm>>();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const triggerEventArgsRef = useRef<any[]>(undefined);\n\n const fallbackColor = danger ? 'danger' : undefined;\n // Text with color\n const coloredText = (text: ReactNode, color?: TextProps['type'] | 'primary') => {\n const textContent = typeof text === 'string' ? (localize?.(text) ?? text) : text;\n if (!color) {\n return textContent;\n }\n if (color === 'primary') {\n return <Typography.Text style={{ color: token.colorPrimary }}>{textContent}</Typography.Text>;\n }\n return textContent ? <Typography.Text type={color}>{textContent}</Typography.Text> : undefined;\n };\n\n // Show confirm box\n const showConfirm: ConfirmActionRef['show'] = useRefFunction(() => {\n const api = modal.confirm({\n title: coloredText(title, titleColor ?? fallbackColor ?? 'warning'),\n content: coloredText(content, contentColor),\n icon: coloredText(icon, iconColor ?? fallbackColor ?? 'warning'),\n autoFocusButton: null,\n onOk: async () => {\n const result = await onOk?.(...((triggerEventArgsRef.current ?? []) as Parameters<typeof onOk>));\n afterOk?.(result);\n },\n okButtonProps: {\n ...(danger ? { type: 'primary', danger: true } : {}),\n ...(okButtonProps ?? {}),\n },\n ...restProps,\n });\n setConfirmApi(api);\n return api;\n });\n\n // Output ref\n useImperativeHandle(ref, () => ({ show: showConfirm, ...confirmApi! }), [showConfirm, confirmApi]);\n\n // Render trigger component\n return (\n <Trigger\n {...triggerProps}\n // Trigger event\n {...((triggerEvent\n ? {\n [triggerEvent]: (...args: any[]) => {\n triggerEventArgsRef.current = args;\n showConfirm();\n if (triggerProps && typeof triggerProps[triggerEvent] === 'function') {\n (triggerProps[triggerEvent] as (...args: any[]) => void)(...args);\n }\n },\n }\n : {}) as TP)}\n >\n {(triggerProps as { children?: ReactNode }).children ?? children}\n </Trigger>\n );\n };\n Render.displayName = 'ConfirmAction';\n return Render;\n};\n\n/**\n * **EN:** Add default properties to the ConfirmAction component\n *\n * **CN:** 给ConfirmAction组件添加默认属性\n *\n * @param WrappedComponent ConfirmAction component | ConfirmAction组件\n * @param defaultProps Default properties | 默认属性\n */\nexport const withDefaultConfirmActionProps = <TP extends object, E extends keyof TP>(\n WrappedComponent: ComponentType<PropsWithoutRef<ConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>>,\n defaultProps?: Partial<ConfirmActionProps<TP, E>>\n) => {\n const WithDefaultProps = forwardRef<ConfirmActionRef, ConfirmActionProps<TP, E>>((props, ref) => {\n const mergedProps: ConfirmActionProps<TP, E> = {\n ...defaultProps,\n ...props,\n triggerProps: {\n ...defaultProps?.triggerProps,\n ...props.triggerProps,\n } as TP,\n };\n return <WrappedComponent ref={ref} {...mergedProps} />;\n });\n WithDefaultProps.displayName = 'ForwardedRef(WithDefaultProps)';\n return WithDefaultProps;\n};\n\nconst renderConfirmAction = genRenderer({\n confirmType: 'normal',\n});\nconst forwarded = forwardRef(renderConfirmAction);\nforwarded.displayName = 'ForwardedRef(ConfirmAction)';\n\n/**\n * **EN:** Interface of generic type component\n *\n * **CN:** 泛型组件的接口\n */\nexport type GenericConfirmActionInterface = <TP extends object, E extends keyof TP>(\n props: PropsWithoutRef<TypedConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>\n) => ReactElement;\n\n/**\n * **EN:** Interface of specific type component\n *\n * **CN:** 具体类型组件的接口\n */\nexport type TypedConfirmActionInterface<TP extends object, E extends keyof TP> = ComponentType<\n PropsWithoutRef<TypedConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>\n>;\n\n/**\n * **EN:** Props definition of specific type component\n *\n * **CN:** 具体类型组件的Props定义\n */\ntype TypedConfirmActionProps<TP extends object, E extends keyof TP> = Omit<\n ConfirmActionProps<TP, E>,\n 'triggerComponent' | 'triggerEvent'\n>;\nexport type ConfirmActionWithStatic = GenericConfirmActionInterface & {\n /**\n * **EN:** Confirm box with button trigger\n *\n * **CN:** 按钮类型的确认框\n */\n Button: TypedConfirmActionInterface<ButtonProps, 'onClick'>;\n /**\n * **EN:** Confirm box with switch trigger\n *\n * **CN:** 开关类型的确认框\n */\n Switch: TypedConfirmActionInterface<SwitchProps, 'onChange'>;\n /**\n * **EN:** Confirm box with link trigger\n *\n * **CN:** 链接类型的确认框\n */\n Link: TypedConfirmActionInterface<LinkProps, 'onClick'>;\n};\n\n/**\n * **EN:** Confirm box component with trigger\n *\n * **CN:** 带触发器的确认框组件\n */\nconst ConfirmAction = forwarded as unknown as ConfirmActionWithStatic;\n// Type of button\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Button = withDefaultConfirmActionProps<ButtonProps, 'onClick'>(forwarded as any, {\n triggerComponent: Button,\n triggerEvent: 'onClick',\n triggerProps: {},\n});\n// Type of switch\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Switch = withDefaultConfirmActionProps<SwitchProps, 'onChange'>(forwarded as any, {\n triggerComponent: Switch,\n triggerEvent: 'onChange',\n triggerProps: {},\n});\n// Type of link\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Link = withDefaultConfirmActionProps<LinkProps, 'onClick'>(forwarded as any, {\n triggerComponent: Typography.Link,\n triggerEvent: 'onClick',\n triggerProps: {\n style: { whiteSpace: 'nowrap' },\n },\n});\n\nexport default ConfirmAction;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type { ComponentType, ForwardedRef, PropsWithoutRef, ReactElement, ReactNode, RefAttributes } from 'react';\nimport { forwardRef, useContext, useImperativeHandle, useRef, useState } from 'react';\nimport type { ButtonProps, ModalFuncProps, SwitchProps } from 'antd';\nimport { App, Button, Modal, Switch, Typography } from 'antd';\nimport type { ModalFunc } from 'antd/es/modal/confirm';\nimport type confirm from 'antd/es/modal/confirm';\nimport useToken from 'antd/es/theme/useToken';\nimport type { LinkProps } from 'antd/es/typography/Link';\nimport type { TextProps } from 'antd/es/typography/Text';\nimport useContextValidator from '../../hooks/useContextValidator';\nimport useLocalizedText from '../../hooks/useLocalizedText';\nimport useRefFunction from '../../hooks/useRefFunction';\nimport ReactEasyContext from '../ConfigProvider/context';\n\nexport type ConfirmActionProps<TP extends object, E extends keyof TP> = Omit<ModalFuncProps, 'onOk'> &\n ConfirmActionTrigger<TP, E> & {\n /**\n * **EN:** Whether to display in red danger mode, which will automatically affect the color of\n * the title, icon, and confirm button. Default is `false`, for DeleteConfirmAction, the\n * defaults is `true`.\n *\n * - You can explicitly set `titleColor`, `iconColor`, and `okButtonProps.type` to override\n *\n * **CN:** 是否显示为红色危险模式,会自动影响标题、图标和确认按钮的颜色。默认`false`,DeleteConfirmAction组件的默认值为`true`。\n *\n * - 可以显式设置`titleColor`、`iconColor`和`okButtonProps.type`来覆盖\n */\n danger?: boolean;\n /**\n * **EN:** The color of confirm box title, default is `warning`\n *\n * **CN:** 弹框标题颜色,默认`warning`\n */\n titleColor?: TextProps['type'] | 'primary';\n /**\n * **EN:** The color of confirm box content\n *\n * **CN:** 弹框内容文本颜色\n */\n contentColor?: TextProps['type'] | 'primary';\n /**\n * **EN:** The color of confirm box title icon, default is the same as `titleColor`\n *\n * **CN:** 弹框标题图标颜色,默认与`titleColor`相同\n */\n iconColor?: TextProps['type'] | 'primary';\n /**\n * **EN:** Callback when click confirm button\n *\n * **CN:** 点击确认按钮的回调\n */\n // @ts-expect-error: because TP[E] should be casted to function type\n onOk?: (...args: Parameters<TP[E]>) => unknown | Promise<unknown>;\n /**\n * **EN:** Callback after confirm event, won't trigger if failed, the argument is the return\n * value of `onOk`\n *\n * **CN:** 确认事件完成后的回调,失败时不会触发,参数为`onOk`的返回值\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n afterOk?: (data?: any) => void;\n };\n\nexport interface ConfirmActionTrigger<TP extends object, E extends keyof TP> {\n /**\n * **EN:** Trigger component, trigger to show confirm box\n *\n * **CN:** 触发器组件,触发显示确认弹框\n */\n triggerComponent?: ComponentType<TP>;\n /**\n * **EN:** Props of trigger component\n *\n * **CN:** 触发器组件的Props属性\n */\n triggerProps?: TP;\n /**\n * **EN:** The event name that triggers the dialog\n *\n * **CN:** 触发弹窗的事件名称\n *\n * - `Button`: 'onClick'\n * - `Switch`: 'onChange'\n * - `Link`: 'onClick'\n */\n triggerEvent?: E;\n /**\n * **EN:** Custom trigger content\n *\n * **CN:** 自定义触发器内容\n */\n children?: ReactNode;\n}\nexport type ConfirmActionRef = ReturnType<typeof confirm> & {\n /**\n * **EN:** Show confirm box\n *\n * **CN:** 显示确认弹框\n */\n show: (props?: Parameters<ModalFunc>[0]) => ReturnType<ModalFunc>;\n};\n\n/**\n * **EN:** Generate a confirm box component\n *\n * **CN:** 生成一个确认弹框组件\n *\n * @param defaultProps Default props | 默认属性\n *\n * @returns Component render method | 组件render方法\n */\nexport const genRenderer = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n defaultProps: Partial<ConfirmActionProps<any, never>> & { confirmType: 'normal' | 'delete' }\n) => {\n const Render = <TP extends object, E extends keyof TP>(\n props: ConfirmActionProps<TP, E>,\n ref: ForwardedRef<ConfirmActionRef>\n ) => {\n const { confirmType, ...restDefaults } = defaultProps;\n const mergedProps: ConfirmActionProps<TP, E> = {\n ...restDefaults,\n ...props,\n okButtonProps: {\n ...restDefaults.okButtonProps,\n ...props.okButtonProps,\n },\n cancelButtonProps: {\n ...restDefaults.cancelButtonProps,\n ...props.cancelButtonProps,\n },\n bodyProps: {\n ...restDefaults.bodyProps,\n ...props.bodyProps,\n },\n maskProps: {\n ...restDefaults.maskProps,\n ...props.maskProps,\n },\n wrapProps: {\n ...restDefaults.wrapProps,\n ...props.wrapProps,\n },\n triggerProps: {\n ...restDefaults.triggerProps,\n ...props.triggerProps,\n style: {\n ...restDefaults.triggerProps?.style,\n ...(props.triggerProps && 'style' in props.triggerProps && typeof props.triggerProps.style === 'object'\n ? props.triggerProps.style\n : {}),\n },\n } as TP,\n };\n const context = useContext(ReactEasyContext);\n const defaultTitle = useLocalizedText(\n confirmType === 'delete' ? context.defaultDeletionConfirmTitle : context.defaultConfirmTitle\n );\n const defaultContent = useLocalizedText(\n confirmType === 'delete' ? context.defaultDeletionConfirmContent : context.defaultConfirmContent\n );\n const {\n triggerComponent: Trigger = Button,\n triggerEvent = 'onClick' as E,\n triggerProps,\n danger,\n title = defaultTitle,\n content = defaultContent,\n titleColor,\n contentColor,\n icon,\n iconColor,\n okButtonProps,\n onOk,\n afterOk,\n children,\n ...restProps\n } = mergedProps;\n\n useContextValidator();\n\n const app = App.useApp();\n // @ts-expect-error: because app may return a stub object when App is not used\n const modal = app.modal?.confirm ? app.modal : Modal;\n const { localize } = useContext(ReactEasyContext);\n const [, token] = useToken();\n const [confirmApi, setConfirmApi] = useState<ReturnType<typeof confirm>>();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const triggerEventArgsRef = useRef<any[]>(undefined);\n\n const fallbackColor = danger ? 'danger' : undefined;\n // Text with color\n const coloredText = (text: ReactNode, color?: TextProps['type'] | 'primary') => {\n const textContent = typeof text === 'string' ? (localize?.(text) ?? text) : text;\n if (!color) {\n return textContent;\n }\n if (color === 'primary') {\n return <Typography.Text style={{ color: token.colorPrimary }}>{textContent}</Typography.Text>;\n }\n return textContent ? <Typography.Text type={color}>{textContent}</Typography.Text> : undefined;\n };\n\n // Show confirm box\n const showConfirm: ConfirmActionRef['show'] = useRefFunction(() => {\n const api = modal.confirm({\n title: coloredText(title, titleColor ?? fallbackColor ?? 'warning'),\n content: coloredText(content, contentColor),\n icon: coloredText(icon, iconColor ?? fallbackColor ?? 'warning'),\n autoFocusButton: null,\n okButtonProps: {\n ...(danger ? { type: 'primary', danger: true } : {}),\n ...(okButtonProps ?? {}),\n },\n onOk: async () => {\n try {\n api.update({\n closable: true,\n okButtonProps: {\n loading: true,\n ...okButtonProps,\n },\n cancelButtonProps: {\n disabled: true,\n },\n });\n const result = await onOk?.(...((triggerEventArgsRef.current ?? []) as Parameters<typeof onOk>));\n afterOk?.(result);\n } finally {\n api.update({\n closable: false,\n okButtonProps: {\n loading: false,\n },\n cancelButtonProps: {\n disabled: false,\n },\n });\n }\n },\n ...restProps,\n });\n setConfirmApi(api);\n return api;\n });\n\n // Output ref\n useImperativeHandle(ref, () => ({ show: showConfirm, ...confirmApi! }), [showConfirm, confirmApi]);\n\n // Render trigger component\n return (\n <Trigger\n {...triggerProps}\n // Trigger event\n {...((triggerEvent\n ? {\n [triggerEvent]: (...args: any[]) => {\n triggerEventArgsRef.current = args;\n const api = showConfirm();\n if (triggerProps && typeof triggerProps[triggerEvent] === 'function') {\n (triggerProps[triggerEvent] as (...args: any[]) => void)(...args, { api });\n }\n },\n }\n : {}) as TP)}\n >\n {(triggerProps as { children?: ReactNode }).children ?? children}\n </Trigger>\n );\n };\n Render.displayName = 'ConfirmAction';\n return Render;\n};\n\n/**\n * **EN:** Add default properties to the ConfirmAction component\n *\n * **CN:** 给ConfirmAction组件添加默认属性\n *\n * @param WrappedComponent ConfirmAction component | ConfirmAction组件\n * @param defaultProps Default properties | 默认属性\n */\nexport const withDefaultConfirmActionProps = <TP extends object, E extends keyof TP>(\n WrappedComponent: ComponentType<PropsWithoutRef<ConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>>,\n defaultProps?: Partial<ConfirmActionProps<TP, E>>\n) => {\n const WithDefaultProps = forwardRef<ConfirmActionRef, ConfirmActionProps<TP, E>>((props, ref) => {\n const mergedProps: ConfirmActionProps<TP, E> = {\n ...defaultProps,\n ...props,\n triggerProps: {\n ...defaultProps?.triggerProps,\n ...props.triggerProps,\n } as TP,\n };\n return <WrappedComponent ref={ref} {...mergedProps} />;\n });\n WithDefaultProps.displayName = 'ForwardedRef(WithDefaultProps)';\n return WithDefaultProps;\n};\n\nconst renderConfirmAction = genRenderer({\n confirmType: 'normal',\n});\nconst forwarded = forwardRef(renderConfirmAction);\nforwarded.displayName = 'ForwardedRef(ConfirmAction)';\n\n/**\n * **EN:** Interface of generic type component\n *\n * **CN:** 泛型组件的接口\n */\nexport type GenericConfirmActionInterface = <TP extends object, E extends keyof TP>(\n props: PropsWithoutRef<TypedConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>\n) => ReactElement;\n\n/**\n * **EN:** Interface of specific type component\n *\n * **CN:** 具体类型组件的接口\n */\nexport type TypedConfirmActionInterface<TP extends object, E extends keyof TP> = ComponentType<\n PropsWithoutRef<TypedConfirmActionProps<TP, E>> & RefAttributes<ConfirmActionRef>\n>;\n\n/**\n * **EN:** Props definition of specific type component\n *\n * **CN:** 具体类型组件的Props定义\n */\ntype TypedConfirmActionProps<TP extends object, E extends keyof TP> = Omit<\n ConfirmActionProps<TP, E>,\n 'triggerComponent' | 'triggerEvent'\n>;\nexport type ConfirmActionWithStatic = GenericConfirmActionInterface & {\n /**\n * **EN:** Confirm box with button trigger\n *\n * **CN:** 按钮类型的确认框\n */\n Button: TypedConfirmActionInterface<ButtonProps, 'onClick'>;\n /**\n * **EN:** Confirm box with switch trigger\n *\n * **CN:** 开关类型的确认框\n */\n Switch: TypedConfirmActionInterface<SwitchProps, 'onChange'>;\n /**\n * **EN:** Confirm box with link trigger\n *\n * **CN:** 链接类型的确认框\n */\n Link: TypedConfirmActionInterface<LinkProps, 'onClick'>;\n};\n\n/**\n * **EN:** Confirm box component with trigger\n *\n * **CN:** 带触发器的确认框组件\n */\nconst ConfirmAction = forwarded as unknown as ConfirmActionWithStatic;\n// Type of button\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Button = withDefaultConfirmActionProps<ButtonProps, 'onClick'>(forwarded as any, {\n triggerComponent: Button,\n triggerEvent: 'onClick',\n triggerProps: {},\n});\n// Type of switch\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Switch = withDefaultConfirmActionProps<SwitchProps, 'onChange'>(forwarded as any, {\n triggerComponent: Switch,\n triggerEvent: 'onChange',\n triggerProps: {},\n});\n// Type of link\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nConfirmAction.Link = withDefaultConfirmActionProps<LinkProps, 'onClick'>(forwarded as any, {\n triggerComponent: Typography.Link,\n triggerEvent: 'onClick',\n triggerProps: {\n style: { whiteSpace: 'nowrap' },\n },\n});\n\nexport default ConfirmAction;\n"],
5
+ "mappings": "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",
6
6
  "names": ["ReactEasyContext", "useLocalizedText", "useContextValidator", "useToken", "useRefFunction"]
7
7
  }
@@ -56,6 +56,8 @@ var genModalActionRenderer = (defaultProps) => {
56
56
  destroyOnClose = true,
57
57
  destroyOnHidden = true,
58
58
  maskClosable = false,
59
+ okButtonProps,
60
+ cancelButtonProps,
59
61
  onOk,
60
62
  afterOk,
61
63
  onCancel,
@@ -148,12 +150,20 @@ var genModalActionRenderer = (defaultProps) => {
148
150
  destroyOnClose,
149
151
  destroyOnHidden,
150
152
  maskClosable,
151
- onOk: async (e) => {
153
+ okButtonProps: {
154
+ loading: isSaving,
155
+ ...okButtonProps
156
+ },
157
+ cancelButtonProps: {
158
+ disabled: isSaving,
159
+ ...cancelButtonProps
160
+ },
161
+ onOk: async () => {
152
162
  var _a;
153
163
  let formData;
154
164
  try {
155
165
  formData = await (form == null ? void 0 : form.validateFields());
156
- } catch (e2) {
166
+ } catch (e) {
157
167
  return;
158
168
  }
159
169
  if (Object.keys(formData).length === 0) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/ModalAction/index.tsx"],
4
- "sourcesContent": ["import type { ComponentType, FC, ForwardedRef, ReactElement, ReactNode, RefAttributes } from 'react';\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport type { ButtonProps, FormInstance, ModalProps, SwitchProps } from 'antd';\nimport { Button, Form, Modal, Switch, Typography } from 'antd';\nimport type { LinkProps } from 'antd/es/typography/Link';\nimport { isForwardRef } from 'react-is';\nimport useContextValidator from '../../hooks/useContextValidator';\n\n/**\n * **EN:** Symbol for not closing the dialog when submitting the form, which takes effect when\n * returning in the `onSave` event of the editing form component\n *\n * **CN:** 提交表单时不关闭弹框的Symbol,在编辑表单组件的`onSave`事件中返回时生效\n */\nexport const SubmitWithoutClosingSymbol = Symbol('[SubmitWithoutClose]');\n\nexport type ModalActionProps<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n> = Omit<ModalProps, 'onOk'> &\n ModalActionTrigger<FD, CP, TP, E> & {\n /**\n * **EN:** Form editing component, do not use the Form component inside the component, the form\n * component and form instance are automatically created by the parent component\n *\n * **CN:** 表单编辑组件,组件内部不要使用Form组件,表单组件及表单实例由父组件自动创建\n */\n formComp: ComponentType<CP & RefAttributes<CRef>>;\n /**\n * **EN:** Props of the form editing component\n *\n * **CN:** 表单编辑组件的Props属性\n */\n formProps?: Omit<CP, keyof FormCompPropsConstraint<FD>>;\n /**\n * **EN:** The callback when clicks the confirmation button, support asynchronous saving, return\n * `SubmitWithoutClosingSymbol` can prevent the dialog from closing, return other values will be\n * passed to the `afterOk` event, if any\n *\n * **CN:** 点击确认按钮的回调,支持异步保存,返回`SubmitWithoutClosingSymbol`可以阻止弹框关闭,返回其他值会传递给`afterOk`事件,如果有的话\n */\n onOk?: (\n formData: FD,\n // @ts-expect-error: because TP[E] should be a function type\n ...args: Parameters<TP[E]>\n ) => unknown | Promise<unknown>;\n /**\n * **EN:** The callback after the confirmation event is completed, it will not be triggered when\n * it fails, the parameter is the return value of `onOk`\n *\n * **CN:** 确认事件完成后的回调,失败时不会触发,参数为`onOk`的返回值\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n afterOk?: (data?: any) => void;\n };\n\nexport interface FormCompPropsConstraint<FD> {\n /**\n * **EN:** Automatically generated form instance, use this form instance in FormComp, do not\n * create a new instance\n *\n * **CN:** 自动生成的表单实例,编辑表单要使用这个表单实例,不要新创建实例\n */\n form: FormInstance<FD>;\n /**\n * **EN:** Register the form save event, the callback function passed in will be called when the\n * confirm button is clicked, support asynchronous saving\n *\n * **CN:** 注册表单保存事件,传入的回调函数会在点击确认按钮时被调用,支持异步保存\n *\n * @param handler Event handler | 事件处理函数\n */\n onSave: (\n handler: (\n /**\n * **EN:** Form data\n *\n * **CN:** 表单数据\n */\n formData: FD,\n /**\n * **EN:** Trigger click event data, for example, for the `Switch` type trigger, you can get\n * the value of the switch; for the `Button` type trigger, you can get the click event object\n * of the button\n *\n * **CN:** 触发器点击的事件数据,例如,对于`Switch`类型的触发器,可以获取点击开关的值;对于`Button`类型的触发器,可以获取按钮的点击事件对象\n */\n ...triggerEventData: any[]\n ) => unknown | Promise<unknown>\n ) => void;\n /**\n * **EN:** Listen to the open and close status of the dialog. When `destroyOnHidden` is set to\n * false, the form component instance is cached, and the dialog can only be listened to in this\n * way\n *\n * **CN:** 监听弹框打开关闭状态。当`destroyOnHidden`设置为false时,表单组件实例被缓存,只能通过这种方式监听弹框\n *\n * @param handler Event handler | 事件处理函数\n */\n onOpenChange: (handler: ModalProps['afterOpenChange']) => void;\n /**\n * **EN:** Set the dialog open status\n *\n * **CN:** 设置弹框打开状态\n *\n * @param open Whether is open or not | 弹窗是否打开\n */\n setOpen: (open: boolean) => void;\n /**\n * **EN:** Modify the properties of the dialog, such as title, width, button properties, etc.\n *\n * **CN:** 修改弹窗的属性,例如标题、宽度,按钮属性等\n */\n updateModalProps: (props: Partial<ModalProps>) => void;\n /**\n * **EN:** Trigger click event data, for example, for the `Switch` type trigger, you can get the\n * value of the switch; for the `Button` type trigger, you can get the click event object of the\n * button\n *\n * **CN:** 触发器点击的事件数据,例如,对于`Switch`类型的触发器,可以获取点击开关的值,对于`Button`类型的触发器,可以获取按钮的点击事件对象\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n triggerEventData?: any[];\n}\n\nexport interface ModalActionTrigger<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n> {\n /**\n * **EN:** Trigger component, click to show the dialog\n *\n * **CN:** 弹窗触发器组件,点击触发显示弹框\n */\n triggerComponent?: ComponentType<TP> | FC<TP>;\n /**\n * **EN:** Props of the trigger component\n *\n * **CN:** 触发器组件的Props属性\n */\n triggerProps?: TP & {\n /**\n * **EN:** Set a custom function to determine whether to show the trigger button\n *\n * **CN:** 设置一个自定义函数,用于判断是否显示触发器按钮\n *\n * @default true\n *\n * @param formProps Form component props | 表单组件的props\n */\n show?: boolean | ((formProps?: Omit<CP, keyof FormCompPropsConstraint<FD>>) => boolean);\n };\n /**\n * **EN:** The event name that triggers the dialog\n *\n * **CN:** 触发弹窗的事件名称\n *\n * - `Button`: 'onClick'\n * - `Switch`: 'onChange'\n * - `Link`: 'onClick'\n */\n triggerEvent?: E;\n /**\n * **EN:** Custom trigger content\n *\n * **CN:** 自定义触发器内容\n */\n children?: ReactNode;\n}\nexport type ModalActionRef<R> = R & {\n /**\n * **EN:** Show the dialog\n *\n * **CN:** 显示弹框\n */\n show: () => void;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const genModalActionRenderer = (defaultProps: Partial<ModalActionProps<any, any, any, never, never>>) => {\n const ModalActionRenderer = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n >(\n props: ModalActionProps<FD, CP, TP, E, CRef>,\n ref: ForwardedRef<ModalActionRef<CRef>>\n ) => {\n const [userModalProps, setUserModalProps] = useState<Partial<ModalProps>>({});\n let mergedProps = mergeProps<FD, CP, TP, E, CRef>(defaultProps, props);\n mergedProps = mergeProps(mergedProps, userModalProps as typeof props);\n const {\n formComp,\n formProps,\n triggerComponent: Trigger = Button,\n triggerEvent = 'onClick' as E,\n triggerProps,\n open: openInProps,\n destroyOnClose = true,\n destroyOnHidden = true,\n maskClosable = false,\n onOk,\n afterOk,\n onCancel,\n afterClose,\n children,\n ...restProps\n } = mergedProps;\n useContextValidator();\n const FormComp = formComp as ComponentType<FormCompPropsConstraint<FD> & RefAttributes<CRef>>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const triggerEventArgsRef = useRef<any[]>(undefined);\n const [open, setOpen] = useState(false);\n const saveFuncRef = useRef<(formData: FD, ...args: any[]) => unknown>(undefined);\n const [isSaving, setIsSaving] = useState(false);\n const [formCompRef, setFormCompRef] = useState<CRef | null>(null);\n const [form, setForm] = useState<FormInstance<FD>>();\n const formRef = useRef<FormInstance<FD>>(form);\n formRef.current = form;\n const destroyOnCloseRef = useRef(destroyOnClose);\n destroyOnCloseRef.current = destroyOnClose || destroyOnHidden;\n const openListenerRef = useRef<ModalProps['afterOpenChange']>(undefined);\n\n // Listen to the open props changes\n useEffect(() => {\n if (openInProps) {\n setOpen(openInProps);\n }\n }, [openInProps]);\n\n // Reset the form after closed\n useEffect(() => {\n if (!destroyOnCloseRef.current && open && formRef.current) {\n formRef.current.resetFields();\n }\n }, [open]);\n\n // show trigger\n const showInProps = triggerProps?.show;\n const showTrigger = useMemo(() => {\n if (typeof showInProps === 'boolean') {\n return showInProps;\n } else if (typeof showInProps === 'function') {\n return showInProps(formProps);\n }\n return true;\n }, [showInProps, formProps]);\n\n // Show the dialog\n const showModal = useCallback(() => {\n setOpen(true);\n openListenerRef.current?.(true);\n }, []);\n // Hide the dialog\n const hideModal = useCallback(() => {\n setOpen(false);\n openListenerRef.current?.(false);\n }, []);\n // Set the dialog status listener\n const setOpenListener = useCallback(\n (listener: ModalProps['afterOpenChange']) => {\n openListenerRef.current = listener;\n // Call once when initialized\n openListenerRef.current?.(open);\n },\n [open]\n );\n // Receive the onSave callback method passed by the form component\n const setOnSaveHandler: FormCompPropsConstraint<FD>['onSave'] = useCallback((handler) => {\n saveFuncRef.current = handler;\n }, []);\n // Set the dialog status and trigger the onOpenChange event of the form component\n const handleSetOpen = useCallback((open: boolean) => {\n setOpen(open);\n openListenerRef.current?.(open);\n }, []);\n\n // Output ref\n useImperativeHandle(ref, () => ({ ...formCompRef, show: showModal }) as ModalActionRef<CRef>, [\n formCompRef,\n showModal,\n ]);\n\n // Render the trigger component\n return (\n <>\n {showTrigger && (\n <Trigger\n {...triggerProps}\n // Trigger event\n {...((triggerEvent\n ? {\n [triggerEvent]: (...args: any[]) => {\n triggerEventArgsRef.current = args;\n showModal();\n if (triggerProps && typeof triggerProps[triggerEvent] === 'function') {\n (triggerProps[triggerEvent] as (...args: any[]) => void)(...args);\n }\n },\n }\n : {}) as TP)}\n >\n {(triggerProps as { children?: ReactNode }).children ?? children}\n </Trigger>\n )}\n <Modal\n open={open}\n confirmLoading={isSaving}\n destroyOnClose={destroyOnClose}\n destroyOnHidden={destroyOnHidden}\n maskClosable={maskClosable}\n onOk={async (e) => {\n let formData: FD;\n try {\n formData = (await form?.validateFields()) as FD;\n } catch (e) {\n // Validation error, should not throw error\n return;\n }\n if (Object.keys(formData).length === 0) {\n console.warn(\n 'form.getFieldsValue() is empty. Please use the form instance passed to formComp instead of creating the form instance yourself.'\n );\n }\n try {\n setIsSaving(true);\n // First call onSave of the form component\n let result = await saveFuncRef.current?.(formData, ...(triggerEventArgsRef.current ?? []));\n // The onSave of the form component has the ability to prevent the dialog from closing\n if (result === SubmitWithoutClosingSymbol) {\n throw new Error('SubmitWithoutClosing');\n }\n // Then call onOk of the dialog, support asynchronous, and will pass the return value of onSave, if any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result = await onOk?.((result as FD) ?? formData, ...((triggerEventArgsRef.current ?? []) as any));\n // onOk also has the ability to prevent the dialog from closing\n if (result === SubmitWithoutClosingSymbol) {\n throw new Error('SubmitWithoutClosing');\n }\n // If onOK is successful, close the dialog and trigger the afterOk event\n hideModal();\n afterOk?.(result);\n } catch (error) {\n console.error(error);\n } finally {\n setIsSaving(false);\n }\n }}\n onCancel={async (e) => {\n hideModal();\n onCancel?.(e);\n }}\n afterClose={() => {\n hideModal();\n afterClose?.();\n }}\n {...restProps}\n >\n <FormCreator<FD> onCreate={setForm} />\n {form && (\n <FormComp\n ref={isForwardRef(FormComp) ? setFormCompRef : undefined}\n {...formProps}\n form={form}\n onOpenChange={setOpenListener}\n onSave={setOnSaveHandler}\n triggerEventData={triggerEventArgsRef.current}\n setOpen={handleSetOpen}\n updateModalProps={setUserModalProps}\n />\n )}\n </Modal>\n </>\n );\n };\n return ModalActionRenderer;\n};\n\nfunction mergeProps<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(first?: Partial<ModalActionProps<FD, CP, TP, E, CRef>>, second?: Partial<ModalActionProps<FD, CP, TP, E, CRef>>) {\n return {\n ...first,\n ...second,\n okButtonProps: {\n ...first?.okButtonProps,\n ...second?.okButtonProps,\n },\n cancelButtonProps: {\n ...first?.cancelButtonProps,\n ...second?.cancelButtonProps,\n },\n bodyProps: {\n ...first?.bodyProps,\n ...second?.bodyProps,\n },\n maskProps: {\n ...first?.maskProps,\n ...second?.maskProps,\n },\n wrapProps: {\n ...first?.wrapProps,\n ...second?.wrapProps,\n },\n triggerProps: {\n ...first?.triggerProps,\n ...second?.triggerProps,\n style: {\n ...(first?.triggerProps && 'style' in first.triggerProps && typeof first.triggerProps.style === 'object'\n ? first.triggerProps.style\n : {}),\n ...(second?.triggerProps && 'style' in second.triggerProps && typeof second.triggerProps.style === 'object'\n ? second.triggerProps.style\n : {}),\n },\n },\n } as unknown as ModalActionProps<FD, CP, TP, E, CRef>;\n}\n\nfunction FormCreator<FD extends object>(props: { onCreate: (form: FormInstance<FD> | undefined) => void }) {\n const { onCreate } = props;\n const onCreateRef = useRef(onCreate);\n onCreateRef.current = onCreate;\n const [form] = Form.useForm<FD>();\n\n // output ref\n useEffect(() => {\n onCreateRef.current(form);\n return () => {\n onCreateRef.current(undefined);\n };\n }, [form]);\n\n return null;\n}\n\n/**\n * **EN:** Add default properties to the ModalAction component\n *\n * **CN:** 给ModalAction组件添加默认属性\n *\n * @param WrappedComponent ModalAction component | ModalAction组件\n * @param defaultProps Default properties | 默认属性\n */\nexport const withDefaultModalActionProps = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(\n WrappedComponent: ComponentType<ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>>,\n defaultProps?: Partial<ModalActionProps<FD, CP, TP, E, CRef>> | (() => Partial<ModalActionProps<FD, CP, TP, E, CRef>>)\n) => {\n const WithDefaultProps = forwardRef<ModalActionRef<CRef>, ModalActionProps<FD, CP, TP, E, CRef>>((props, ref) => {\n const useDefaultProps = typeof defaultProps === 'function' ? defaultProps : () => defaultProps;\n const defaults = useDefaultProps();\n const mergedProps = mergeProps(defaults, props);\n WithDefaultProps.displayName = 'ForwardedRef(WithDefaultProps)';\n return <WrappedComponent ref={ref} {...mergedProps} />;\n });\n return WithDefaultProps;\n};\n\nconst renderModalAction = genModalActionRenderer({});\nconst forwardedModalAction = forwardRef(renderModalAction);\nforwardedModalAction.displayName = 'ForwardedRef(ModalAction)';\n/**\n * **EN:** ModalAction component type\n *\n * **CN:** ModalAction组件的类型\n */\nexport type ModalActionInterface<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n> = ComponentType<ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>>;\n/**\n * **EN:** ModalAction component with generic type\n *\n * **CN:** ModalAction泛型组件的类型\n */\nexport type GenericModalActionInterface = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(\n props: ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>\n) => ReactElement;\n/**\n * **EN:** ModalAction with specified trigger type (specified form component)\n *\n * **CN:** 已指定Trigger类型的ModalAction(并且已指定表单组件)\n */\ntype ModalActionWithTrigger<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n OMIT extends string = never,\n> = ComponentType<\n Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'triggerComponent' | 'triggerEvent' | OMIT> &\n RefAttributes<ModalActionRef<CRef>>\n>;\n\n/**\n * **EN:** ModalAction with specified trigger type (unspecified form component, keep generic)\n *\n * **CN:** 已指定Trigger类型的ModalAction(未指定表单组件,保持泛型)\n */\ntype GenericModalActionWithTrigger<TP extends object, E extends keyof TP, OMIT extends string = never> = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'triggerComponent' | 'triggerEvent' | OMIT> &\n RefAttributes<ModalActionRef<CRef>>\n) => ReactElement;\n\n/**\n * **EN:** Built-in trigger types (specified form components)\n *\n * **CN:** 内置的几种触发器类型(已指定表单组件)\n */\ninterface TypedTriggers<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n OMIT extends string = never,\n> {\n /**\n * **EN:** Dialog with button type trigger\n *\n * **CN:** 按钮类型的弹窗\n */\n Button: ModalActionWithTrigger<FD, CP, ButtonProps, 'onClick', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with switch type trigger\n *\n * **CN:** 开关类型的弹窗\n */\n Switch: ModalActionWithTrigger<FD, CP, SwitchProps, 'onChange', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with link type trigger\n *\n * **CN:** 链接类型的弹窗\n */\n Link: ModalActionWithTrigger<FD, CP, LinkProps, 'onClick', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n}\n/**\n * **EN:** Built-in trigger types (generic types, unspecified form components)\n *\n * **CN:** 内置的几种触发器类型(泛型类型,未指定表单组件)\n */\ninterface GenericTypedTriggers<OMIT extends string = never> {\n /**\n * **EN:** Dialog with button type trigger\n *\n * **CN:** 按钮类型的弹窗\n */\n Button: GenericModalActionWithTrigger<ButtonProps, 'onClick', 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with switch type trigger\n *\n * **CN:** 开关类型的弹窗\n */\n Switch: GenericModalActionWithTrigger<SwitchProps, 'onChange', 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with link type trigger\n *\n * **CN:** 链接类型的弹窗\n */\n Link: GenericModalActionWithTrigger<LinkProps, 'onClick', 'triggerComponent' | 'triggerEvent' | OMIT>;\n}\ntype WithGenericTriggers<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n OMIT extends string = never,\n> = (<TP extends object, E extends keyof TP>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, OMIT> & RefAttributes<ModalActionRef<CRef>>\n) => ReactElement) &\n (CP extends never ? GenericTypedTriggers<OMIT> : TypedTriggers<FD, CP, CRef, OMIT>);\n\n/**\n * **EN:** Add trigger types to the ModalAction component\n *\n * **CN:** 给ModalAction组件添加子触发器类型\n */\nconst addTriggers = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n OuterTP extends object,\n OuterE extends keyof OuterTP,\n CRef extends object,\n OMIT extends string = never,\n>(\n comp: ComponentType<ModalActionProps<FD, CP, OuterTP, OuterE, CRef> & RefAttributes<ModalActionRef<CRef>>>\n) => {\n const patchedComp = comp as WithGenericTriggers<FD, CP, CRef, OMIT>;\n // Type of button trigger\n patchedComp.Button = withDefaultModalActionProps(comp as ModalActionInterface<FD, CP, ButtonProps, 'onClick', CRef>, {\n triggerComponent: Button,\n triggerEvent: 'onClick',\n triggerProps: {},\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any;\n // Type of switch trigger\n patchedComp.Switch = withDefaultModalActionProps(\n comp as ModalActionInterface<FD, CP, SwitchProps, 'onChange', CRef>,\n {\n triggerComponent: Switch,\n triggerEvent: 'onChange',\n triggerProps: {},\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) as any;\n // Type of link trigger\n patchedComp.Link = withDefaultModalActionProps(comp as ModalActionInterface<FD, CP, LinkProps, 'onClick', CRef>, {\n triggerComponent: Typography.Link,\n triggerEvent: 'onClick',\n triggerProps: {\n style: { whiteSpace: 'nowrap' },\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any;\n return patchedComp;\n};\n\n/**\n * **EN:** Dialog component with trigger\n *\n * **CN:** 带触发器的弹窗组件\n */\nconst ModalAction = addTriggers(forwardedModalAction);\n\n/**\n * **EN:** Dialog component with trigger\n *\n * **CN:** 带触发器的弹窗组件\n */\nexport type ModalActionWithStatic = typeof ModalAction & {\n /**\n * **EN:** Symbol for not closing the dialog when submitting the form, which takes effect when\n * returning in the `onSave` event of the editing form component\n *\n * **CN:** 提交表单时不关闭弹框的Symbol,在编辑表单组件的`onSave`事件中返回时生效\n */\n SubmitWithoutClosing: symbol;\n};\n(ModalAction as ModalActionWithStatic).SubmitWithoutClosing = SubmitWithoutClosingSymbol;\n\n/**\n * **EN:** Generate a dialog component based on the editing form component\n *\n * **CN:** 基于编辑表单组件生成一个弹框组件\n *\n * @param formComp Component of dialog content | 弹窗内容组件\n * @param defaultProps Default properties of the dialog | 弹窗的默认属性\n */\nexport function withModalAction<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n OuterTP extends object,\n OuterE extends keyof OuterTP,\n CRef extends object,\n>(\n formComp: ComponentType<CP & FormCompPropsConstraint<FD> & RefAttributes<CRef>>,\n defaultProps?:\n | Partial<ModalActionProps<FD, CP, OuterTP, OuterE, CRef>>\n | (() => Partial<ModalActionProps<FD, CP, OuterTP, OuterE, CRef>>)\n) {\n const withForm = withDefaultModalActionProps(\n forwardedModalAction as unknown as ModalActionInterface<FD, CP, OuterTP, OuterE, CRef>,\n () => {\n const useDefaultProps = typeof defaultProps === 'function' ? defaultProps : () => defaultProps;\n const defaults = useDefaultProps();\n return {\n formComp,\n ...defaults,\n };\n }\n ) as unknown as <TP extends object, E extends keyof TP>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'formComp'> & RefAttributes<ModalActionRef<CRef>>\n ) => ReactElement;\n return addTriggers<FD, CP, OuterTP, OuterE, CRef, 'formComp'>(withForm);\n}\n\nexport default ModalAction as ModalActionWithStatic;\n"],
5
- "mappings": "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",
6
- "names": ["useContextValidator", "open", "e"]
4
+ "sourcesContent": ["import type { ComponentType, FC, ForwardedRef, ReactElement, ReactNode, RefAttributes } from 'react';\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport type { ButtonProps, FormInstance, ModalProps, SwitchProps } from 'antd';\nimport { Button, Form, Modal, Switch, Typography } from 'antd';\nimport type { LinkProps } from 'antd/es/typography/Link';\nimport { isForwardRef } from 'react-is';\nimport useContextValidator from '../../hooks/useContextValidator';\n\n/**\n * **EN:** Symbol for not closing the dialog when submitting the form, which takes effect when\n * returning in the `onSave` event of the editing form component\n *\n * **CN:** 提交表单时不关闭弹框的Symbol,在编辑表单组件的`onSave`事件中返回时生效\n */\nexport const SubmitWithoutClosingSymbol = Symbol('[SubmitWithoutClose]');\n\nexport type ModalActionProps<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n> = Omit<ModalProps, 'onOk'> &\n ModalActionTrigger<FD, CP, TP, E> & {\n /**\n * **EN:** Form editing component, do not use the Form component inside the component, the form\n * component and form instance are automatically created by the parent component\n *\n * **CN:** 表单编辑组件,组件内部不要使用Form组件,表单组件及表单实例由父组件自动创建\n */\n formComp: ComponentType<CP & RefAttributes<CRef>>;\n /**\n * **EN:** Props of the form editing component\n *\n * **CN:** 表单编辑组件的Props属性\n */\n formProps?: Omit<CP, keyof FormCompPropsConstraint<FD>>;\n /**\n * **EN:** The callback when clicks the confirmation button, support asynchronous saving, return\n * `SubmitWithoutClosingSymbol` can prevent the dialog from closing, return other values will be\n * passed to the `afterOk` event, if any\n *\n * **CN:** 点击确认按钮的回调,支持异步保存,返回`SubmitWithoutClosingSymbol`可以阻止弹框关闭,返回其他值会传递给`afterOk`事件,如果有的话\n */\n onOk?: (\n formData: FD,\n // @ts-expect-error: because TP[E] should be a function type\n ...args: Parameters<TP[E]>\n ) => unknown | Promise<unknown>;\n /**\n * **EN:** The callback after the confirmation event is completed, it will not be triggered when\n * it fails, the parameter is the return value of `onOk`\n *\n * **CN:** 确认事件完成后的回调,失败时不会触发,参数为`onOk`的返回值\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n afterOk?: (data?: any) => void;\n };\n\nexport interface FormCompPropsConstraint<FD> {\n /**\n * **EN:** Automatically generated form instance, use this form instance in FormComp, do not\n * create a new instance\n *\n * **CN:** 自动生成的表单实例,编辑表单要使用这个表单实例,不要新创建实例\n */\n form: FormInstance<FD>;\n /**\n * **EN:** Register the form save event, the callback function passed in will be called when the\n * confirm button is clicked, support asynchronous saving\n *\n * **CN:** 注册表单保存事件,传入的回调函数会在点击确认按钮时被调用,支持异步保存\n *\n * @param handler Event handler | 事件处理函数\n */\n onSave: (\n handler: (\n /**\n * **EN:** Form data\n *\n * **CN:** 表单数据\n */\n formData: FD,\n /**\n * **EN:** Trigger click event data, for example, for the `Switch` type trigger, you can get\n * the value of the switch; for the `Button` type trigger, you can get the click event object\n * of the button\n *\n * **CN:** 触发器点击的事件数据,例如,对于`Switch`类型的触发器,可以获取点击开关的值;对于`Button`类型的触发器,可以获取按钮的点击事件对象\n */\n ...triggerEventData: any[]\n ) => unknown | Promise<unknown>\n ) => void;\n /**\n * **EN:** Listen to the open and close status of the dialog. When `destroyOnHidden` is set to\n * false, the form component instance is cached, and the dialog can only be listened to in this\n * way\n *\n * **CN:** 监听弹框打开关闭状态。当`destroyOnHidden`设置为false时,表单组件实例被缓存,只能通过这种方式监听弹框\n *\n * @param handler Event handler | 事件处理函数\n */\n onOpenChange: (handler: ModalProps['afterOpenChange']) => void;\n /**\n * **EN:** Set the dialog open status\n *\n * **CN:** 设置弹框打开状态\n *\n * @param open Whether is open or not | 弹窗是否打开\n */\n setOpen: (open: boolean) => void;\n /**\n * **EN:** Modify the properties of the dialog, such as title, width, button properties, etc.\n *\n * **CN:** 修改弹窗的属性,例如标题、宽度,按钮属性等\n */\n updateModalProps: (props: Partial<ModalProps>) => void;\n /**\n * **EN:** Trigger click event data, for example, for the `Switch` type trigger, you can get the\n * value of the switch; for the `Button` type trigger, you can get the click event object of the\n * button\n *\n * **CN:** 触发器点击的事件数据,例如,对于`Switch`类型的触发器,可以获取点击开关的值,对于`Button`类型的触发器,可以获取按钮的点击事件对象\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n triggerEventData?: any[];\n}\n\nexport interface ModalActionTrigger<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n> {\n /**\n * **EN:** Trigger component, click to show the dialog\n *\n * **CN:** 弹窗触发器组件,点击触发显示弹框\n */\n triggerComponent?: ComponentType<TP> | FC<TP>;\n /**\n * **EN:** Props of the trigger component\n *\n * **CN:** 触发器组件的Props属性\n */\n triggerProps?: TP & {\n /**\n * **EN:** Set a custom function to determine whether to show the trigger button\n *\n * **CN:** 设置一个自定义函数,用于判断是否显示触发器按钮\n *\n * @default true\n *\n * @param formProps Form component props | 表单组件的props\n */\n show?: boolean | ((formProps?: Omit<CP, keyof FormCompPropsConstraint<FD>>) => boolean);\n };\n /**\n * **EN:** The event name that triggers the dialog\n *\n * **CN:** 触发弹窗的事件名称\n *\n * - `Button`: 'onClick'\n * - `Switch`: 'onChange'\n * - `Link`: 'onClick'\n */\n triggerEvent?: E;\n /**\n * **EN:** Custom trigger content\n *\n * **CN:** 自定义触发器内容\n */\n children?: ReactNode;\n}\nexport type ModalActionRef<R> = R & {\n /**\n * **EN:** Show the dialog\n *\n * **CN:** 显示弹框\n */\n show: () => void;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const genModalActionRenderer = (defaultProps: Partial<ModalActionProps<any, any, any, never, never>>) => {\n const ModalActionRenderer = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n >(\n props: ModalActionProps<FD, CP, TP, E, CRef>,\n ref: ForwardedRef<ModalActionRef<CRef>>\n ) => {\n const [userModalProps, setUserModalProps] = useState<Partial<ModalProps>>({});\n let mergedProps = mergeProps<FD, CP, TP, E, CRef>(defaultProps, props);\n mergedProps = mergeProps(mergedProps, userModalProps as typeof props);\n const {\n formComp,\n formProps,\n triggerComponent: Trigger = Button,\n triggerEvent = 'onClick' as E,\n triggerProps,\n open: openInProps,\n destroyOnClose = true,\n destroyOnHidden = true,\n maskClosable = false,\n okButtonProps,\n cancelButtonProps,\n onOk,\n afterOk,\n onCancel,\n afterClose,\n children,\n ...restProps\n } = mergedProps;\n useContextValidator();\n const FormComp = formComp as ComponentType<FormCompPropsConstraint<FD> & RefAttributes<CRef>>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const triggerEventArgsRef = useRef<any[]>(undefined);\n const [open, setOpen] = useState(false);\n const saveFuncRef = useRef<(formData: FD, ...args: any[]) => unknown>(undefined);\n const [isSaving, setIsSaving] = useState(false);\n const [formCompRef, setFormCompRef] = useState<CRef | null>(null);\n const [form, setForm] = useState<FormInstance<FD>>();\n const formRef = useRef<FormInstance<FD>>(form);\n formRef.current = form;\n const destroyOnCloseRef = useRef(destroyOnClose);\n destroyOnCloseRef.current = destroyOnClose || destroyOnHidden;\n const openListenerRef = useRef<ModalProps['afterOpenChange']>(undefined);\n\n // Listen to the open props changes\n useEffect(() => {\n if (openInProps) {\n setOpen(openInProps);\n }\n }, [openInProps]);\n\n // Reset the form after closed\n useEffect(() => {\n if (!destroyOnCloseRef.current && open && formRef.current) {\n formRef.current.resetFields();\n }\n }, [open]);\n\n // show trigger\n const showInProps = triggerProps?.show;\n const showTrigger = useMemo(() => {\n if (typeof showInProps === 'boolean') {\n return showInProps;\n } else if (typeof showInProps === 'function') {\n return showInProps(formProps);\n }\n return true;\n }, [showInProps, formProps]);\n\n // Show the dialog\n const showModal = useCallback(() => {\n setOpen(true);\n openListenerRef.current?.(true);\n }, []);\n // Hide the dialog\n const hideModal = useCallback(() => {\n setOpen(false);\n openListenerRef.current?.(false);\n }, []);\n // Set the dialog status listener\n const setOpenListener = useCallback(\n (listener: ModalProps['afterOpenChange']) => {\n openListenerRef.current = listener;\n // Call once when initialized\n openListenerRef.current?.(open);\n },\n [open]\n );\n // Receive the onSave callback method passed by the form component\n const setOnSaveHandler: FormCompPropsConstraint<FD>['onSave'] = useCallback((handler) => {\n saveFuncRef.current = handler;\n }, []);\n // Set the dialog status and trigger the onOpenChange event of the form component\n const handleSetOpen = useCallback((open: boolean) => {\n setOpen(open);\n openListenerRef.current?.(open);\n }, []);\n\n // Output ref\n useImperativeHandle(ref, () => ({ ...formCompRef, show: showModal }) as ModalActionRef<CRef>, [\n formCompRef,\n showModal,\n ]);\n\n // Render the trigger component\n return (\n <>\n {showTrigger && (\n <Trigger\n {...triggerProps}\n // Trigger event\n {...((triggerEvent\n ? {\n [triggerEvent]: (...args: any[]) => {\n triggerEventArgsRef.current = args;\n showModal();\n if (triggerProps && typeof triggerProps[triggerEvent] === 'function') {\n (triggerProps[triggerEvent] as (...args: any[]) => void)(...args);\n }\n },\n }\n : {}) as TP)}\n >\n {(triggerProps as { children?: ReactNode }).children ?? children}\n </Trigger>\n )}\n <Modal\n open={open}\n confirmLoading={isSaving}\n destroyOnClose={destroyOnClose}\n destroyOnHidden={destroyOnHidden}\n maskClosable={maskClosable}\n okButtonProps={{\n loading: isSaving,\n ...okButtonProps,\n }}\n cancelButtonProps={{\n disabled: isSaving,\n ...cancelButtonProps,\n }}\n onOk={async () => {\n let formData: FD;\n try {\n formData = (await form?.validateFields()) as FD;\n } catch (e) {\n // Validation error, should not throw error\n return;\n }\n if (Object.keys(formData).length === 0) {\n console.warn(\n 'form.getFieldsValue() is empty. Please use the form instance passed to formComp instead of creating the form instance yourself.'\n );\n }\n try {\n setIsSaving(true);\n // First call onSave of the form component\n let result = await saveFuncRef.current?.(formData, ...(triggerEventArgsRef.current ?? []));\n // The onSave of the form component has the ability to prevent the dialog from closing\n if (result === SubmitWithoutClosingSymbol) {\n throw new Error('SubmitWithoutClosing');\n }\n // Then call onOk of the dialog, support asynchronous, and will pass the return value of onSave, if any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result = await onOk?.((result as FD) ?? formData, ...((triggerEventArgsRef.current ?? []) as any));\n // onOk also has the ability to prevent the dialog from closing\n if (result === SubmitWithoutClosingSymbol) {\n throw new Error('SubmitWithoutClosing');\n }\n // If onOK is successful, close the dialog and trigger the afterOk event\n hideModal();\n afterOk?.(result);\n } catch (error) {\n console.error(error);\n } finally {\n setIsSaving(false);\n }\n }}\n onCancel={async (e) => {\n hideModal();\n onCancel?.(e);\n }}\n afterClose={() => {\n hideModal();\n afterClose?.();\n }}\n {...restProps}\n >\n <FormCreator<FD> onCreate={setForm} />\n {form && (\n <FormComp\n ref={isForwardRef(FormComp) ? setFormCompRef : undefined}\n {...formProps}\n form={form}\n onOpenChange={setOpenListener}\n onSave={setOnSaveHandler}\n triggerEventData={triggerEventArgsRef.current}\n setOpen={handleSetOpen}\n updateModalProps={setUserModalProps}\n />\n )}\n </Modal>\n </>\n );\n };\n return ModalActionRenderer;\n};\n\nfunction mergeProps<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(first?: Partial<ModalActionProps<FD, CP, TP, E, CRef>>, second?: Partial<ModalActionProps<FD, CP, TP, E, CRef>>) {\n return {\n ...first,\n ...second,\n okButtonProps: {\n ...first?.okButtonProps,\n ...second?.okButtonProps,\n },\n cancelButtonProps: {\n ...first?.cancelButtonProps,\n ...second?.cancelButtonProps,\n },\n bodyProps: {\n ...first?.bodyProps,\n ...second?.bodyProps,\n },\n maskProps: {\n ...first?.maskProps,\n ...second?.maskProps,\n },\n wrapProps: {\n ...first?.wrapProps,\n ...second?.wrapProps,\n },\n triggerProps: {\n ...first?.triggerProps,\n ...second?.triggerProps,\n style: {\n ...(first?.triggerProps && 'style' in first.triggerProps && typeof first.triggerProps.style === 'object'\n ? first.triggerProps.style\n : {}),\n ...(second?.triggerProps && 'style' in second.triggerProps && typeof second.triggerProps.style === 'object'\n ? second.triggerProps.style\n : {}),\n },\n },\n } as unknown as ModalActionProps<FD, CP, TP, E, CRef>;\n}\n\nfunction FormCreator<FD extends object>(props: { onCreate: (form: FormInstance<FD> | undefined) => void }) {\n const { onCreate } = props;\n const onCreateRef = useRef(onCreate);\n onCreateRef.current = onCreate;\n const [form] = Form.useForm<FD>();\n\n // output ref\n useEffect(() => {\n onCreateRef.current(form);\n return () => {\n onCreateRef.current(undefined);\n };\n }, [form]);\n\n return null;\n}\n\n/**\n * **EN:** Add default properties to the ModalAction component\n *\n * **CN:** 给ModalAction组件添加默认属性\n *\n * @param WrappedComponent ModalAction component | ModalAction组件\n * @param defaultProps Default properties | 默认属性\n */\nexport const withDefaultModalActionProps = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(\n WrappedComponent: ComponentType<ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>>,\n defaultProps?: Partial<ModalActionProps<FD, CP, TP, E, CRef>> | (() => Partial<ModalActionProps<FD, CP, TP, E, CRef>>)\n) => {\n const WithDefaultProps = forwardRef<ModalActionRef<CRef>, ModalActionProps<FD, CP, TP, E, CRef>>((props, ref) => {\n const useDefaultProps = typeof defaultProps === 'function' ? defaultProps : () => defaultProps;\n const defaults = useDefaultProps();\n const mergedProps = mergeProps(defaults, props);\n WithDefaultProps.displayName = 'ForwardedRef(WithDefaultProps)';\n return <WrappedComponent ref={ref} {...mergedProps} />;\n });\n return WithDefaultProps;\n};\n\nconst renderModalAction = genModalActionRenderer({});\nconst forwardedModalAction = forwardRef(renderModalAction);\nforwardedModalAction.displayName = 'ForwardedRef(ModalAction)';\n/**\n * **EN:** ModalAction component type\n *\n * **CN:** ModalAction组件的类型\n */\nexport type ModalActionInterface<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n> = ComponentType<ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>>;\n/**\n * **EN:** ModalAction component with generic type\n *\n * **CN:** ModalAction泛型组件的类型\n */\nexport type GenericModalActionInterface = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n>(\n props: ModalActionProps<FD, CP, TP, E, CRef> & RefAttributes<ModalActionRef<CRef>>\n) => ReactElement;\n/**\n * **EN:** ModalAction with specified trigger type (specified form component)\n *\n * **CN:** 已指定Trigger类型的ModalAction(并且已指定表单组件)\n */\ntype ModalActionWithTrigger<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n TP extends object,\n E extends keyof TP,\n CRef extends object,\n OMIT extends string = never,\n> = ComponentType<\n Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'triggerComponent' | 'triggerEvent' | OMIT> &\n RefAttributes<ModalActionRef<CRef>>\n>;\n\n/**\n * **EN:** ModalAction with specified trigger type (unspecified form component, keep generic)\n *\n * **CN:** 已指定Trigger类型的ModalAction(未指定表单组件,保持泛型)\n */\ntype GenericModalActionWithTrigger<TP extends object, E extends keyof TP, OMIT extends string = never> = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'triggerComponent' | 'triggerEvent' | OMIT> &\n RefAttributes<ModalActionRef<CRef>>\n) => ReactElement;\n\n/**\n * **EN:** Built-in trigger types (specified form components)\n *\n * **CN:** 内置的几种触发器类型(已指定表单组件)\n */\ninterface TypedTriggers<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n OMIT extends string = never,\n> {\n /**\n * **EN:** Dialog with button type trigger\n *\n * **CN:** 按钮类型的弹窗\n */\n Button: ModalActionWithTrigger<FD, CP, ButtonProps, 'onClick', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with switch type trigger\n *\n * **CN:** 开关类型的弹窗\n */\n Switch: ModalActionWithTrigger<FD, CP, SwitchProps, 'onChange', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with link type trigger\n *\n * **CN:** 链接类型的弹窗\n */\n Link: ModalActionWithTrigger<FD, CP, LinkProps, 'onClick', CRef, 'triggerComponent' | 'triggerEvent' | OMIT>;\n}\n/**\n * **EN:** Built-in trigger types (generic types, unspecified form components)\n *\n * **CN:** 内置的几种触发器类型(泛型类型,未指定表单组件)\n */\ninterface GenericTypedTriggers<OMIT extends string = never> {\n /**\n * **EN:** Dialog with button type trigger\n *\n * **CN:** 按钮类型的弹窗\n */\n Button: GenericModalActionWithTrigger<ButtonProps, 'onClick', 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with switch type trigger\n *\n * **CN:** 开关类型的弹窗\n */\n Switch: GenericModalActionWithTrigger<SwitchProps, 'onChange', 'triggerComponent' | 'triggerEvent' | OMIT>;\n /**\n * **EN:** Dialog with link type trigger\n *\n * **CN:** 链接类型的弹窗\n */\n Link: GenericModalActionWithTrigger<LinkProps, 'onClick', 'triggerComponent' | 'triggerEvent' | OMIT>;\n}\ntype WithGenericTriggers<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n CRef extends object,\n OMIT extends string = never,\n> = (<TP extends object, E extends keyof TP>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, OMIT> & RefAttributes<ModalActionRef<CRef>>\n) => ReactElement) &\n (CP extends never ? GenericTypedTriggers<OMIT> : TypedTriggers<FD, CP, CRef, OMIT>);\n\n/**\n * **EN:** Add trigger types to the ModalAction component\n *\n * **CN:** 给ModalAction组件添加子触发器类型\n */\nconst addTriggers = <\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n OuterTP extends object,\n OuterE extends keyof OuterTP,\n CRef extends object,\n OMIT extends string = never,\n>(\n comp: ComponentType<ModalActionProps<FD, CP, OuterTP, OuterE, CRef> & RefAttributes<ModalActionRef<CRef>>>\n) => {\n const patchedComp = comp as WithGenericTriggers<FD, CP, CRef, OMIT>;\n // Type of button trigger\n patchedComp.Button = withDefaultModalActionProps(comp as ModalActionInterface<FD, CP, ButtonProps, 'onClick', CRef>, {\n triggerComponent: Button,\n triggerEvent: 'onClick',\n triggerProps: {},\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any;\n // Type of switch trigger\n patchedComp.Switch = withDefaultModalActionProps(\n comp as ModalActionInterface<FD, CP, SwitchProps, 'onChange', CRef>,\n {\n triggerComponent: Switch,\n triggerEvent: 'onChange',\n triggerProps: {},\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) as any;\n // Type of link trigger\n patchedComp.Link = withDefaultModalActionProps(comp as ModalActionInterface<FD, CP, LinkProps, 'onClick', CRef>, {\n triggerComponent: Typography.Link,\n triggerEvent: 'onClick',\n triggerProps: {\n style: { whiteSpace: 'nowrap' },\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any;\n return patchedComp;\n};\n\n/**\n * **EN:** Dialog component with trigger\n *\n * **CN:** 带触发器的弹窗组件\n */\nconst ModalAction = addTriggers(forwardedModalAction);\n\n/**\n * **EN:** Dialog component with trigger\n *\n * **CN:** 带触发器的弹窗组件\n */\nexport type ModalActionWithStatic = typeof ModalAction & {\n /**\n * **EN:** Symbol for not closing the dialog when submitting the form, which takes effect when\n * returning in the `onSave` event of the editing form component\n *\n * **CN:** 提交表单时不关闭弹框的Symbol,在编辑表单组件的`onSave`事件中返回时生效\n */\n SubmitWithoutClosing: symbol;\n};\n(ModalAction as ModalActionWithStatic).SubmitWithoutClosing = SubmitWithoutClosingSymbol;\n\n/**\n * **EN:** Generate a dialog component based on the editing form component\n *\n * **CN:** 基于编辑表单组件生成一个弹框组件\n *\n * @param formComp Component of dialog content | 弹窗内容组件\n * @param defaultProps Default properties of the dialog | 弹窗的默认属性\n */\nexport function withModalAction<\n FD extends object,\n CP extends FormCompPropsConstraint<FD>,\n OuterTP extends object,\n OuterE extends keyof OuterTP,\n CRef extends object,\n>(\n formComp: ComponentType<CP & FormCompPropsConstraint<FD> & RefAttributes<CRef>>,\n defaultProps?:\n | Partial<ModalActionProps<FD, CP, OuterTP, OuterE, CRef>>\n | (() => Partial<ModalActionProps<FD, CP, OuterTP, OuterE, CRef>>)\n) {\n const withForm = withDefaultModalActionProps(\n forwardedModalAction as unknown as ModalActionInterface<FD, CP, OuterTP, OuterE, CRef>,\n () => {\n const useDefaultProps = typeof defaultProps === 'function' ? defaultProps : () => defaultProps;\n const defaults = useDefaultProps();\n return {\n formComp,\n ...defaults,\n };\n }\n ) as unknown as <TP extends object, E extends keyof TP>(\n props: Omit<ModalActionProps<FD, CP, TP, E, CRef>, 'formComp'> & RefAttributes<ModalActionRef<CRef>>\n ) => ReactElement;\n return addTriggers<FD, CP, OuterTP, OuterE, CRef, 'formComp'>(withForm);\n}\n\nexport default ModalAction as ModalActionWithStatic;\n"],
5
+ "mappings": "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",
6
+ "names": ["useContextValidator", "open"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tiny-codes/react-easy",
3
- "version": "1.0.10",
3
+ "version": "1.0.11",
4
4
  "description": "Helps you use React and AntDesign more easily",
5
5
  "keywords": [
6
6
  "react",