UserTimeInfo.js 2.74 KiB
import { useState } from "react";
import Button from "../components/Button";
import CalendarWeek2 from "../components/CalendarWeek2"
import "../styles/HomeMake.css"
function UserTimeInfo() {
const [state, setState] = useState(true);
const [availableSchedules, setAvailableSchedules] = useState([]);
const [availableTimes, setAvailableTimes] = useState([]);
const handleState = () => {
setState((state) => !state);
}
const handleCalendar = (value) => {
console.log('Selected Date:', value);
};
const handleAlert = () => {
let sat = [...availableTimes].sort();
const aa = [];
let t = [];
let l = availableTimes[0];
sat.forEach((em) => {
if(parseInt(l/10)!==parseInt(em/10)){
t=[];
}
l = em;
const newDate = new Date(parseInt(em));
const availableDate = newDate.getFullYear() + '-' + newDate.getMonth() + '-' + newDate.getDate();
t.push(em%10);
aa.push({availableDate: availableDate, availableTimes: t})
});
const groupedData = aa.reduce((acc, item) => {
if (!acc[item.availableDate]) {
acc[item.availableDate] = { availableDate: item.availableDate, availableTimes: new Set(item.availableTimes) };
} else {
item.availableTimes.forEach(time => acc[item.availableDate].availableTimes.add(time));
}
return acc;
}, {});
const compressedData = Object.values(groupedData).map(item => {
return { availableDate: item.availableDate, availableTimes: [...item.availableTimes] };
});
setAvailableSchedules(compressedData);
console.log(availableSchedules);
console.log(state);
}
const isContain = (value) => {
return availableTimes.includes(value);
}
return (
<div className="center-container">
<Button
type="button"
text="가능한 시간"
onClick={handleState}
/>
<Button
type="button"
text="불가능한 시간"
onClick={handleState}
/>
{/* {state ? <Calendar
onChange={handleCalendar}
/> :
<Calendar
onChange={handleCalendar}
/>
} */}
<CalendarWeek2 state={state} availableTimes={availableTimes} setAvailableTimes={setAvailableTimes} isContain={isContain} />
<Button
type="submit"
text="시작하기"
onClick={handleAlert}
/>
</div>
);
}
export default UserTimeInfo;