From d83e92bc5f6eda711fbc0abca8925beceb78e68f Mon Sep 17 00:00:00 2001 From: DatDang Date: Thu, 31 Jul 2025 13:42:20 +0700 Subject: [PATCH] TF-3924 Thread Detail Keep html view alive after thread load --- .../email/presentation/controller/single_email_controller.dart | 2 ++ lib/features/email/presentation/email_view.dart | 2 +- .../thread_detail/presentation/thread_detail_controller.dart | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/features/email/presentation/controller/single_email_controller.dart b/lib/features/email/presentation/controller/single_email_controller.dart index 8e223ad3d..8c4e83474 100644 --- a/lib/features/email/presentation/controller/single_email_controller.dart +++ b/lib/features/email/presentation/controller/single_email_controller.dart @@ -221,6 +221,8 @@ class SingleEmailController extends BaseController with AppLoaderMixin { String get ownEmailAddress => mailboxDashBoardController.ownEmailAddress.value; + GlobalObjectKey? get htmlViewKey => _threadDetailController?.expandedEmailHtmlViewKey; + SingleEmailController( this._getEmailContentInteractor, this._markAsEmailReadInteractor, diff --git a/lib/features/email/presentation/email_view.dart b/lib/features/email/presentation/email_view.dart index 90d28cb66..2060a86df 100644 --- a/lib/features/email/presentation/email_view.dart +++ b/lib/features/email/presentation/email_view.dart @@ -348,7 +348,7 @@ class EmailView extends GetWidget { return Padding( padding: EmailViewStyles.emailContentPadding, child: HtmlContentViewerOnWeb( - key: ValueKey(tag), + key: controller.htmlViewKey, widthContent: bodyConstraints.maxWidth, contentHtml: allEmailContents, mailtoDelegate: controller.openMailToLink, diff --git a/lib/features/thread_detail/presentation/thread_detail_controller.dart b/lib/features/thread_detail/presentation/thread_detail_controller.dart index 70e397c70..3bea684a1 100644 --- a/lib/features/thread_detail/presentation/thread_detail_controller.dart +++ b/lib/features/thread_detail/presentation/thread_detail_controller.dart @@ -143,6 +143,9 @@ class ThreadDetailController extends BaseController { networkConnectionController.isNetworkConnectionAvailable(); bool get isThreadDetailEnabled => threadDetailManager.isThreadDetailEnabled; + GlobalObjectKey? get expandedEmailHtmlViewKey => currentExpandedEmailId.value != null + ? GlobalObjectKey(currentExpandedEmailId.value!) + : null; @override void onInit() {