From 51c5c7e13aecd9b93a5bde1b50ea15312ebe35fd Mon Sep 17 00:00:00 2001 From: DatDang Date: Thu, 17 Jul 2025 16:47:30 +0700 Subject: [PATCH] TF-3878 Thread Detail Fix email content disappearing --- .../extension/initialize_thread_detail_manager.dart | 7 ++++--- .../extension/thread_detail_next_previous_actions.dart | 4 +++- .../extension/thread_detail_on_email_action_click.dart | 6 ++++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/features/thread_detail/presentation/extension/initialize_thread_detail_manager.dart b/lib/features/thread_detail/presentation/extension/initialize_thread_detail_manager.dart index 2eb9e8d05..4dfc683c2 100644 --- a/lib/features/thread_detail/presentation/extension/initialize_thread_detail_manager.dart +++ b/lib/features/thread_detail/presentation/extension/initialize_thread_detail_manager.dart @@ -21,9 +21,10 @@ extension InitializeThreadDetailManager on ThreadDetailManager { ); currentMobilePageViewIndex.value = currentThreadIndex; } else if (selectedEmail?.id != null) { - final currentEmailIndex = currentDisplayedEmails.indexOf( - selectedEmail!, - ); + final currentEmailIndex = currentDisplayedEmails + .map((email) => email.id) + .toList() + .indexOf(selectedEmail?.id); currentMobilePageViewIndex.value = currentEmailIndex; } diff --git a/lib/features/thread_detail/presentation/extension/thread_detail_next_previous_actions.dart b/lib/features/thread_detail/presentation/extension/thread_detail_next_previous_actions.dart index d6558cdb7..b91867bca 100644 --- a/lib/features/thread_detail/presentation/extension/thread_detail_next_previous_actions.dart +++ b/lib/features/thread_detail/presentation/extension/thread_detail_next_previous_actions.dart @@ -16,7 +16,9 @@ extension ThreadDetailNextPreviousActions on ThreadDetailManager { final currentIndex = isThreadDetailEnabled ? availableThreadIds.indexOf(currentThreadId!) : currentDisplayedEmails - .indexOf(mailboxDashBoardController.selectedEmail.value!); + .map((email) => email.id) + .toList() + .indexOf(mailboxDashBoardController.selectedEmail.value?.id); _navigate(currentIndex + 1, isThreadDetailEnabled); } diff --git a/lib/features/thread_detail/presentation/extension/thread_detail_on_email_action_click.dart b/lib/features/thread_detail/presentation/extension/thread_detail_on_email_action_click.dart index 36256974d..a26ab15c5 100644 --- a/lib/features/thread_detail/presentation/extension/thread_detail_on_email_action_click.dart +++ b/lib/features/thread_detail/presentation/extension/thread_detail_on_email_action_click.dart @@ -11,6 +11,7 @@ import 'package:model/extensions/session_extension.dart'; import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart'; import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart'; +import 'package:tmail_ui_user/features/thread_detail/presentation/extension/close_thread_detail_action.dart'; import 'package:tmail_ui_user/features/thread_detail/presentation/thread_detail_controller.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; @@ -143,6 +144,7 @@ extension ThreadDetailOnEmailActionClick on ThreadDetailController { moveActionRequest.moveRequest, moveActionRequest.emailIdsWithReadStatus, ); + if (emailIdsPresentation.length == 1) closeThreadDetailAction(currentContext); } void _trashEmail(PresentationEmail presentationEmail) { @@ -162,6 +164,7 @@ extension ThreadDetailOnEmailActionClick on ThreadDetailController { moveActionRequest.moveRequest, moveActionRequest.emailIdsWithReadStatus, ); + if (emailIdsPresentation.length == 1) closeThreadDetailAction(currentContext); } void _markEmailSpam(PresentationEmail presentationEmail) { @@ -181,6 +184,7 @@ extension ThreadDetailOnEmailActionClick on ThreadDetailController { moveActionRequest.moveRequest, moveActionRequest.emailIdsWithReadStatus, ); + if (emailIdsPresentation.length == 1) closeThreadDetailAction(currentContext); } void _unSpamEmail(PresentationEmail presentationEmail) { @@ -200,6 +204,7 @@ extension ThreadDetailOnEmailActionClick on ThreadDetailController { moveActionRequest.moveRequest, moveActionRequest.emailIdsWithReadStatus, ); + if (emailIdsPresentation.length == 1) closeThreadDetailAction(currentContext); } void _deleteEmailPermanently(PresentationEmail email) { @@ -212,6 +217,7 @@ extension ThreadDetailOnEmailActionClick on ThreadDetailController { responsiveUtils: responsiveUtils, imagePaths: imagePaths, ); + if (emailIdsPresentation.length == 1) closeThreadDetailAction(currentContext); } void _quickCreateRule(PresentationEmail presentationEmail) {