diff --git a/lib/ui/views/schedule_view.dart b/lib/ui/views/schedule_view.dart index 0c78603..7806129 100644 --- a/lib/ui/views/schedule_view.dart +++ b/lib/ui/views/schedule_view.dart @@ -36,6 +36,7 @@ class _ScheduleViewState extends State { profileFormProvider.user = authProvider.user; + professionalFormProvider.clear(); proProvider.getProfessional(authProvider.user!.id).then((value) { professionalFormProvider.setProfesional(value); }); @@ -82,13 +83,11 @@ class _ScheduleViewState extends State { 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 { 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 { 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 { 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 { 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 { 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 { 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) {