import { useState, useEffect } from "react"; import { useParams } from "react-router-dom"; import TodoModal from "../components/Modal/TodoModal"; import TodoPostModal from "../components/Modal/TodoPostModal"; import todoApi from "../apis/todo.api"; import { useAuth } from "../utils/context"; import catchErrors from "../utils/catchErrors"; import moment from "moment"; import styles from "../components/Form/form.module.scss"; const TodoList = () => { const { user } = useAuth() const { date } = useParams() const [todoList, setTodoList] = useState([]) const [selectTodo, setSelectTodo] = useState(null) const [clicked, setClicked] = useState(false) const [error, setError] = useState("") useEffect(() => { getAll() }, [date]) async function getAll() { try { setError("") const resList = await todoApi.getTodo(user.id, date) setTodoList(resList) } catch (error) { catchErrors(error, setError) } } async function checkFn(e, todoId) { try { setError("") const check_v = e.target.value === "true" ? true : false await todoApi.edit({ id: todoId, done: check_v }, user.id) alert("해당 변경사항이 정상적으로 저장되었습니다.") window.location.reload() // getAll() // getTodoList() } catch (error) { catchErrors(error, setError) } } async function delayTodo() { try { setError("") const nextDate = moment(date).add(1, 'day').format("YYYY-MM-DD") await todoApi.edit({ id: selectTodo.id, todoDate: nextDate }, user.id) window.location.reload() } catch (error) { catchErrors(error, setError) } } async function delTodo(todoId) { try { setError("") await todoApi.remove(todoId, user.id) alert("해당 할일이 성공적으로 삭제되었습니다.") window.location.reload() } catch (error) { catchErrors(error, setError) } } return (
{todoList.length !== 0 ? todoList.map((todo, idx) =>
checkFn(e, todo.id)} />
setSelectTodo(todo)}> { setSelectTodo(todo); setClicked(true) }}> delTodo(todo.id)}>
) :

등록된 할일이 없습니다.

}
) } export default TodoList;