import { ProFormDateTimePicker, ProFormRadio, ProFormSelect, ProFormText, ProFormTextArea, StepsForm, } from '@ant-design/pro-components'; import { FormattedMessage, useIntl, useRequest } from '@umijs/max'; import { Modal, message } from 'antd'; import React, { cloneElement, useCallback, useState } from 'react'; import { updateRule } from '@/services/ant-design-pro/api'; export type FormValueType = { target?: string; template?: string; type?: string; time?: string; frequency?: string; } & Partial; export type UpdateFormProps = { trigger?: JSX.Element; onOk?: () => void; values: Partial; }; const UpdateForm: React.FC = (props) => { const { onOk, values, trigger } = props; const intl = useIntl(); const [open, setOpen] = useState(false); const [messageApi, contextHolder] = message.useMessage(); const { run } = useRequest(updateRule, { manual: true, onSuccess: () => { messageApi.success('Configuration is successful'); onOk?.(); }, onError: () => { messageApi.error('Configuration failed, please try again!'); }, }); const onCancel = useCallback(() => { setOpen(false); }, []); const onOpen = useCallback(() => { setOpen(true); }, []); const onFinish = useCallback( async (values?: any) => { await run({ data: values }); onCancel(); }, [onCancel, run], ); return ( <> {contextHolder} {trigger ? cloneElement(trigger, { onClick: onOpen, }) : null} { return ( {dom} ); }} onFinish={onFinish} > ), }, ]} /> ), min: 5, }, ]} /> ), }, ]} /> ); }; export default UpdateForm;