TF-1877 Fix error TextEditingController was used after being disposed on some screen

(cherry picked from commit 50e4c6ec55eea21a45a5a8dd31cd239245248df3)
This commit is contained in:
dab246
2023-06-30 15:45:59 +07:00
committed by Dat Vu
parent 32adfb3581
commit 6c06d0742c
30 changed files with 377 additions and 942 deletions
@@ -25,6 +25,7 @@ import 'package:tmail_ui_user/features/manage_account/presentation/extensions/da
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/routes/app_routes.dart';
import 'package:tmail_ui_user/main/routes/dialog_router.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
class AdvancedFilterController extends BaseController {
@@ -131,30 +132,19 @@ class AdvancedFilterController extends BaseController {
final session = _mailboxDashBoardController.sessionCurrent;
if (accountId != null) {
final arguments = DestinationPickerArguments(
accountId,
MailboxActions.select,
session,
mailboxIdSelected: searchController.searchEmailFilter.value.mailbox?.id);
accountId,
MailboxActions.select,
session,
mailboxIdSelected: searchController.searchEmailFilter.value.mailbox?.id);
if (PlatformInfo.isWeb) {
showDialogDestinationPicker(
context: context,
arguments: arguments,
onSelectedMailbox: (destinationMailbox) {
_destinationMailboxSelected = destinationMailbox;
final mailboxName = destinationMailbox.name?.name;
mailBoxFilterInputController.text = StringConvert.writeNullToEmpty(mailboxName);
});
} else {
final destinationMailbox = await push(
AppRoutes.destinationPicker,
arguments: arguments);
final destinationMailbox = PlatformInfo.isWeb
? await DialogRouter.pushGeneralDialog(routeName: AppRoutes.destinationPicker, arguments: arguments)
: await push(AppRoutes.destinationPicker, arguments: arguments);
if (destinationMailbox is PresentationMailbox) {
_destinationMailboxSelected = destinationMailbox;
final mailboxName = destinationMailbox.name?.name;
mailBoxFilterInputController.text = StringConvert.writeNullToEmpty(mailboxName);
}
if (destinationMailbox is PresentationMailbox) {
_destinationMailboxSelected = destinationMailbox;
final mailboxName = destinationMailbox.name?.name;
mailBoxFilterInputController.text = StringConvert.writeNullToEmpty(mailboxName);
}
}
}
@@ -120,6 +120,7 @@ import 'package:tmail_ui_user/features/thread/domain/usecases/move_multiple_emai
import 'package:tmail_ui_user/features/thread/presentation/model/delete_action_type.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/routes/app_routes.dart';
import 'package:tmail_ui_user/main/routes/dialog_router.dart';
import 'package:tmail_ui_user/main/routes/navigation_router.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
import 'package:tmail_ui_user/main/routes/route_utils.dart';
@@ -791,35 +792,22 @@ class MailboxDashBoardController extends ReloadableController {
sessionCurrent,
mailboxIdSelected: currentMailbox.mailboxId);
if (PlatformInfo.isWeb) {
showDialogDestinationPicker(
context: context,
arguments: arguments,
onSelectedMailbox: (destinationMailbox) {
if (sessionCurrent != null) {
_dispatchMoveToMultipleAction(
accountId.value!,
sessionCurrent!,
listEmails.listEmailIds,
currentMailbox,
destinationMailbox);
}
});
} else {
final destinationMailbox = await push(
AppRoutes.destinationPicker,
arguments: arguments);
final destinationMailbox = PlatformInfo.isWeb
? await DialogRouter.pushGeneralDialog(routeName: AppRoutes.destinationPicker, arguments: arguments)
: await push(AppRoutes.destinationPicker, arguments: arguments);
if (destinationMailbox != null &&
destinationMailbox is PresentationMailbox &&
sessionCurrent != null) {
_dispatchMoveToMultipleAction(
accountId.value!,
sessionCurrent!,
listEmails.listEmailIds,
currentMailbox,
destinationMailbox);
}
if (destinationMailbox != null &&
destinationMailbox is PresentationMailbox &&
sessionCurrent != null &&
accountId.value != null
) {
_dispatchMoveToMultipleAction(
accountId.value!,
sessionCurrent!,
listEmails.listEmailIds,
currentMailbox,
destinationMailbox
);
}
}
}