TF-3294 Fix BLUE-BAR mail to attendees duplicated recipients

This commit is contained in:
dab246
2024-11-23 03:52:01 +07:00
committed by Dat H. Pham
parent cd8602784e
commit 4f5e7d460d
5 changed files with 110 additions and 11 deletions
@@ -92,6 +92,8 @@ import 'package:tmail_ui_user/features/email/presentation/action/email_ui_action
import 'package:tmail_ui_user/features/email/presentation/bindings/calendar_event_interactor_bindings.dart';
import 'package:tmail_ui_user/features/email/presentation/controller/email_supervisor_controller.dart';
import 'package:tmail_ui_user/features/email/presentation/extensions/attachment_extension.dart';
import 'package:tmail_ui_user/features/email/presentation/extensions/calendar_attendee_extension.dart';
import 'package:tmail_ui_user/features/email/presentation/extensions/calendar_organizer_extension.dart';
import 'package:tmail_ui_user/features/email/presentation/model/blob_calendar_event.dart';
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
import 'package:tmail_ui_user/features/email/presentation/model/email_loaded.dart';
@@ -2184,22 +2186,20 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
}
void handleMailToAttendees(CalendarOrganizer? organizer, List<CalendarAttendee>? attendees) {
final listEmailAddressAttendees = attendees
?.map((attendee) => EmailAddress(attendee.name?.name, attendee.mailto?.mailAddress.value))
.toList() ?? [];
List<EmailAddress> listEmailAddressAttendees = [];
if (organizer != null) {
listEmailAddressAttendees.add(EmailAddress(organizer.name, organizer.mailto?.value));
listEmailAddressAttendees.add(organizer.toEmailAddress());
}
final listEmailAddressMailTo = listEmailAddressAttendees
.where((emailAddress) {
return emailAddress.emailAddress.isNotEmpty &&
emailAddress.emailAddress != session?.username.value;
})
.toSet()
.toList();
final listEmailAddress = attendees
?.map((attendee) => attendee.toEmailAddress())
.toList() ?? [];
listEmailAddressAttendees.addAll(listEmailAddress);
final username = mailboxDashBoardController.sessionCurrent?.username.value ?? '';
final listEmailAddressMailTo = listEmailAddressAttendees.removeInvalidEmails(username);
log('SingleEmailController::handleMailToAttendees: listEmailAddressMailTo = $listEmailAddressMailTo');
mailboxDashBoardController.goToComposer(
ComposerArguments.fromMailtoUri(listEmailAddress: listEmailAddressMailTo)