import { useIntl } from '@umijs/max'; import { Form, Input, Modal } from 'antd'; import React, { useEffect } from 'react'; interface Props { visible: boolean; device: MasterModel.Thing | null; onCancel: () => void; onSubmit: (values: MasterModel.Thing) => void; } const EditDeviceModal: React.FC = ({ visible, device, onCancel, onSubmit, }) => { const [form] = Form.useForm(); const intl = useIntl(); useEffect(() => { if (device) { form.setFieldsValue({ name: device.name, external_id: device?.metadata?.external_id, address: device?.metadata?.address, }); } else { form.resetFields(); } }, [device, form]); const handleFinish = (values: { name: string; external_id: string; address?: string; }) => { const payload: MasterModel.Thing = { ...device, name: values.name, metadata: { ...(device?.metadata || {}), external_id: values.external_id, address: values.address, }, }; onSubmit(payload); }; return ( form.submit()} okText={intl.formatMessage({ id: 'master.devices.ok', defaultMessage: 'OK', })} cancelText={intl.formatMessage({ id: 'master.devices.cancel', defaultMessage: 'Cancel', })} destroyOnClose >
); }; export default EditDeviceModal;