TF-4195 Fix comments of coderabbit
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:model/extensions/email_extension.dart';
|
||||
import 'package:model/extensions/list_email_header_extension.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/model/smime_signature_status.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/utils/smime_signature_constant.dart';
|
||||
import 'package:tmail_ui_user/features/thread/data/extensions/map_keywords_extension.dart';
|
||||
|
||||
extension EmailExtension on Email {
|
||||
|
||||
@@ -39,7 +41,7 @@ extension EmailExtension on Email {
|
||||
|
||||
bool fromMe(String ownEmailAddress) {
|
||||
return from?.any(
|
||||
(emailAdress) => emailAdress.email == ownEmailAddress
|
||||
(emailAddress) => emailAddress.email == ownEmailAddress
|
||||
) == true;
|
||||
}
|
||||
|
||||
@@ -50,7 +52,15 @@ extension EmailExtension on Email {
|
||||
...bcc ?? {},
|
||||
};
|
||||
return recipients.any(
|
||||
(emailAdress) => emailAdress.email == ownEmailAddress
|
||||
(emailAddress) => emailAddress.email == ownEmailAddress
|
||||
) == true;
|
||||
}
|
||||
|
||||
Email toggleKeyword(KeyWordIdentifier keyword, bool remove) {
|
||||
return copyWith(
|
||||
keywords: remove
|
||||
? keywords.withoutKeyword(keyword)
|
||||
: keywords.withKeyword(keyword),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,31 +1,20 @@
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
|
||||
import 'package:model/extensions/email_extension.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/extensions/email_extension.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/model/email_loaded.dart';
|
||||
import 'package:tmail_ui_user/features/thread/data/extensions/map_keywords_extension.dart';
|
||||
|
||||
extension EmailLoadedExtension on EmailLoaded {
|
||||
EmailLoaded addEmailKeyword({
|
||||
EmailLoaded toggleEmailKeyword({
|
||||
required EmailId emailId,
|
||||
required KeyWordIdentifier keyword,
|
||||
required bool remove,
|
||||
}) {
|
||||
if (emailCurrent == null || emailCurrent?.id != emailId) {
|
||||
final current = emailCurrent;
|
||||
if (current == null || current.id != emailId) {
|
||||
return this;
|
||||
}
|
||||
final newKeyword = emailCurrent?.keywords?.withKeyword(keyword);
|
||||
final updatedEmail = emailCurrent?.copyWith(keywords: newKeyword);
|
||||
return copyWith(emailCurrent: updatedEmail);
|
||||
}
|
||||
|
||||
EmailLoaded removeEmailKeyword({
|
||||
required EmailId emailId,
|
||||
required KeyWordIdentifier keyword,
|
||||
}) {
|
||||
if (emailCurrent == null || emailCurrent?.id != emailId) {
|
||||
return this;
|
||||
}
|
||||
final newKeyword = emailCurrent?.keywords?.withoutKeyword(keyword);
|
||||
final updatedEmail = emailCurrent?.copyWith(keywords: newKeyword);
|
||||
return copyWith(emailCurrent: updatedEmail);
|
||||
return copyWith(
|
||||
emailCurrent: current.toggleKeyword(keyword, remove),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:core/utils/platform_info.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
|
||||
import 'package:labels/extensions/label_extension.dart';
|
||||
@@ -29,8 +30,10 @@ extension HandleLabelForEmailExtension on SingleEmailController {
|
||||
void toggleLabelToEmail(EmailId emailId, Label label, bool isSelected) {
|
||||
if (isSelected) {
|
||||
final accountId = mailboxDashBoardController.accountId.value;
|
||||
final session = mailboxDashBoardController.sessionCurrent;
|
||||
|
||||
_addALabelToAnEmail(
|
||||
session: session,
|
||||
accountId: accountId,
|
||||
emailId: emailId,
|
||||
label: label,
|
||||
@@ -39,12 +42,25 @@ extension HandleLabelForEmailExtension on SingleEmailController {
|
||||
}
|
||||
|
||||
void _addALabelToAnEmail({
|
||||
required Session? session,
|
||||
required AccountId? accountId,
|
||||
required Label label,
|
||||
required EmailId emailId,
|
||||
}) {
|
||||
final labelDisplay = label.safeDisplayName;
|
||||
|
||||
if (session == null) {
|
||||
consumeState(
|
||||
Stream.value(
|
||||
Left(AddALabelToAnEmailFailure(
|
||||
exception: NotFoundSessionException(),
|
||||
labelDisplay: labelDisplay,
|
||||
)),
|
||||
),
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
if (accountId == null) {
|
||||
consumeState(
|
||||
Stream.value(
|
||||
@@ -71,6 +87,7 @@ extension HandleLabelForEmailExtension on SingleEmailController {
|
||||
}
|
||||
|
||||
consumeState(addALabelToAnEmailInteractor.execute(
|
||||
session,
|
||||
accountId,
|
||||
emailId,
|
||||
labelKeyword,
|
||||
@@ -117,24 +134,27 @@ extension HandleLabelForEmailExtension on SingleEmailController {
|
||||
final controller = threadDetailController;
|
||||
if (controller != null) {
|
||||
controller.emailIdsPresentation.value =
|
||||
controller.emailIdsPresentation.addEmailKeywordById(
|
||||
controller.emailIdsPresentation.toggleEmailKeywordById(
|
||||
emailId: emailId,
|
||||
keyword: labelKeyword,
|
||||
remove: false,
|
||||
);
|
||||
|
||||
controller.emailsInThreadDetailInfo.value =
|
||||
controller.emailsInThreadDetailInfo.addEmailKeywordById(
|
||||
controller.emailsInThreadDetailInfo.toggleEmailKeywordById(
|
||||
emailId: emailId,
|
||||
keyword: labelKeyword,
|
||||
remove: false,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
final emailLoaded = currentEmailLoaded.value;
|
||||
if (emailLoaded != null && emailLoaded.emailCurrent?.id == emailId) {
|
||||
currentEmailLoaded.value = emailLoaded.addEmailKeyword(
|
||||
currentEmailLoaded.value = emailLoaded.toggleEmailKeyword(
|
||||
emailId: emailId,
|
||||
keyword: labelKeyword,
|
||||
remove: false,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -148,6 +168,7 @@ extension HandleLabelForEmailExtension on SingleEmailController {
|
||||
}
|
||||
|
||||
Future<void> openAddLabelToEmailDialogModal(PresentationEmail email) async {
|
||||
if (!isLabelFeatureEnabled) return;
|
||||
final labels = mailboxDashBoardController.labelController.labels;
|
||||
final emailLabels = email.getLabelList(labels);
|
||||
final emailId = email.id;
|
||||
|
||||
@@ -170,15 +170,13 @@ extension PresentationEmailExtension on PresentationEmail {
|
||||
.toList();
|
||||
}
|
||||
|
||||
PresentationEmail addKeyword(KeyWordIdentifier keyword) {
|
||||
PresentationEmail toggleKeyword(KeyWordIdentifier keyword, bool remove) {
|
||||
return copyWith(
|
||||
keywords: keywords.withKeyword(keyword),
|
||||
);
|
||||
}
|
||||
|
||||
PresentationEmail removeKeyword(KeyWordIdentifier keyword) {
|
||||
return copyWith(
|
||||
keywords: keywords.withoutKeyword(keyword),
|
||||
);
|
||||
keywords: remove
|
||||
? keywords.withoutKeyword(keyword)
|
||||
: keywords.withKeyword(keyword),
|
||||
)
|
||||
..searchSnippetSubject = searchSnippetSubject
|
||||
..searchSnippetPreview = searchSnippetPreview;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user