import { useState, useEffect } from "react"; import { Redirect, useLocation } from "react-router-dom"; import BtnGroup from "../Buttons/BtnGroup.js"; import catchErrors from "../../utils/catchErrors.js"; import styles from "./form.module.scss"; const ScheduleForm = () => { const location = useLocation() const [schedule, setSchedule] = useState({ title: "", startDate: "", endDate: "", startTime: "", endTime: "", allDay: "", location: "", memo: "" }) const [disabled, setDisabled] = useState(true) const [success, setSuccess] = useState(false) const [error, setError] = useState("") useEffect(() => { let isMounted = true; const checkInfo = { title: schedule.title, startDate: schedule.startDate, endDate: schedule.endDate } if (schedule.allDay !== "on") { checkInfo.startTime = schedule.startTime checkInfo.endTime = schedule.endTime } else { delete checkInfo.startTime delete checkInfo.endTime } if (isMounted) { const isSchedule = Object.values(checkInfo).every((el) => Boolean(el)); isSchedule ? setDisabled(false) : setDisabled(true); } return () => { isMounted = false; }; }, [schedule]) function handleChange(e) { const { name, value } = e.target if (name === "allDay") { schedule.allDay !== "on" ? setSchedule({ ...schedule, [name]: value }) : setSchedule({ ...schedule, [name]: "off" }) } else if (name === "startDate") { setSchedule({ ...schedule, [name]: value, endDate: value }) } else if (name === "startTime") { setSchedule({ ...schedule, [name]: value, endTime: value }) } else setSchedule({ ...schedule, [name]: value }) } async function handleSubmit(e) { e.preventDefault() try { setError("") if (schedule.allDay === "on") setSchedule({ ...schedule, startTime: '00:00', endTime: '23:59' }) setSuccess(true) } catch (error) { catchErrors(error, setError) } } if (success) { alert('해당 일정이 성공적으로 등록되었습니다.') return } return (
) } export default ScheduleForm