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) {