From b278aae5f03be28f04422dffb3b9ec77888166bb Mon Sep 17 00:00:00 2001 From: dab246 Date: Wed, 23 Apr 2025 12:04:40 +0700 Subject: [PATCH] TF-3683 Fix message `Draft saved` just is shown at the first saving Signed-off-by: dab246 --- .../mailbox_dashboard_controller.dart | 3 +++ .../handle_save_email_as_draft_extension.dart | 22 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 lib/features/mailbox_dashboard/presentation/extensions/handle_save_email_as_draft_extension.dart diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index 9df33f011..b81345502 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -105,6 +105,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/delete_emails_in_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_clear_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_preferences_setting_extension.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_save_email_as_draft_extension.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/open_and_close_composer_extension.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/reopen_composer_cache_extension.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/set_error_extension.dart'; @@ -384,6 +385,8 @@ class MailboxDashBoardController extends ReloadableController _handleSendEmailSuccess(success); } else if (success is SaveEmailAsDraftsSuccess) { _saveEmailAsDraftsSuccess(success); + } else if (success is UpdateEmailDraftsSuccess) { + handleUpdateEmailAsDraftsSuccess(); } else if (success is MoveToMailboxSuccess) { _moveToMailboxSuccess(success); } else if (success is DeleteEmailPermanentlySuccess) { diff --git a/lib/features/mailbox_dashboard/presentation/extensions/handle_save_email_as_draft_extension.dart b/lib/features/mailbox_dashboard/presentation/extensions/handle_save_email_as_draft_extension.dart new file mode 100644 index 000000000..0c425a383 --- /dev/null +++ b/lib/features/mailbox_dashboard/presentation/extensions/handle_save_email_as_draft_extension.dart @@ -0,0 +1,22 @@ + +import 'package:core/presentation/extensions/color_extension.dart'; +import 'package:flutter/material.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart'; +import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; +import 'package:tmail_ui_user/main/routes/route_navigation.dart'; + +extension HandleSaveEmailAsDraftExtension on MailboxDashBoardController { + + void handleUpdateEmailAsDraftsSuccess() { + if (currentContext == null || currentOverlayContext == null) return; + + appToast.showToastMessage( + currentOverlayContext!, + AppLocalizations.of(currentContext!).drafts_saved, + leadingSVGIcon: imagePaths.icMailboxDrafts, + leadingSVGIconColor: Colors.white, + backgroundColor: AppColor.toastSuccessBackgroundColor, + textColor: Colors.white, + ); + } +} \ No newline at end of file