Use common FilterField & EmailReceiveTimeType objects for the entire app
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
+6
-6
@@ -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;
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
||||
import 'package:model/email/prefix_email_address.dart';
|
||||
import 'package:tmail_ui_user/features/base/model/filter_filter.dart';
|
||||
|
||||
class DraggableEmailAddress with EquatableMixin {
|
||||
final EmailAddress emailAddress;
|
||||
final PrefixEmailAddress prefix;
|
||||
final FilterField filterField;
|
||||
final String? composerId;
|
||||
|
||||
DraggableEmailAddress({
|
||||
required this.emailAddress,
|
||||
required this.prefix,
|
||||
required this.filterField,
|
||||
this.composerId,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [emailAddress, prefix, composerId];
|
||||
List<Object?> get props => [emailAddress, filterField, composerId];
|
||||
}
|
||||
@@ -594,7 +594,7 @@ class _RecipientComposerWidgetState extends State<RecipientComposerWidget> {
|
||||
) {
|
||||
log('_RecipientComposerWidgetState::_handleAcceptDraggableEmailAddressAction: $draggableEmailAddress');
|
||||
if (draggableEmailAddress.composerId == widget.composerId) {
|
||||
if (draggableEmailAddress.prefix != widget.prefix) {
|
||||
if (draggableEmailAddress.filterField != widget.prefix.filterField) {
|
||||
if (!_currentListEmailAddress.contains(draggableEmailAddress.emailAddress)) {
|
||||
stateSetter(() {
|
||||
_currentListEmailAddress.add(draggableEmailAddress.emailAddress);
|
||||
|
||||
@@ -11,6 +11,7 @@ import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
||||
import 'package:model/email/prefix_email_address.dart';
|
||||
import 'package:model/extensions/email_address_extension.dart';
|
||||
import 'package:tmail_ui_user/features/base/widget/card_with_smart_interaction_overlay_view.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/prefix_email_address_extension.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/model/draggable_email_address.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/model/email_address_action_type.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/styles/recipient_tag_item_widget_style.dart';
|
||||
@@ -137,7 +138,7 @@ class RecipientTagItemWidget extends StatelessWidget {
|
||||
tagWidget = Draggable<DraggableEmailAddress>(
|
||||
data: DraggableEmailAddress(
|
||||
emailAddress: currentEmailAddress,
|
||||
prefix: prefix,
|
||||
filterField: prefix.filterField,
|
||||
composerId: composerId,
|
||||
),
|
||||
feedback: DraggableRecipientTagWidget(emailAddress: currentEmailAddress),
|
||||
|
||||
Reference in New Issue
Block a user