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 LocationModal: React.FC = ({ visible, device, onCancel, onSubmit, }) => { const [form] = Form.useForm(); const intl = useIntl(); useEffect(() => { if (device) { form.setFieldsValue({ lat: device?.metadata?.lat || '', lng: device?.metadata?.lng || '', }); } else { form.resetFields(); } }, [device, form]); return ( form.submit()} okText={intl.formatMessage({ id: 'master.devices.ok', defaultMessage: 'OK', })} cancelText={intl.formatMessage({ id: 'master.devices.cancel', defaultMessage: 'Cancel', })} destroyOnClose >
{ const payload: MasterModel.Thing = { id: device?.id, name: device?.name, key: device?.key, metadata: { ...device?.metadata, lat: values.lat, lng: values.lng, }, }; onSubmit(payload); }} preserve={false} >
); }; export default LocationModal;