From a537ea269e59fdff40436f3b72ead2d570aff2fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20K=C3=B6rber?= <56073945+jakobkoerber@users.noreply.github.com> Date: Mon, 18 Dec 2023 22:03:45 +0100 Subject: [PATCH] [Enhancement] Calendar Improvements (#178) --- .../errorHandling/error_handling_router.dart | 2 +- .../services/calendar_view_service.dart | 22 ++++++++++++++++++- .../viewModels/calendar_viewmodel.dart | 12 ++++++---- .../views/calendar_day_view.dart | 1 - .../views/calendar_month_view.dart | 1 - .../views/calendar_week_view.dart | 9 +++++--- .../views/basic_lecture_info_view.dart | 7 ++++-- 7 files changed, 41 insertions(+), 13 deletions(-) diff --git a/lib/base/errorHandling/error_handling_router.dart b/lib/base/errorHandling/error_handling_router.dart index fc4a29e6..aeafff53 100644 --- a/lib/base/errorHandling/error_handling_router.dart +++ b/lib/base/errorHandling/error_handling_router.dart @@ -129,7 +129,7 @@ class ErrorHandlingRouter extends ConsumerWidget { } void recordFlutterError(FlutterErrorDetails flutterErrorDetails) { - if (!kIsWeb) { + if (!kIsWeb && !kDebugMode) { FirebaseCrashlytics.instance.recordFlutterFatalError(flutterErrorDetails); } } diff --git a/lib/calendarComponent/services/calendar_view_service.dart b/lib/calendarComponent/services/calendar_view_service.dart index 6b414afb..7689822f 100644 --- a/lib/calendarComponent/services/calendar_view_service.dart +++ b/lib/calendarComponent/services/calendar_view_service.dart @@ -47,7 +47,7 @@ class CalendarViewService { calendarEvent = event; } - if (calendarEvent != null) { + if (calendarEvent != null && calendarEvent.url != null) { showModalBottomSheet( isScrollControlled: true, useSafeArea: true, @@ -66,6 +66,26 @@ class CalendarViewService { ); }, ); + } else if (calendarEvent != null) { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: Text( + calendarEvent!.title, + textAlign: TextAlign.center, + ), + content: Text( + calendarEvent.timeDatePeriod(context), + ), + actionsAlignment: MainAxisAlignment.center, + actions: [ + ElevatedButton( + onPressed: () => Navigator.pop(context), + child: const Text("Okay"), + ), + ], + ), + ); } } } diff --git a/lib/calendarComponent/viewModels/calendar_viewmodel.dart b/lib/calendarComponent/viewModels/calendar_viewmodel.dart index 4970ef67..427e9c66 100644 --- a/lib/calendarComponent/viewModels/calendar_viewmodel.dart +++ b/lib/calendarComponent/viewModels/calendar_viewmodel.dart @@ -27,11 +27,15 @@ class CalendarViewModel { CalendarEvent? leftColumn; List rightColumn = []; - final filteredEvents = events.value ?? []; - filteredEvents - .removeWhere((element) => element.startDate.isBefore(DateTime.now())); + final filteredEvents = events.value + ?.where( + (element) => element.startDate.isBefore( + DateTime.now(), + ), + ) + .toList() ?? + []; filteredEvents.sort((a, b) => a.startDate.compareTo(b.startDate)); - final currentDate = DateTime.now(); final currentDay = DateTime(currentDate.year, currentDate.month, currentDate.day); diff --git a/lib/calendarComponent/views/calendar_day_view.dart b/lib/calendarComponent/views/calendar_day_view.dart index 057e4b70..004129df 100644 --- a/lib/calendarComponent/views/calendar_day_view.dart +++ b/lib/calendarComponent/views/calendar_day_view.dart @@ -29,7 +29,6 @@ class CalendarDayView extends ConsumerWidget { }, headerDateFormat: "EEEE, dd.MM.yyyy", showNavigationArrow: true, - minDate: getIt().minDate(ref), maxDate: getIt().maxDate(ref), timeSlotViewSettings: const TimeSlotViewSettings( startHour: 7, diff --git a/lib/calendarComponent/views/calendar_month_view.dart b/lib/calendarComponent/views/calendar_month_view.dart index c0785217..cef707f6 100644 --- a/lib/calendarComponent/views/calendar_month_view.dart +++ b/lib/calendarComponent/views/calendar_month_view.dart @@ -27,7 +27,6 @@ class CalendarMonthView extends ConsumerWidget { firstDayOfWeek: 1, showDatePickerButton: true, showNavigationArrow: true, - minDate: getIt().minDate(ref), maxDate: getIt().maxDate(ref), onTap: (details) { getIt() diff --git a/lib/calendarComponent/views/calendar_week_view.dart b/lib/calendarComponent/views/calendar_week_view.dart index be74dfe2..d4618549 100644 --- a/lib/calendarComponent/views/calendar_week_view.dart +++ b/lib/calendarComponent/views/calendar_week_view.dart @@ -20,15 +20,18 @@ class CalendarWeekView extends ConsumerWidget { context, ), onTap: (details) { - getIt() - .showModalSheet(details, null, context, ref); + getIt().showModalSheet( + details, + null, + context, + ref, + ); }, firstDayOfWeek: 1, showDatePickerButton: true, headerDateFormat: "", showWeekNumber: true, showNavigationArrow: true, - minDate: getIt().minDate(ref), maxDate: getIt().maxDate(ref), timeSlotViewSettings: const TimeSlotViewSettings( startHour: 7, diff --git a/lib/lectureComponent/views/basic_lecture_info_view.dart b/lib/lectureComponent/views/basic_lecture_info_view.dart index 49dfa941..eade2117 100644 --- a/lib/lectureComponent/views/basic_lecture_info_view.dart +++ b/lib/lectureComponent/views/basic_lecture_info_view.dart @@ -8,8 +8,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; class BasicLectureInfoView extends ConsumerWidget { - const BasicLectureInfoView( - {super.key, required this.lectureDetails, this.lecture}); + const BasicLectureInfoView({ + super.key, + required this.lectureDetails, + this.lecture, + }); final LectureDetails lectureDetails; final Lecture? lecture;