TF-658 Fix composer disappears when performing actions on browser

This commit is contained in:
dab246
2022-06-15 11:41:33 +07:00
committed by Dat H. Pham
parent a9624a33d4
commit f0c6055dc1
10 changed files with 47 additions and 97 deletions
@@ -40,7 +40,6 @@ import 'package:tmail_ui_user/features/email/presentation/model/composer_argumen
import 'package:tmail_ui_user/features/email/presentation/widgets/email_address_bottom_sheet_builder.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/email_address_dialog_builder.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.dart';
import 'package:tmail_ui_user/features/thread/presentation/model/delete_action_type.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
@@ -583,13 +582,8 @@ class EmailController extends BaseController {
emailActionType: EmailActionType.composeFromEmailAddress,
emailAddress: emailAddress,
mailboxRole: mailboxDashBoardController.selectedMailbox.value?.role);
if (kIsWeb) {
if (mailboxDashBoardController.dashBoardAction.value is! ComposeEmailAction) {
mailboxDashBoardController.dispatchAction(ComposeEmailAction(arguments: arguments));
}
} else {
push(AppRoutes.COMPOSER, arguments: arguments);
}
mailboxDashBoardController.goToComposer(arguments);
}
void openMailToLink(Uri? uri) {
@@ -602,15 +596,11 @@ class EmailController extends BaseController {
emailActionType: EmailActionType.composeFromEmailAddress,
emailAddress: emailAddress,
mailboxRole: mailboxDashBoardController.selectedMailbox.value?.role);
if (kIsWeb) {
if (mailboxDashBoardController.dashBoardAction.value is! ComposeEmailAction) {
mailboxDashBoardController.dispatchAction(ComposeEmailAction(arguments: arguments));
}
if (Get.currentRoute == AppRoutes.EMAIL) {
popBack();
}
} else {
push(AppRoutes.COMPOSER, arguments: arguments);
mailboxDashBoardController.goToComposer(arguments);
if (BuildUtils.isWeb && Get.currentRoute == AppRoutes.EMAIL) {
popBack();
}
}
}
@@ -657,7 +647,10 @@ class EmailController extends BaseController {
void pressEmailAction(EmailActionType emailActionType) {
if (emailActionType == EmailActionType.compose) {
composeEmailAction();
mailboxDashBoardController.goToComposer(ComposerArguments());
if (BuildUtils.isWeb && Get.currentRoute == AppRoutes.EMAIL) {
popBack();
}
} else {
final arguments = ComposerArguments(
emailActionType: emailActionType,
@@ -666,29 +659,10 @@ class EmailController extends BaseController {
attachments: emailActionType == EmailActionType.forward ? attachments : null,
mailboxRole: mailboxDashBoardController.selectedMailbox.value?.role);
if (kIsWeb) {
if (mailboxDashBoardController.dashBoardAction.value is! ComposeEmailAction) {
mailboxDashBoardController.dispatchAction(ComposeEmailAction(arguments: arguments));
}
if (Get.currentRoute == AppRoutes.EMAIL) {
popBack();
}
} else {
push(AppRoutes.COMPOSER, arguments: arguments);
}
}
}
void composeEmailAction() {
if (kIsWeb) {
if (mailboxDashBoardController.dashBoardAction.value is! ComposeEmailAction) {
mailboxDashBoardController.dispatchAction(ComposeEmailAction(arguments: ComposerArguments()));
}
if (Get.currentRoute == AppRoutes.EMAIL) {
mailboxDashBoardController.goToComposer(arguments);
if (BuildUtils.isWeb && Get.currentRoute == AppRoutes.EMAIL) {
popBack();
}
} else {
push(AppRoutes.COMPOSER, arguments: ComposerArguments());
}
}
}