diff --git a/src/components/PersonalTodoList/CalendarContainer.jsx b/src/components/PersonalTodoList/CalendarContainer.jsx
index 653b867ae..e8a76252a 100644
--- a/src/components/PersonalTodoList/CalendarContainer.jsx
+++ b/src/components/PersonalTodoList/CalendarContainer.jsx
@@ -36,7 +36,7 @@ const CalendarContainer = () => {
];
const { schedule, recSchedules } = useSelector((state) => state.schedule);
const [events, setEvents] = useState([]);
- const [currentWeekStart, setCurrentWeekStart] = useState(new Date());
+ const [currentWeekStart] = useState(new Date());
const [currentMonth, setCurrentMonth] = useState(new Date().getMonth() + 1);
const [currentYear, setCurrentYear] = useState(new Date().getFullYear());
const calendarRef = useRef(null);
diff --git a/src/components/PersonalTodoList/Modal/Modal.jsx b/src/components/PersonalTodoList/Modal/Modal.jsx
index 73de408c9..631061a95 100644
--- a/src/components/PersonalTodoList/Modal/Modal.jsx
+++ b/src/components/PersonalTodoList/Modal/Modal.jsx
@@ -1,18 +1,18 @@
import React, { useState } from "react";
import { useDispatch, useSelector } from "react-redux";
+import { Dialog, DialogTitle, DialogContent, IconButton } from "@mui/material";
+import CloseIcon from "@mui/icons-material/Close";
import { toast } from "react-toastify";
-import Offcanvas from "react-bootstrap/Offcanvas";
import { handleMenuToggle } from "../../../features/user/user-slice.js";
-import { saveSchedule } from "@/features/schedule/schedule-slice.js";
-import ModalHeader from "./ModalHeader";
-import ModalBody from "./ModalBody";
-import ModalFooter from "./ModalFooter";
+import ModalHeader from "./ModalHeader.jsx";
+import ModalBody from "./ModalBody.jsx";
+import ModalFooter from "./ModalFooter.jsx";
import {
createSchedule,
updateSchedule,
} from "@/features/schedule/schedule-service.js";
-const ModalWindow = () => {
+const ModalWindow = ({ personalModal, setPersonalModal }) => {
const { edit } = useSelector((state) => state.user);
const { id } = useSelector((state) => state.schedule);
const [formValues, setFormValues] = useState({
@@ -50,15 +50,20 @@ const ModalWindow = () => {
return true;
};
+ const handleClose = () => {
+ dispatch(handleMenuToggle());
+ if (window.location.pathname === "/share") {
+ setPersonalModal(false);
+ }
+ };
+
const checkFieldsFilled = () =>
formValues.title &&
formValues.details &&
formValues.startDate &&
formValues.startTime &&
formValues.endDate &&
- formValues.endTime &&
- formValues.untilDate &&
- formValues.untilTime;
+ formValues.endTime;
const handleSubmit = () => {
// 시간 유효성 검사
@@ -90,23 +95,35 @@ const ModalWindow = () => {
// 메뉴 닫기
dispatch(handleMenuToggle());
+ setPersonalModal(false);
};
return (
- dispatch(handleMenuToggle())}
- placement="end"
- className="bg-light text-dark"
- style={{ width: "37%" }}
+
+
+
);
};
diff --git a/src/components/PersonalTodoList/Modal/ModalBody.jsx b/src/components/PersonalTodoList/Modal/ModalBody.jsx
index d34d1ecd6..0c1435ab8 100644
--- a/src/components/PersonalTodoList/Modal/ModalBody.jsx
+++ b/src/components/PersonalTodoList/Modal/ModalBody.jsx
@@ -123,7 +123,6 @@ const ModalBody = ({ formValues, setFormValues, today }) => {
)}
-
>
);
};
diff --git a/src/components/PersonalTodoList/Modal/ModalFooter.jsx b/src/components/PersonalTodoList/Modal/ModalFooter.jsx
index f0bf89425..5f3fee53f 100644
--- a/src/components/PersonalTodoList/Modal/ModalFooter.jsx
+++ b/src/components/PersonalTodoList/Modal/ModalFooter.jsx
@@ -5,14 +5,16 @@ import { useSelector } from "react-redux";
const ModalFooter = ({ handleSubmit, checkFieldsFilled }) => {
const { edit } = useSelector((state) => state.user);
return (
-
+
+
+
);
};
export default ModalFooter;
diff --git a/src/components/PersonalTodoList/PersonalTodoList.jsx b/src/components/PersonalTodoList/PersonalTodoList.jsx
index 445eb00ad..040a35cfe 100644
--- a/src/components/PersonalTodoList/PersonalTodoList.jsx
+++ b/src/components/PersonalTodoList/PersonalTodoList.jsx
@@ -19,7 +19,7 @@ import { getSchedule } from "@/features/schedule/schedule-service.js";
const PersonalTodoList = () => {
const [selectedTab, setSelectedTab] = useState(false);
- const { menuOpen, edit } = useSelector((state) => state.user);
+ const { menuOpen } = useSelector((state) => state.user);
const { month, year, totalSchedule } = useSelector((state) => state.schedule);
const dispatch = useDispatch();
diff --git a/src/components/SharePage/Modal/Modal.jsx b/src/components/SharePage/Modal/Modal.jsx
index 73de408c9..5ec9ceb21 100644
--- a/src/components/SharePage/Modal/Modal.jsx
+++ b/src/components/SharePage/Modal/Modal.jsx
@@ -1,9 +1,9 @@
import React, { useState } from "react";
import { useDispatch, useSelector } from "react-redux";
+import { Dialog, DialogTitle, DialogContent, IconButton } from "@mui/material";
+import CloseIcon from "@mui/icons-material/Close";
import { toast } from "react-toastify";
-import Offcanvas from "react-bootstrap/Offcanvas";
import { handleMenuToggle } from "../../../features/user/user-slice.js";
-import { saveSchedule } from "@/features/schedule/schedule-slice.js";
import ModalHeader from "./ModalHeader";
import ModalBody from "./ModalBody";
import ModalFooter from "./ModalFooter";
@@ -12,7 +12,8 @@ import {
updateSchedule,
} from "@/features/schedule/schedule-service.js";
-const ModalWindow = () => {
+const ModalWindow = ({ shareModal, setShareModal }) => {
+ const dispatch = useDispatch();
const { edit } = useSelector((state) => state.user);
const { id } = useSelector((state) => state.schedule);
const [formValues, setFormValues] = useState({
@@ -22,10 +23,8 @@ const ModalWindow = () => {
startTime: "",
endDate: "",
endTime: "",
- untilDate: "",
- untilTime: "",
- repeat: "none",
- notification: "none",
+ voteEndDate: "",
+ voteEndTime: "",
});
const today = new Date().toISOString().slice(0, 10);
@@ -35,9 +34,6 @@ const ModalWindow = () => {
7,
)}월 ${currentDate.slice(8, 10)}일`;
- const menuOpen = useSelector((state) => state.user.menuOpen);
- const dispatch = useDispatch();
-
const isTimeValid = () => {
if (formValues.startDate === formValues.endDate) {
if (formValues.endTime < formValues.startTime) {
@@ -50,6 +46,11 @@ const ModalWindow = () => {
return true;
};
+ const handleClose = () => {
+ dispatch(handleMenuToggle());
+ setShareModal(false);
+ };
+
const checkFieldsFilled = () =>
formValues.title &&
formValues.details &&
@@ -57,8 +58,8 @@ const ModalWindow = () => {
formValues.startTime &&
formValues.endDate &&
formValues.endTime &&
- formValues.untilDate &&
- formValues.untilTime;
+ formValues.voteEndDate &&
+ formValues.voteEndTime;
const handleSubmit = () => {
// 시간 유효성 검사
@@ -82,31 +83,35 @@ const ModalWindow = () => {
startTime: "",
endDate: "",
endTime: "",
- untilDate: "",
- untilTime: "",
- repeat: "none",
- notification: "none",
+ voteEndDate: "",
+ voteEndTime: "",
});
// 메뉴 닫기
- dispatch(handleMenuToggle());
+ setShareModal(false);
};
return (
- dispatch(handleMenuToggle())}
- placement="end"
- className="bg-light text-dark"
- style={{ width: "37%" }}
- >
-
-
-
-
-
-
+
-
+
+
);
};
diff --git a/src/components/SharePage/Modal/ModalBody.jsx b/src/components/SharePage/Modal/ModalBody.jsx
index d34d1ecd6..cde12e20b 100644
--- a/src/components/SharePage/Modal/ModalBody.jsx
+++ b/src/components/SharePage/Modal/ModalBody.jsx
@@ -1,5 +1,5 @@
import React from "react";
-import { Form, Row, Col } from "react-bootstrap";
+import { Form } from "react-bootstrap";
import {
ModalTitle,
ModalInput,
@@ -72,58 +72,25 @@ const ModalBody = ({ formValues, setFormValues, today }) => {
/>
-
-
-
-
- 반복 여부
-
- setFormValues({ ...formValues, repeat: e.target.value })
- }
- >
-
-
-
-
-
-
-
- {formValues.repeat !== "none" && (
-
-
반복 기간
-
-
-
- setFormValues({
- ...formValues,
- untilDate: e.target.value,
- })
- }
- />
-
-
- setFormValues({
- ...formValues,
- untilTime: e.target.value,
- })
- }
- />
-
-
-
- )}
-
-
-
+ 일정 투표 종료일
+
+
+ setFormValues({ ...formValues, voteEndDate: e.target.value })
+ }
+ />
+
+
+ setFormValues({ ...formValues, voteEndTime: e.target.value })
+ }
+ />
+
>
);
};
diff --git a/src/components/SharePage/Modal/ModalFooter.jsx b/src/components/SharePage/Modal/ModalFooter.jsx
index f0bf89425..5f3fee53f 100644
--- a/src/components/SharePage/Modal/ModalFooter.jsx
+++ b/src/components/SharePage/Modal/ModalFooter.jsx
@@ -5,14 +5,16 @@ import { useSelector } from "react-redux";
const ModalFooter = ({ handleSubmit, checkFieldsFilled }) => {
const { edit } = useSelector((state) => state.user);
return (
-
+
+
+
);
};
export default ModalFooter;
diff --git a/src/components/SharePage/ShareTodoList.jsx b/src/components/SharePage/ShareTodoList.jsx
index a186cfed9..f722f7105 100644
--- a/src/components/SharePage/ShareTodoList.jsx
+++ b/src/components/SharePage/ShareTodoList.jsx
@@ -1,7 +1,8 @@
import React, { useState, useEffect } from "react";
import { useDispatch, useSelector } from "react-redux";
import { handleMenuToggle, setEdit } from "../../features/user/user-slice.js";
-import ModalWindow from "./Modal/Modal.jsx";
+import PersonalModal from "../PersonalTodoList/Modal/Modal.jsx";
+import ShareModal from "./Modal/Modal.jsx";
import {
TodoContainer,
TodoHeader,
@@ -18,13 +19,21 @@ import { getSchedule } from "@/features/schedule/schedule-service.js";
const ShareTodoList = () => {
const [selectedTab, setSelectedTab] = useState(true);
- const { menuOpen } = useSelector((state) => state.user);
+ const [personalModal, setPersonalModal] = useState(false);
+ const [shareModal, setShareModal] = useState(false);
const { month, year, totalSchedule } = useSelector((state) => state.schedule);
const dispatch = useDispatch();
- const handleMenuOpen = () => {
+ const handlePersonalModalOpen = () => {
dispatch(setEdit(false));
dispatch(handleMenuToggle());
+ setPersonalModal(true);
+ };
+
+ const handleShareModalOpen = () => {
+ dispatch(setEdit(false));
+ dispatch(handleMenuToggle());
+ setShareModal(true);
};
useEffect(() => {
@@ -56,7 +65,7 @@ const ShareTodoList = () => {
<>
일정 후보{" "}
-
+
일정 후보 추가
@@ -70,7 +79,7 @@ const ShareTodoList = () => {
<>
오늘의 할 일
-
+
일정 추가
@@ -90,7 +99,15 @@ const ShareTodoList = () => {
)}
- {menuOpen && }
+ {personalModal && (
+
+ )}
+ {shareModal && (
+
+ )}
>
);
};
diff --git a/src/features/user/user-slice.js b/src/features/user/user-slice.js
index d76dc1146..0c0710692 100644
--- a/src/features/user/user-slice.js
+++ b/src/features/user/user-slice.js
@@ -17,6 +17,8 @@ const initialState = {
isLoading: false,
userLoading: true,
menuOpen: false,
+ personalModal: false,
+ shareModal: false,
token: null,
edit: false,
};