TF-82 Edit a email draft

This commit is contained in:
dab246
2022-02-21 17:07:07 +07:00
committed by Dat H. Pham
parent a2ffd9b354
commit 808191a806
19 changed files with 275 additions and 55 deletions
@@ -15,6 +15,8 @@ import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:model/model.dart';
import 'package:tmail_ui_user/features/base/base_controller.dart';
import 'package:tmail_ui_user/features/composer/domain/state/save_email_as_drafts_state.dart';
import 'package:tmail_ui_user/features/composer/domain/state/send_email_state.dart';
import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts_state.dart';
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
import 'package:tmail_ui_user/features/email/domain/model/move_request.dart';
import 'package:tmail_ui_user/features/email/domain/state/mark_as_email_star_state.dart';
@@ -135,7 +137,9 @@ class ThreadController extends BaseController {
} else if (success is SearchEmailNewQuery){
_searchEmail();
} else if (success is SaveEmailAsDraftsSuccess
|| success is RemoveEmailDraftsSuccess) {
|| success is RemoveEmailDraftsSuccess
|| success is SendEmailSuccess
|| success is UpdateEmailDraftsSuccess) {
cancelSelectEmail();
_refreshEmailChanges();
}
@@ -673,7 +677,7 @@ class ThreadController extends BaseController {
bool canComposeEmail() => mailboxDashBoardController.sessionCurrent != null
&& mailboxDashBoardController.userProfile.value != null
&& mailboxDashBoardController.mapDefaultMailboxId.containsKey(PresentationMailbox.roleOutbox);
&& mailboxDashBoardController.mapDefaultMailboxId.isNotEmpty;
bool isSelectionEnabled() => currentSelectMode.value == SelectMode.ACTIVE;
@@ -704,6 +708,20 @@ class ThreadController extends BaseController {
push(AppRoutes.EMAIL);
}
void editEmail(PresentationEmail presentationEmail) {
if (canComposeEmail()) {
push(
AppRoutes.COMPOSER,
arguments: ComposerArguments(
emailActionType: EmailActionType.edit,
presentationEmail: presentationEmail,
mailboxRole: mailboxDashBoardController.selectedMailbox.value?.role,
session: mailboxDashBoardController.sessionCurrent!,
userProfile: mailboxDashBoardController.userProfile.value!,
mapMailboxId: mailboxDashBoardController.mapDefaultMailboxId));
}
}
void composeEmailAction() {
if (canComposeEmail()) {
push(