diff --git a/web-app/src/Components/Pages/AppointmentsPage/AppointmentsPage.jsx b/web-app/src/Components/Pages/AppointmentsPage/AppointmentsPage.jsx index 4c7541e..14fb209 100644 --- a/web-app/src/Components/Pages/AppointmentsPage/AppointmentsPage.jsx +++ b/web-app/src/Components/Pages/AppointmentsPage/AppointmentsPage.jsx @@ -1,31 +1,37 @@ -import {Button, FloatButton, Result, Tabs, Typography} from "antd"; -import {Splitter} from "antd"; -import {CalendarOutlined, TableOutlined, MenuFoldOutlined, MenuUnfoldOutlined, PlusOutlined} from "@ant-design/icons"; +import { Button, FloatButton, Result, Tabs, Typography } from "antd"; +import { Splitter } from "antd"; +import { CalendarOutlined, TableOutlined, MenuFoldOutlined, MenuUnfoldOutlined, PlusOutlined } from "@ant-design/icons"; import AppointmentsCalendarTab from "./Components/AppointmentCalendarTab/AppointmentsCalendarTab.jsx"; import AppointmentsTableTab from "./Components/AppointmentTableTab/AppointmentsTableTab.jsx"; import useAppointmentsUI from "./useAppointmentsUI.js"; import useAppointments from "./useAppointments.js"; import dayjs from 'dayjs'; import LoadingIndicator from "../../Widgets/LoadingIndicator.jsx"; -import AppointmentFormModal - from "./Components/AppointmentCalendarTab/Components/AppointmentFormModal/AppointmentFormModal.jsx"; +import AppointmentFormModal from "./Components/AppointmentCalendarTab/Components/AppointmentFormModal/AppointmentFormModal.jsx"; +import { useDispatch } from "react-redux"; +import { closeModal, openModal } from "../../../Redux/Slices/appointmentsSlice.js"; const AppointmentsPage = () => { const appointmentsData = useAppointments(); const appointmentsPageUI = useAppointmentsUI(appointmentsData.appointments, appointmentsData.scheduledAppointments); + const dispatch = useDispatch(); + + const handleCancelModal = () => { + dispatch(closeModal()); + }; const items = [ { key: "1", label: "Календарь приемов", - children: , - icon: , + children: , + icon: , }, { key: "2", label: "Таблица приемов", - children: , - icon: , + children: , + icon: , }, ]; @@ -40,7 +46,7 @@ const AppointmentsPage = () => { return ( <> {appointmentsData.isLoading ? ( - + ) : ( <> { min="25%" max="90%" > - + {appointmentsPageUI.showSplitterPanel && ( @@ -94,34 +100,33 @@ const AppointmentsPage = () => { } - tooltip={"Создать"} + icon={} + tooltip="Создать" > } - onClick={appointmentsPageUI.openCreateAppointmentModal} - tooltip={"Прием"} + icon={} + onClick={() => dispatch(openModal())} + tooltip="Прием" /> } + icon={} onClick={appointmentsPageUI.openCreateScheduledAppointmentModal} - tooltip={"Запланированный прием"} + tooltip="Запланированный прием" /> )} diff --git a/web-app/src/Components/Pages/AppointmentsPage/Components/AppointmentCalendarTab/Components/AppointmentFormModal/AppointmentFormModal.jsx b/web-app/src/Components/Pages/AppointmentsPage/Components/AppointmentCalendarTab/Components/AppointmentFormModal/AppointmentFormModal.jsx index da6bc83..39c525b 100644 --- a/web-app/src/Components/Pages/AppointmentsPage/Components/AppointmentCalendarTab/Components/AppointmentFormModal/AppointmentFormModal.jsx +++ b/web-app/src/Components/Pages/AppointmentsPage/Components/AppointmentCalendarTab/Components/AppointmentFormModal/AppointmentFormModal.jsx @@ -1,16 +1,26 @@ import ReactQuill from 'react-quill'; import 'react-quill/dist/quill.snow.css'; import dayjs from "dayjs"; -import {Button, DatePicker, Form, InputNumber, Modal, Result, Select} from "antd"; +import utc from "dayjs/plugin/utc"; +import timezone from "dayjs/plugin/timezone"; +import { Button, DatePicker, Form, InputNumber, Modal, Result, Select } from "antd"; import useAppointmentFormModal from "./useAppointmentFormModal.js"; import useAppointmentFormModalUI from "./useAppointmentFormModalUI.js"; import LoadingIndicator from "../../../../../../Widgets/LoadingIndicator.jsx"; -import {DefaultModalPropType} from "../../../../../../../Types/defaultModalPropType.js"; +import { DefaultModalPropType } from "../../../../../../../Types/defaultModalPropType.js"; +dayjs.extend(utc); +dayjs.extend(timezone); +dayjs.tz.setDefault('Europe/Moscow'); -const AppointmentFormModal = ({visible, onCancel, onSubmit}) => { +const AppointmentFormModal = ({ visible, onCancel }) => { const appointmentFormModalData = useAppointmentFormModal(); - const appointmentFormModalUI = useAppointmentFormModalUI(visible, onCancel, onSubmit); + const appointmentFormModalUI = useAppointmentFormModalUI( + visible, + onCancel, + appointmentFormModalData.createAppointment, + appointmentFormModalData.updateAppointment + ); if (appointmentFormModalData.isError) { return ( @@ -25,23 +35,23 @@ const AppointmentFormModal = ({visible, onCancel, onSubmit}) => { return ( <> {appointmentFormModalData.isLoading ? ( - + ) : (
{ {appointmentFormModalData.appointmentTypes.map(type => ( - {type.name} + {type.title} ))} @@ -85,23 +95,22 @@ const AppointmentFormModal = ({visible, onCancel, onSubmit}) => { - + - + - +