diff --git a/src/components/scheduleComponents/utils/IsContainingAfternoon.ts b/src/components/scheduleComponents/utils/IsContainingAfternoon.ts new file mode 100644 index 00000000..e69de29b diff --git a/src/components/scheduleComponents/utils/isMorningDinner.ts b/src/components/scheduleComponents/utils/isMorningDinner.ts new file mode 100644 index 00000000..000123a1 --- /dev/null +++ b/src/components/scheduleComponents/utils/isMorningDinner.ts @@ -0,0 +1 @@ +//아침 저녁인지를 확인하는 util diff --git a/src/pages/selectSchedule/components/SelectSchedule.tsx b/src/pages/selectSchedule/components/SelectSchedule.tsx index 30a46fc6..75a1f96c 100644 --- a/src/pages/selectSchedule/components/SelectSchedule.tsx +++ b/src/pages/selectSchedule/components/SelectSchedule.tsx @@ -18,6 +18,11 @@ interface PropTypes { } function SelectSchedule({ scheduleList, availableDates, preferTimes, setScheduleList, deleteData }: PropTypes) { + + // 현재 선택된 가능시간이 아침/저녁 시간대인 경우를 확인하는 함수 + const isMorningDinner = +preferTimes.length === 2 && preferTimes.every((time) => time.startTime !== '12:00'); + const handleDate = (id: number, date: string) => { const updateDate: ScheduleStates[] = scheduleList?.map((schedule) => { @@ -34,17 +39,25 @@ function SelectSchedule({ scheduleList, availableDates, preferTimes, setSchedule const updateStartTime: ScheduleStates[] = scheduleList?.map((schedule) => { if (schedule?.id === id) { - if(schedule.endTime==="" ){ return { ...schedule, startTime }; } else if (compareTime(startTime,schedule.endTime)){ + + if (isMorningDinner){ + //오전,저녁 시간대이므로, 오후 시간대를 선택했는지 아닌지를 판별해야함 + //시작 시간이 11:30 이하이면서 종료 시간이 18:00이후인 경우 + if (compareTime(startTime, "11:30") && compareTime("18:00", schedule.endTime)) { + alert("12:00 부터 18:00는 선택지에 포함될 수 없습니다."); + return schedule; + } + } + return { ...schedule, startTime }; } else{ alert("종료 시간은 시작 시간 이후로 설정해주세요!"); - } - + } return schedule; } @@ -62,6 +75,16 @@ function SelectSchedule({ scheduleList, availableDates, preferTimes, setSchedule return { ...schedule, endTime }; } else if (compareTime(schedule.startTime,endTime)){ + + if (isMorningDinner){ + //오전,저녁 시간대이므로, 오후 시간대를 선택했는지 아닌지를 판별해야함 + //시작 시간이 11:30 이하이면서 종료 시간이 18:00이후인 경우 + if (compareTime(schedule.startTime, "11:30") && compareTime("18:00", endTime)) { + alert("오후 12시부터 18시는 선택지에 포함될 수 없습니다."); + return schedule; + } + } + return { ...schedule, endTime }; } else {