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