TF-3385 Fix change flags not working

This commit is contained in:
DatDang
2025-01-03 17:01:26 +07:00
committed by Dat H. Pham
parent db0f26f241
commit b5fc4c6e58
2 changed files with 14 additions and 2 deletions
@@ -1134,6 +1134,13 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
KeyWordIdentifier.emailFlagged: success.markStarAction == MarkStarAction.markStar, KeyWordIdentifier.emailFlagged: success.markStarAction == MarkStarAction.markStar,
}); });
mailboxDashBoardController.setSelectedEmail(newEmail); mailboxDashBoardController.setSelectedEmail(newEmail);
final emailId = newEmail?.id;
if (emailId == null) return;
mailboxDashBoardController.updateEmailFlagByEmailIds(
[emailId],
markStarAction: success.markStarAction,
);
} }
void handleEmailAction(BuildContext context, PresentationEmail presentationEmail, EmailActionType actionType) { void handleEmailAction(BuildContext context, PresentationEmail presentationEmail, EmailActionType actionType) {
@@ -4,6 +4,7 @@ import 'package:model/email/mark_star_action.dart';
import 'package:model/email/presentation_email.dart'; import 'package:model/email/presentation_email.dart';
import 'package:model/email/read_actions.dart'; import 'package:model/email/read_actions.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
extension UpdateCurrentEmailsFlagsExtension on MailboxDashBoardController { extension UpdateCurrentEmailsFlagsExtension on MailboxDashBoardController {
void updateEmailFlagByEmailIds( void updateEmailFlagByEmailIds(
@@ -13,7 +14,11 @@ extension UpdateCurrentEmailsFlagsExtension on MailboxDashBoardController {
}) { }) {
if (readAction == null && markStarAction == null) return; if (readAction == null && markStarAction == null) return;
for (var email in emailsInCurrentMailbox) { final currentEmails = dashboardRoute.value == DashboardRoutes.searchEmail
? listResultSearch
: emailsInCurrentMailbox;
for (var email in currentEmails) {
if (!emailIds.contains(email.id)) continue; if (!emailIds.contains(email.id)) continue;
switch (readAction) { switch (readAction) {
@@ -39,7 +44,7 @@ extension UpdateCurrentEmailsFlagsExtension on MailboxDashBoardController {
} }
} }
emailsInCurrentMailbox.refresh(); currentEmails.refresh();
} }
void _updateKeyword( void _updateKeyword(