From b843c19f01026f7f7b4d02cd62446315d56d0b09 Mon Sep 17 00:00:00 2001 From: Manas Kenge Date: Fri, 16 Jan 2026 06:22:44 +0530 Subject: [PATCH] fix: Availability reset to default hours on day toggle (#26410) * persist toggle time * Refactor time slot management in Schedule component --------- Co-authored-by: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> --- .../features/schedules/components/Schedule.tsx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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]); + } }} />