From ff9c3a89201bb899362ae144e129188acb8239dc Mon Sep 17 00:00:00 2001 From: Freek van de Ven Date: Fri, 26 Jul 2024 10:27:48 +0200 Subject: [PATCH] feat: add marking for conflicting times when applying a template --- .../lib/src/ui/view_models/availability_view_model.dart | 4 ++++ .../lib/src/ui/widgets/availabillity_time_selection.dart | 3 +++ 2 files changed, 7 insertions(+) diff --git a/packages/flutter_availability/lib/src/ui/view_models/availability_view_model.dart b/packages/flutter_availability/lib/src/ui/view_models/availability_view_model.dart index eb4c0d6..172c6e7 100644 --- a/packages/flutter_availability/lib/src/ui/view_models/availability_view_model.dart +++ b/packages/flutter_availability/lib/src/ui/view_models/availability_view_model.dart @@ -130,6 +130,10 @@ class AvailabilityViewModel { templateSelected || (startTime != null && endTime != null); + /// Whether a message should be shown to the user that the start and end times + /// are conflicting and they can't be filled in automatically + bool get showConflictingMessage => templateSelected && conflictingTime; + /// Whether a template deviation should be shown to the user bool get isDeviatingFromTemplate => startTime != null && diff --git a/packages/flutter_availability/lib/src/ui/widgets/availabillity_time_selection.dart b/packages/flutter_availability/lib/src/ui/widgets/availabillity_time_selection.dart index 851bac1..510bcab 100644 --- a/packages/flutter_availability/lib/src/ui/widgets/availabillity_time_selection.dart +++ b/packages/flutter_availability/lib/src/ui/widgets/availabillity_time_selection.dart @@ -40,6 +40,8 @@ class AvailabilityTimeSelection extends StatelessWidget { explanationText = isSingleDay ? translations.availabilityTemplateDeviationExplanation : translations.availabilitiesTemplateDeviationExplanation; + } else if (viewModel.showConflictingMessage) { + explanationText = translations.availabilitiesConflictingTimeExplanation; } return Column( @@ -68,6 +70,7 @@ class _AvailabilityExplanation extends StatelessWidget { required this.explanation, }); + /// The explanation text to show to the user final String explanation; @override