diff --git a/packages/features/schedules/components/Schedule.tsx b/packages/features/schedules/components/Schedule.tsx index a911d1ffc2..edef612862 100644 --- a/packages/features/schedules/components/Schedule.tsx +++ b/packages/features/schedules/components/Schedule.tsx @@ -74,6 +74,7 @@ export const ScheduleDay = ({ }) => { const { watch, setValue } = useFormContext(); const watchDayRange = watch(name); + const lastNonEmptyDayRangeRef = useRef(null); return (
({ checked={watchDayRange && !!watchDayRange.length} data-testid={`${weekday}-switch`} onCheckedChange={(isChecked) => { - setValue(name, (isChecked ? [DEFAULT_DAY_RANGE] : []) as TFieldValues[typeof name]); + if (isChecked) { + const previousDayRange = lastNonEmptyDayRangeRef.current; + const newValue = + (previousDayRange && previousDayRange.length > 0 + ? previousDayRange + : [DEFAULT_DAY_RANGE]) as TFieldValues[typeof name]; + + setValue(name, newValue); + } else { + if (watchDayRange && watchDayRange.length > 0) { + lastNonEmptyDayRangeRef.current = watchDayRange as unknown as TimeRange[]; + } + setValue(name, [] as TFieldValues[typeof name]); + } }} />