feat: apply default hours (08:00-18:00) when enabling a schedule day

When a day is toggled on and has no hours set yet, automatically
apply continuous-day defaults (08:00 - 18:00) so the user can
save immediately without having to pick times manually.
Also clear fp.profesional in initState to ensure fresh data loads.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-02 23:08:23 -05:00
co-authored by Claude Sonnet 4.6
parent ee678b26ff
commit 7451b7c57b
+36 -50
View File
@@ -36,6 +36,7 @@ class _ScheduleViewState extends State<ScheduleView> {
profileFormProvider.user = authProvider.user;
professionalFormProvider.clear();
proProvider.getProfessional(authProvider.user!.id).then((value) {
professionalFormProvider.setProfesional(value);
});
@@ -82,13 +83,11 @@ class _ScheduleViewState extends State<ScheduleView> {
schedule: profesional.schedules.monday,
onEnableChanged: (value) {
setState(() {
professionalFormProvider.copyProfesionalWith(
schedules: profesional.schedules.copyWith(
monday: profesional.schedules.monday.copyWith(
enabled: value,
),
),
);
final cur = profesional.schedules.monday;
final updated = (value && cur.range1Hour1 == null)
? cur.copyWith(enabled: true, continuousDay: true, range1Hour1: const TimeOfDay(hour: 8, minute: 0), range2Hour2: const TimeOfDay(hour: 18, minute: 0))
: cur.copyWith(enabled: value);
professionalFormProvider.copyProfesionalWith(schedules: profesional.schedules.copyWith(monday: updated));
});
},
onContinuousDayChanged: (value) {
@@ -147,13 +146,11 @@ class _ScheduleViewState extends State<ScheduleView> {
schedule: profesional.schedules.tuesday,
onEnableChanged: (value) {
setState(() {
professionalFormProvider.copyProfesionalWith(
schedules: profesional.schedules.copyWith(
tuesday: profesional.schedules.tuesday.copyWith(
enabled: value,
),
),
);
final cur = profesional.schedules.tuesday;
final updated = (value && cur.range1Hour1 == null)
? cur.copyWith(enabled: true, continuousDay: true, range1Hour1: const TimeOfDay(hour: 8, minute: 0), range2Hour2: const TimeOfDay(hour: 18, minute: 0))
: cur.copyWith(enabled: value);
professionalFormProvider.copyProfesionalWith(schedules: profesional.schedules.copyWith(tuesday: updated));
});
},
onContinuousDayChanged: (value) {
@@ -212,14 +209,11 @@ class _ScheduleViewState extends State<ScheduleView> {
schedule: profesional.schedules.wednesday,
onEnableChanged: (value) {
setState(() {
professionalFormProvider.copyProfesionalWith(
schedules: profesional.schedules.copyWith(
wednesday:
profesional.schedules.wednesday.copyWith(
enabled: value,
),
),
);
final cur = profesional.schedules.wednesday;
final updated = (value && cur.range1Hour1 == null)
? cur.copyWith(enabled: true, continuousDay: true, range1Hour1: const TimeOfDay(hour: 8, minute: 0), range2Hour2: const TimeOfDay(hour: 18, minute: 0))
: cur.copyWith(enabled: value);
professionalFormProvider.copyProfesionalWith(schedules: profesional.schedules.copyWith(wednesday: updated));
});
},
onContinuousDayChanged: (value) {
@@ -279,13 +273,11 @@ class _ScheduleViewState extends State<ScheduleView> {
schedule: profesional.schedules.thursday,
onEnableChanged: (value) {
setState(() {
professionalFormProvider.copyProfesionalWith(
schedules: profesional.schedules.copyWith(
thursday: profesional.schedules.thursday.copyWith(
enabled: value,
),
),
);
final cur = profesional.schedules.thursday;
final updated = (value && cur.range1Hour1 == null)
? cur.copyWith(enabled: true, continuousDay: true, range1Hour1: const TimeOfDay(hour: 8, minute: 0), range2Hour2: const TimeOfDay(hour: 18, minute: 0))
: cur.copyWith(enabled: value);
professionalFormProvider.copyProfesionalWith(schedules: profesional.schedules.copyWith(thursday: updated));
});
},
onContinuousDayChanged: (value) {
@@ -344,13 +336,11 @@ class _ScheduleViewState extends State<ScheduleView> {
schedule: profesional.schedules.friday,
onEnableChanged: (value) {
setState(() {
professionalFormProvider.copyProfesionalWith(
schedules: profesional.schedules.copyWith(
friday: profesional.schedules.friday.copyWith(
enabled: value,
),
),
);
final cur = profesional.schedules.friday;
final updated = (value && cur.range1Hour1 == null)
? cur.copyWith(enabled: true, continuousDay: true, range1Hour1: const TimeOfDay(hour: 8, minute: 0), range2Hour2: const TimeOfDay(hour: 18, minute: 0))
: cur.copyWith(enabled: value);
professionalFormProvider.copyProfesionalWith(schedules: profesional.schedules.copyWith(friday: updated));
});
},
onContinuousDayChanged: (value) {
@@ -409,13 +399,11 @@ class _ScheduleViewState extends State<ScheduleView> {
schedule: profesional.schedules.saturday,
onEnableChanged: (value) {
setState(() {
professionalFormProvider.copyProfesionalWith(
schedules: profesional.schedules.copyWith(
saturday: profesional.schedules.saturday.copyWith(
enabled: value,
),
),
);
final cur = profesional.schedules.saturday;
final updated = (value && cur.range1Hour1 == null)
? cur.copyWith(enabled: true, continuousDay: true, range1Hour1: const TimeOfDay(hour: 8, minute: 0), range2Hour2: const TimeOfDay(hour: 18, minute: 0))
: cur.copyWith(enabled: value);
professionalFormProvider.copyProfesionalWith(schedules: profesional.schedules.copyWith(saturday: updated));
});
},
onContinuousDayChanged: (value) {
@@ -474,13 +462,11 @@ class _ScheduleViewState extends State<ScheduleView> {
schedule: profesional.schedules.sunday,
onEnableChanged: (value) {
setState(() {
professionalFormProvider.copyProfesionalWith(
schedules: profesional.schedules.copyWith(
sunday: profesional.schedules.sunday.copyWith(
enabled: value,
),
),
);
final cur = profesional.schedules.sunday;
final updated = (value && cur.range1Hour1 == null)
? cur.copyWith(enabled: true, continuousDay: true, range1Hour1: const TimeOfDay(hour: 8, minute: 0), range2Hour2: const TimeOfDay(hour: 18, minute: 0))
: cur.copyWith(enabled: value);
professionalFormProvider.copyProfesionalWith(schedules: profesional.schedules.copyWith(sunday: updated));
});
},
onContinuousDayChanged: (value) {