TF-3878 Thread Detail Fix email content disappearing

This commit is contained in:
DatDang
2025-07-17 16:47:30 +07:00
committed by Dat H. Pham
parent 683ca404f7
commit 51c5c7e13a
3 changed files with 13 additions and 4 deletions
@@ -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;
}
@@ -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);
}
@@ -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) {