diff --git a/web-app/src/Components/Pages/AppointmentsPage/AppointmentsPage.jsx b/web-app/src/Components/Pages/AppointmentsPage/AppointmentsPage.jsx index d1fefe3..f59db6a 100644 --- a/web-app/src/Components/Pages/AppointmentsPage/AppointmentsPage.jsx +++ b/web-app/src/Components/Pages/AppointmentsPage/AppointmentsPage.jsx @@ -1,21 +1,19 @@ -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/AppointmentFormModal/AppointmentFormModal.jsx"; -import {useDispatch} from "react-redux"; -import {closeModal, openModal} from "../../../Redux/Slices/appointmentsSlice.js"; -import AppointmentViewModal - from "./Components/AppointmentViewModal/AppointmentViewModal.jsx"; +import AppointmentFormModal from "./Components/AppointmentFormModal/AppointmentFormModal.jsx"; +import { useDispatch } from "react-redux"; +import { closeModal, openModal } from "../../../Redux/Slices/appointmentsSlice.js"; +import AppointmentViewModal from "./Components/AppointmentViewModal/AppointmentViewModal.jsx"; import ScheduledAppointmentFormModal from "./Components/ScheduledAppintmentFormModal/ScheduledAppointmentFormModal.jsx"; -import ScheduledAppointmentsViewModal - from "./Components/ScheduledAppointmentsViewModal/ScheduledAppointmentsViewModal.jsx"; +import ScheduledAppointmentsViewModal from "./Components/ScheduledAppointmentsViewModal/ScheduledAppointmentsViewModal.jsx"; +import AppointmentsListModal from "./Components/AppointmentsListModal/AppointmentsListModal.jsx"; const AppointmentsPage = () => { const appointmentsData = useAppointments(); @@ -30,14 +28,14 @@ const AppointmentsPage = () => { { key: "1", label: "Календарь приемов", - children: , - icon: , + children: , + icon: , }, { key: "2", label: "Таблица приемов", - children: , - icon: , + children: , + icon: , }, ]; @@ -52,7 +50,7 @@ const AppointmentsPage = () => { return ( <> {appointmentsData.isLoading ? ( - + ) : ( <> { min="25%" max="90%" > - + {appointmentsPageUI.showSplitterPanel && ( @@ -83,7 +81,7 @@ const AppointmentsPage = () => { {appointmentsPageUI.upcomingEvents.length ? (
    - {appointmentsPageUI.upcomingEvents.map(app => ( + {appointmentsPageUI.upcomingEvents.map((app) => (
  • {dayjs(app.appointment_datetime || app.scheduled_datetime) .format('DD.MM.YYYY HH:mm')} - @@ -105,7 +103,7 @@ const AppointmentsPage = () => { + + ); +}; + +export default AppointmentsListModal; \ No newline at end of file diff --git a/web-app/src/Redux/Slices/appointmentsSlice.js b/web-app/src/Redux/Slices/appointmentsSlice.js index b555a98..380820b 100644 --- a/web-app/src/Redux/Slices/appointmentsSlice.js +++ b/web-app/src/Redux/Slices/appointmentsSlice.js @@ -2,14 +2,15 @@ import { createSlice } from '@reduxjs/toolkit'; const initialState = { modalVisible: false, - collapsed: true, + collapsed: false, siderWidth: 300, hovered: false, selectedAppointment: null, selectedScheduledAppointment: null, scheduledModalVisible: false, scheduledData: null, - selectedAppointments: [], // Новое поле для хранения массива выбранных приемов + appointmentsListModalVisible: false, + selectedDateAppointments: [], }; const appointmentsSlice = createSlice({ @@ -47,8 +48,13 @@ const appointmentsSlice = createSlice({ state.modalVisible = true; state.scheduledData = action.payload; }, - setSelectedAppointments(state, action) { - state.selectedAppointments = action.payload; + openAppointmentsListModal(state, action) { + state.appointmentsListModalVisible = true; + state.selectedDateAppointments = action.payload; + }, + closeAppointmentsListModal(state) { + state.appointmentsListModalVisible = false; + state.selectedDateAppointments = []; }, }, }); @@ -57,13 +63,15 @@ export const { openModal, closeModal, toggleSider, + setSiderWidth, setHovered, setSelectedAppointment, setSelectedScheduledAppointment, openScheduledModal, closeScheduledModal, openModalWithScheduledData, - setSelectedAppointments, + openAppointmentsListModal, + closeAppointmentsListModal, } = appointmentsSlice.actions; export default appointmentsSlice.reducer; \ No newline at end of file