Enhance Schedule component by resetting time fields on cancel and draft mode toggle; improve session scheduling logic to prevent conflicts by adjusting start times if necessary.
This commit is contained in:
@@ -96,6 +96,9 @@ function Schedule({ selectedDay, slots, events }: Props) {
|
||||
|
||||
function handleClickCancel() {
|
||||
setDraftMode(false);
|
||||
setStartTime("");
|
||||
setEndTime("");
|
||||
setDuration(undefined);
|
||||
}
|
||||
|
||||
async function addSchesuledSession() {
|
||||
@@ -129,6 +132,9 @@ function Schedule({ selectedDay, slots, events }: Props) {
|
||||
function handleClickScheduleDemo() {
|
||||
setDateForInstantStart(undefined);
|
||||
setStartAt(new Date());
|
||||
setStartTime("");
|
||||
setEndTime("");
|
||||
setDuration(undefined);
|
||||
setDraftMode(true);
|
||||
}
|
||||
|
||||
@@ -184,9 +190,12 @@ function Schedule({ selectedDay, slots, events }: Props) {
|
||||
|
||||
useEffect(() => {
|
||||
function handleEscKey(e: KeyboardEvent) {
|
||||
if (!draftMode && e.key !== "Escape") return;
|
||||
if (!draftMode || e.key !== "Escape") return;
|
||||
|
||||
setDraftMode(false);
|
||||
setStartTime("");
|
||||
setEndTime("");
|
||||
setDuration(undefined);
|
||||
}
|
||||
|
||||
document.addEventListener("keyup", handleEscKey, false);
|
||||
@@ -194,7 +203,7 @@ function Schedule({ selectedDay, slots, events }: Props) {
|
||||
return () => {
|
||||
document.removeEventListener("keyup", handleEscKey, false);
|
||||
};
|
||||
}, []);
|
||||
}, [draftMode]);
|
||||
|
||||
return (
|
||||
<div className="relative h-screen overflow-y-auto bg-[#F2F2F2] text-sm">
|
||||
|
||||
Reference in New Issue
Block a user