feat: auto-fill 12pm-2pm break when disabling continuous day on schedule

When toggling off jornada continua, range1Hour2 defaults to 12:00 and
range2Hour1 defaults to 14:00 if not already set. Existing values are
preserved so the user can still edit them freely.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-06 22:16:05 -05:00
co-authored by Claude Sonnet 4.6
parent 706b78b737
commit dbeda22e19
+63 -43
View File
@@ -92,13 +92,16 @@ class _ScheduleViewState extends State<ScheduleView> {
},
onContinuousDayChanged: (value) {
setState(() {
final cur = profesional.schedules.monday;
final updated = !value
? cur.copyWith(
continuousDay: false,
range1Hour2: cur.range1Hour2 ?? const TimeOfDay(hour: 12, minute: 0),
range2Hour1: cur.range2Hour1 ?? const TimeOfDay(hour: 14, minute: 0),
)
: cur.copyWith(continuousDay: true);
professionalFormProvider.copyProfesionalWith(
schedules: profesional.schedules.copyWith(
monday: profesional.schedules.monday.copyWith(
continuousDay: value,
),
),
);
schedules: profesional.schedules.copyWith(monday: updated));
});
},
onRange1Hour1Pick: (pickedTime) {
@@ -155,13 +158,16 @@ class _ScheduleViewState extends State<ScheduleView> {
},
onContinuousDayChanged: (value) {
setState(() {
final cur = profesional.schedules.tuesday;
final updated = !value
? cur.copyWith(
continuousDay: false,
range1Hour2: cur.range1Hour2 ?? const TimeOfDay(hour: 12, minute: 0),
range2Hour1: cur.range2Hour1 ?? const TimeOfDay(hour: 14, minute: 0),
)
: cur.copyWith(continuousDay: true);
professionalFormProvider.copyProfesionalWith(
schedules: profesional.schedules.copyWith(
tuesday: profesional.schedules.tuesday.copyWith(
continuousDay: value,
),
),
);
schedules: profesional.schedules.copyWith(tuesday: updated));
});
},
onRange1Hour1Pick: (pickedTime) {
@@ -218,14 +224,16 @@ class _ScheduleViewState extends State<ScheduleView> {
},
onContinuousDayChanged: (value) {
setState(() {
final cur = profesional.schedules.wednesday;
final updated = !value
? cur.copyWith(
continuousDay: false,
range1Hour2: cur.range1Hour2 ?? const TimeOfDay(hour: 12, minute: 0),
range2Hour1: cur.range2Hour1 ?? const TimeOfDay(hour: 14, minute: 0),
)
: cur.copyWith(continuousDay: true);
professionalFormProvider.copyProfesionalWith(
schedules: profesional.schedules.copyWith(
wednesday:
profesional.schedules.wednesday.copyWith(
continuousDay: value,
),
),
);
schedules: profesional.schedules.copyWith(wednesday: updated));
});
},
onRange1Hour1Pick: (pickedTime) {
@@ -282,13 +290,16 @@ class _ScheduleViewState extends State<ScheduleView> {
},
onContinuousDayChanged: (value) {
setState(() {
final cur = profesional.schedules.thursday;
final updated = !value
? cur.copyWith(
continuousDay: false,
range1Hour2: cur.range1Hour2 ?? const TimeOfDay(hour: 12, minute: 0),
range2Hour1: cur.range2Hour1 ?? const TimeOfDay(hour: 14, minute: 0),
)
: cur.copyWith(continuousDay: true);
professionalFormProvider.copyProfesionalWith(
schedules: profesional.schedules.copyWith(
thursday: profesional.schedules.thursday.copyWith(
continuousDay: value,
),
),
);
schedules: profesional.schedules.copyWith(thursday: updated));
});
},
onRange1Hour1Pick: (pickedTime) {
@@ -345,13 +356,16 @@ class _ScheduleViewState extends State<ScheduleView> {
},
onContinuousDayChanged: (value) {
setState(() {
final cur = profesional.schedules.friday;
final updated = !value
? cur.copyWith(
continuousDay: false,
range1Hour2: cur.range1Hour2 ?? const TimeOfDay(hour: 12, minute: 0),
range2Hour1: cur.range2Hour1 ?? const TimeOfDay(hour: 14, minute: 0),
)
: cur.copyWith(continuousDay: true);
professionalFormProvider.copyProfesionalWith(
schedules: profesional.schedules.copyWith(
friday: profesional.schedules.friday.copyWith(
continuousDay: value,
),
),
);
schedules: profesional.schedules.copyWith(friday: updated));
});
},
onRange1Hour1Pick: (pickedTime) {
@@ -408,13 +422,16 @@ class _ScheduleViewState extends State<ScheduleView> {
},
onContinuousDayChanged: (value) {
setState(() {
final cur = profesional.schedules.saturday;
final updated = !value
? cur.copyWith(
continuousDay: false,
range1Hour2: cur.range1Hour2 ?? const TimeOfDay(hour: 12, minute: 0),
range2Hour1: cur.range2Hour1 ?? const TimeOfDay(hour: 14, minute: 0),
)
: cur.copyWith(continuousDay: true);
professionalFormProvider.copyProfesionalWith(
schedules: profesional.schedules.copyWith(
saturday: profesional.schedules.saturday.copyWith(
continuousDay: value,
),
),
);
schedules: profesional.schedules.copyWith(saturday: updated));
});
},
onRange1Hour1Pick: (pickedTime) {
@@ -471,13 +488,16 @@ class _ScheduleViewState extends State<ScheduleView> {
},
onContinuousDayChanged: (value) {
setState(() {
final cur = profesional.schedules.sunday;
final updated = !value
? cur.copyWith(
continuousDay: false,
range1Hour2: cur.range1Hour2 ?? const TimeOfDay(hour: 12, minute: 0),
range2Hour1: cur.range2Hour1 ?? const TimeOfDay(hour: 14, minute: 0),
)
: cur.copyWith(continuousDay: true);
professionalFormProvider.copyProfesionalWith(
schedules: profesional.schedules.copyWith(
sunday: profesional.schedules.sunday.copyWith(
continuousDay: value,
),
),
);
schedules: profesional.schedules.copyWith(sunday: updated));
});
},
onRange1Hour1Pick: (pickedTime) {