From 8ed14711a3c95da30ac8e7df5637327d24a12d3a Mon Sep 17 00:00:00 2001 From: DatDang Date: Mon, 15 Apr 2024 16:22:22 +0700 Subject: [PATCH] TF-2802 Expose blobId of chosen calendar event after parse --- .../domain/state/parse_calendar_event_state.dart | 7 ++++--- .../usecases/parse_calendar_event_interactor.dart | 11 ++++------- .../controller/single_email_controller.dart | 2 +- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/lib/features/email/domain/state/parse_calendar_event_state.dart b/lib/features/email/domain/state/parse_calendar_event_state.dart index 769f20e8d..75b260b19 100644 --- a/lib/features/email/domain/state/parse_calendar_event_state.dart +++ b/lib/features/email/domain/state/parse_calendar_event_state.dart @@ -1,5 +1,6 @@ import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/success.dart'; +import 'package:jmap_dart_client/jmap/core/id.dart'; import 'package:jmap_dart_client/jmap/mail/calendar/calendar_event.dart'; import 'package:tmail_ui_user/features/email/domain/model/event_action.dart'; @@ -7,13 +8,13 @@ class ParseCalendarEventLoading extends LoadingState {} class ParseCalendarEventSuccess extends UIState { - final List calendarEventList; + final Map> calendarEventMap; final List eventActionList; - ParseCalendarEventSuccess(this.calendarEventList, this.eventActionList); + ParseCalendarEventSuccess(this.calendarEventMap, this.eventActionList); @override - List get props => [calendarEventList, eventActionList]; + List get props => [calendarEventMap, eventActionList]; } class ParseCalendarEventFailure extends FeatureFailure { diff --git a/lib/features/email/domain/usecases/parse_calendar_event_interactor.dart b/lib/features/email/domain/usecases/parse_calendar_event_interactor.dart index e40e43dfa..43772c298 100644 --- a/lib/features/email/domain/usecases/parse_calendar_event_interactor.dart +++ b/lib/features/email/domain/usecases/parse_calendar_event_interactor.dart @@ -30,21 +30,18 @@ class ParseCalendarEventInteractor { eagerError: true ); - final listCalendarEvent = List.empty(growable: true); + final mapCalendarEvent = >{}; final listEventAction = List.empty(growable: true); if (listResult[0] is Map>) { - final mapCalendarEvent = listResult[0] as Map>; - for (var calendarEvents in mapCalendarEvent.values) { - listCalendarEvent.addAll(calendarEvents); - } + mapCalendarEvent.addAll(listResult[0] as Map>); } if (listResult[1] is List) { listEventAction.addAll(listResult[1] as List); } - if (listCalendarEvent.isNotEmpty) { - yield Right(ParseCalendarEventSuccess(listCalendarEvent, listEventAction)); + if (mapCalendarEvent.isNotEmpty) { + yield Right(ParseCalendarEventSuccess(mapCalendarEvent, listEventAction)); } else { yield Left(ParseCalendarEventFailure(NotFoundCalendarEventException())); } diff --git a/lib/features/email/presentation/controller/single_email_controller.dart b/lib/features/email/presentation/controller/single_email_controller.dart index be310b4fd..479cdc230 100644 --- a/lib/features/email/presentation/controller/single_email_controller.dart +++ b/lib/features/email/presentation/controller/single_email_controller.dart @@ -1465,7 +1465,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin { void _handleParseCalendarEventSuccess(ParseCalendarEventSuccess success) { emailLoadedViewState.value = Right(success); - calendarEvent.value = success.calendarEventList.first; + calendarEvent.value = success.calendarEventMap.values.first.first; eventActions.value = success.eventActionList; if (PlatformInfo.isMobile) { _enableScrollPageView();