TF-4174 Display tag in opened email view when thread is enabled on web desktop

This commit is contained in:
dab246
2025-11-25 15:00:19 +07:00
committed by Dat H. Pham
parent e99643085d
commit e10a9d2f64
2 changed files with 13 additions and 0 deletions
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:model/email/email_in_thread_status.dart';
import 'package:model/extensions/presentation_email_extension.dart';
import 'package:tmail_ui_user/features/email/presentation/email_view.dart';
import 'package:tmail_ui_user/features/email/presentation/extensions/presentation_email_extension.dart';
import 'package:tmail_ui_user/features/thread_detail/presentation/extension/handle_mail_shortcut_actions_extension.dart';
import 'package:tmail_ui_user/features/thread_detail/presentation/extension/load_more_thread_detail_emails.dart';
import 'package:tmail_ui_user/features/thread_detail/presentation/extension/thread_detail_load_more_segments.dart';
@@ -44,6 +45,11 @@ extension GetThreadDetailEmailViews on ThreadDetailController {
final isFirstEmailInThreadDetail = indexOfEmailId == 0;
if (presentationEmail.emailInThreadStatus == EmailInThreadStatus.collapsed) {
final allLabels = mailboxDashBoardController.labelController.labels;
final emailLabels = isFirstEmailInThreadDetail
? emailIdsPresentation.values.last?.getLabelList(allLabels)
: null;
return ThreadDetailCollapsedEmail(
presentationEmail: presentationEmail.copyWith(
subject: isFirstEmailInThreadDetail
@@ -57,6 +63,7 @@ extension GetThreadDetailEmailViews on ThreadDetailController {
mailboxDashBoardController.mapMailboxById,
),
emailLoaded: null,
labels: emailLabels,
onEmailActionClick: threadDetailOnEmailActionClick,
openEmailAddressDetailAction: (_, emailAddress) {
openEmailAddressDetailAction(emailAddress);
@@ -3,6 +3,7 @@ import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/utils/theme_utils.dart';
import 'package:flutter/material.dart';
import 'package:labels/model/label.dart';
import 'package:model/email/presentation_email.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:tmail_ui_user/features/email/presentation/model/email_loaded.dart';
@@ -21,6 +22,7 @@ class ThreadDetailCollapsedEmail extends StatelessWidget {
this.openEmailAddressDetailAction,
this.mailboxContain,
this.emailLoaded,
this.labels,
this.onEmailActionClick,
this.onToggleThreadDetailCollapseExpand,
});
@@ -33,6 +35,7 @@ class ThreadDetailCollapsedEmail extends StatelessWidget {
final PresentationMailbox? mailboxContain;
final EmailLoaded? emailLoaded;
final OnEmailActionClick? onEmailActionClick;
final List<Label>? labels;
final VoidCallback? onToggleThreadDetailCollapseExpand;
String get preview => presentationEmail.getPartialContent();
@@ -40,6 +43,7 @@ class ThreadDetailCollapsedEmail extends StatelessWidget {
@override
Widget build(BuildContext context) {
final isMobileResponsive = responsiveUtils.isMobile(context);
final isWebDesktop = responsiveUtils.isWebDesktop(context);
return DecoratedBox(
decoration: const BoxDecoration(
@@ -61,6 +65,8 @@ class ThreadDetailCollapsedEmail extends StatelessWidget {
EmailSubjectWidget(
presentationEmail: presentationEmail,
isMobileResponsive: isMobileResponsive,
isWebDesktop: isWebDesktop,
labels: labels,
),
InformationSenderAndReceiverBuilder(
emailSelected: presentationEmail,