diff --git a/client/src/components/Buttons/AddBtn.js b/client/src/components/Buttons/AddBtn.js index 5ba8bddffc471889ec7b4cd18cff35f15d9f8e7d..05a417889fc370c1ef09d952c3253b034210a53b 100644 --- a/client/src/components/Buttons/AddBtn.js +++ b/client/src/components/Buttons/AddBtn.js @@ -1,11 +1,14 @@ +import { useParams } from "react-router-dom"; import TodoModal from "../Modal/TodoModal"; import styles from "./buttons.module.scss"; const AddBtn = () => { + const { date } = useParams() + return ( <> - + ) } diff --git a/client/src/components/Buttons/buttons.module.scss b/client/src/components/Buttons/buttons.module.scss index f3c8bc099ff4c0554f140788c3dfe6234fa11cd7..85e65f5003eac48b3e44eca12b187a103f91e19c 100644 --- a/client/src/components/Buttons/buttons.module.scss +++ b/client/src/components/Buttons/buttons.module.scss @@ -16,6 +16,7 @@ .icon { color: crimson; font-size: 2.7em; + cursor: pointer; } .backBtn { diff --git a/client/src/components/Form/SubjectForm.js b/client/src/components/Form/SubjectForm.js index 28b9a0ce01ee5ead3f09d5835bdb153f0cbe0e97..7c010dae558d9c4c7f1e75b9b4eb3d9c2a69ba14 100644 --- a/client/src/components/Form/SubjectForm.js +++ b/client/src/components/Form/SubjectForm.js @@ -9,14 +9,14 @@ import styles from "./form.module.scss"; const SubjectForm = () => { const { user } = useAuth(); const { subjectId } = useParams(); - const [success, setSuccess] = useState(false) + const [success, setSuccess] = useState(false); const [error, setError] = useState(""); - const [disabled, setDisabled] = useState(true) + const [disabled, setDisabled] = useState(true); const [subject, setSubject] = useState({ lectureName: "", prof: "", classRoom: "" - }) + }); useEffect(() => { if (subjectId) getInfo(subjectId); diff --git a/client/src/components/Modal/TodoModal.js b/client/src/components/Modal/TodoModal.js index 2e2ad1f79ef48fe2b79bb88f77bdf9ae8147804f..a0e8abe33670cb66cc9425f7a15fcca13f60c074 100644 --- a/client/src/components/Modal/TodoModal.js +++ b/client/src/components/Modal/TodoModal.js @@ -1,27 +1,53 @@ -import { useState } from "react"; +import { useState, useEffect, useRef } from "react"; +import todoApi from "../../apis/todo.api"; +import { useAuth } from "../../utils/context"; +import catchErrors from "../../utils/catchErrors"; import moment from "moment"; import styles from "./modal.module.scss"; -const TodoModal = () => { +const TodoModal = ({ curDate, selectTodo = "" }) => { + const { user } = useAuth() const [todo, setTodo] = useState({ todoTitle: "", - todoDate: moment().format("YYYY-MM-DD") + todoDate: moment(curDate).format("YYYY-MM-DD") }) + const [error, setError] = useState(""); + + useEffect(() => { + setTodo({ ...todo, todoDate: curDate }) + }, [curDate]) + + useEffect(() => { + if (selectTodo) { + console.log("selectTodo 값 변경으로 실행") + setTodo({ ...todo, ...selectTodo }) + } + }, [selectTodo]) const handleChange = (e) => { const { name, value } = e.target setTodo({ ...todo, [name]: value }) } - const handleClick = () => { - setTodo({ - todoTitle: "", - todoDate: moment().format("YYYY-MM-DD") - }) + async function handleSubmit() { + try { + setError("") + if (selectTodo) { + await todoApi.edit(todo, user.id) + alert("해당 할일이 성공적으로 수정되었습니다.") + } else { + await todoApi.submit(todo, user.id) + alert("해당 할일이 성공적으로 등록되었습니다.") + } + window.location.reload() + } catch (error) { + catchErrors(error, setError) + } } return (