import {Col, Form, InputNumber, Modal, notification, Row, Select} from "antd"; import {useEffect, useState} from "react"; import PropTypes from "prop-types"; import getAllLensTypes from "../../api/lens_types/GetAllLensTypes.jsx"; import {useAuth} from "../../AuthContext.jsx"; const LensFormModal = ({visible, onCancel, onSubmit, lens}) => { const {user} = useAuth(); const [form] = Form.useForm(); const [lensTypes, setLensTypes] = useState([]); useEffect(() => { fetchLensTypes(); }, []); useEffect(() => { if (visible) { form.resetFields(); if (lens) { form.setFieldsValue({ ...lens, }); } } }, [visible, lens]); const fetchLensTypes = async () => { try { const data = await getAllLensTypes(user.token); setLensTypes(data); } catch (error) { console.log(error); notification.error({ message: "Ошибка загрузки типов линз", description: "Проверьте подключение к сети.", placement: "topRight", }); } }; const handleOk = async () => { try { const values = await form.validateFields(); onSubmit(values); form.resetFields(); } catch (error) { console.log("Validation Failed:", error); } }; return ( { form.resetFields(); onCancel(); }} onOk={handleOk} okText={"Сохранить"} cancelText={"Отмена"} maskClosable={false} forceRender={true} style={{top: 20}} centered >
); }; LensFormModal.propTypes = { visible: PropTypes.bool.isRequired, onCancel: PropTypes.func.isRequired, onSubmit: PropTypes.func.isRequired, lens: PropTypes.shape({ tor: PropTypes.number.isRequired, trial: PropTypes.number.isRequired, esa: PropTypes.number.isRequired, fvc: PropTypes.number.isRequired, preset_refraction: PropTypes.number.isRequired, diameter: PropTypes.number.isRequired, periphery_toricity: PropTypes.number.isRequired, side: PropTypes.string.isRequired, issued: PropTypes.bool.isRequired, type_id: PropTypes.number.isRequired, }), } export default LensFormModal;