refactor: PatientsPage: Перенос PatientFormModal

Перенесен PatientFormModal в Dummies. Убрана логика модалки из usePatients.
This commit is contained in:
Андрей Дувакин 2025-06-02 16:08:36 +05:00
parent 4648f638a3
commit 9e7fa036ad
2 changed files with 5 additions and 48 deletions

View File

@ -19,7 +19,7 @@ import {
TeamOutlined TeamOutlined
} from "@ant-design/icons"; } from "@ant-design/icons";
import PatientListCard from "../../Dummies/PatientListCard.jsx"; import PatientListCard from "../../Dummies/PatientListCard.jsx";
import PatientFormModal from "./Components/PatientFormModal/PatientFormModal.jsx"; import PatientFormModal from "../../Dummies/PatientFormModal/PatientFormModal.jsx";
import SelectViewMode from "../../Widgets/SelectViewMode.jsx"; import SelectViewMode from "../../Widgets/SelectViewMode.jsx";
import LoadingIndicator from "../../Widgets/LoadingIndicator.jsx"; import LoadingIndicator from "../../Widgets/LoadingIndicator.jsx";
import usePatients from "./usePatients.js"; import usePatients from "./usePatients.js";
@ -186,11 +186,7 @@ const PatientsPage = () => {
tooltip="Добавить пациента" tooltip="Добавить пациента"
/> />
<PatientFormModal <PatientFormModal/>
visible={patientsUI.isModalVisible}
onCancel={patientsUI.handleCloseModal}
onSubmit={patientsData.handleModalSubmit}
/>
</div> </div>
); );
}; };

View File

@ -1,24 +1,14 @@
import { useDispatch, useSelector } from "react-redux"; import {notification} from "antd";
import { notification } from "antd";
import { import {
useAddPatientMutation,
useDeletePatientMutation, useDeletePatientMutation,
useGetPatientsQuery, useGetPatientsQuery,
useUpdatePatientMutation
} from "../../../Api/patientsApi.js"; } from "../../../Api/patientsApi.js";
import {closeModal} from "../../../Redux/Slices/patientsSlice.js";
const usePatients = () => { const usePatients = () => {
const dispatch = useDispatch(); const {data: patients = [], isLoading, isError} = useGetPatientsQuery(undefined, {
const {
selectedPatient,
} = useSelector(state => state.patientsUI);
const { data: patients = [], isLoading, isError } = useGetPatientsQuery(undefined, {
pollingInterval: 20000, pollingInterval: 20000,
}); });
const [addPatient] = useAddPatientMutation();
const [updatePatient] = useUpdatePatientMutation();
const [deletePatient] = useDeletePatientMutation(); const [deletePatient] = useDeletePatientMutation();
const handleDeletePatient = async (patientId) => { const handleDeletePatient = async (patientId) => {
@ -38,40 +28,11 @@ const usePatients = () => {
} }
}; };
const handleModalSubmit = async (patientData) => {
dispatch(closeModal());
try {
if (selectedPatient) {
await updatePatient({ id: selectedPatient.id, ...patientData }).unwrap();
notification.success({
message: "Пациент обновлён",
description: `Данные пациента ${patientData.first_name} ${patientData.last_name} успешно обновлены.`,
placement: "topRight",
});
} else {
await addPatient(patientData).unwrap();
notification.success({
message: "Пациент добавлен",
description: `Пациент ${patientData.first_name} ${patientData.last_name} успешно добавлен.`,
placement: "topRight",
});
}
} catch (error) {
notification.error({
message: "Ошибка",
description: error.data?.message || "Произошла ошибка при сохранении",
placement: "topRight",
});
}
};
return { return {
patients, patients,
isLoading, isLoading,
isError, isError,
handleDeletePatient, handleDeletePatient,
handleModalSubmit,
}; };
}; };