TF-3941 Thread Detail Thread level mark read/star, archive and spam

This commit is contained in:
DatDang
2025-08-05 14:15:03 +07:00
committed by Dat H. Pham
parent f44118af48
commit b7cd3f7179
35 changed files with 902 additions and 552 deletions
@@ -4,7 +4,9 @@ import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:model/email/presentation_email.dart';
import 'package:model/extensions/presentation_email_extension.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:tmail_ui_user/features/email/presentation/extensions/email_extension.dart';
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
import 'package:tmail_ui_user/features/thread_detail/domain/model/email_in_thread_detail_info.dart';
import 'package:tmail_ui_user/main/routes/app_routes.dart';
import 'package:tmail_ui_user/main/routes/navigation_router.dart';
import 'package:tmail_ui_user/main/routes/route_utils.dart';
@@ -56,4 +58,23 @@ extension ListPresentationEmailExtensions on List<PresentationEmail> {
return null;
}
}
List<EmailInThreadDetailInfo> toEmailsInThreadDetailInfo({
required MailboxId? sentMailboxId,
required String? ownEmailAddress,
}) {
return map(
(email) => EmailInThreadDetailInfo(
emailId: email.id!,
keywords: email.keywords,
mailboxIds: email.mailboxIds,
isValidToDisplay: sentMailboxId == null || ownEmailAddress == null
? true
: email.toEmail().checkEmailValidForThreadDetail(
sentMailboxId,
ownEmailAddress,
),
),
).toList();
}
}