Use common FilterField & EmailReceiveTimeType objects for the entire app

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-07-11 01:31:07 +07:00
committed by Dat H. Pham
parent 84e3c526f7
commit da29ff01e3
17 changed files with 253 additions and 378 deletions
@@ -2,6 +2,7 @@
import 'package:flutter/cupertino.dart';
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
import 'package:model/model.dart';
import 'package:tmail_ui_user/features/base/model/filter_filter.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
extension PrefixEmailAddressExtension on PrefixEmailAddress {
@@ -35,4 +36,19 @@ extension PrefixEmailAddressExtension on PrefixEmailAddress {
return email.from?.toList() ?? List.empty();
}
}
FilterField get filterField {
switch(this) {
case PrefixEmailAddress.from:
return FilterField.from;
case PrefixEmailAddress.to:
return FilterField.to;
case PrefixEmailAddress.cc:
return FilterField.cc;
case PrefixEmailAddress.bcc:
return FilterField.bcc;
case PrefixEmailAddress.replyTo:
return FilterField.replyTo;
}
}
}
@@ -1,6 +1,6 @@
import 'package:model/email/prefix_email_address.dart';
import 'package:model/mailbox/expand_mode.dart';
import 'package:tmail_ui_user/features/base/model/filter_filter.dart';
import 'package:tmail_ui_user/features/composer/presentation/composer_controller.dart';
import 'package:tmail_ui_user/features/composer/presentation/model/draggable_email_address.dart';
@@ -30,20 +30,20 @@ extension RemoveDraggableEmailAddressBetweenRecipientFieldsExtension on Composer
required ComposerController controller,
required DraggableEmailAddress draggableEmailAddress,
}) {
switch(draggableEmailAddress.prefix) {
case PrefixEmailAddress.to:
switch(draggableEmailAddress.filterField) {
case FilterField.to:
controller.listToEmailAddress.remove(draggableEmailAddress.emailAddress);
controller.toAddressExpandMode.value = ExpandMode.EXPAND;
break;
case PrefixEmailAddress.cc:
case FilterField.cc:
controller.listCcEmailAddress.remove(draggableEmailAddress.emailAddress);
controller.ccAddressExpandMode.value = ExpandMode.EXPAND;
break;
case PrefixEmailAddress.bcc:
case FilterField.bcc:
controller.listBccEmailAddress.remove(draggableEmailAddress.emailAddress);
controller.bccAddressExpandMode.value = ExpandMode.EXPAND;
break;
case PrefixEmailAddress.replyTo:
case FilterField.replyTo:
controller.listReplyToEmailAddress.remove(draggableEmailAddress.emailAddress);
controller.replyToAddressExpandMode.value = ExpandMode.EXPAND;
break;