Handle keyboard shortcut FocusNode causing memory leak (#4158)
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import 'package:tmail_ui_user/features/email/presentation/action/email_ui_action.dart';
|
import 'package:tmail_ui_user/features/email/presentation/action/email_ui_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
|
||||||
|
import 'package:tmail_ui_user/features/thread_detail/presentation/extension/handle_mail_shortcut_actions_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/thread_detail/presentation/thread_detail_controller.dart';
|
import 'package:tmail_ui_user/features/thread_detail/presentation/thread_detail_controller.dart';
|
||||||
|
|
||||||
extension CloseThreadDetailAction on ThreadDetailController {
|
extension CloseThreadDetailAction on ThreadDetailController {
|
||||||
@@ -15,6 +16,8 @@ extension CloseThreadDetailAction on ThreadDetailController {
|
|||||||
mailboxDashBoardController.dispatchEmailUIAction(EmailUIAction());
|
mailboxDashBoardController.dispatchEmailUIAction(EmailUIAction());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
onKeyboardShortcutDispose();
|
||||||
|
|
||||||
reset();
|
reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
@@ -56,6 +56,7 @@ extension HandleMailShortcutActionsExtension on ThreadDetailController {
|
|||||||
void onKeyboardShortcutDispose() {
|
void onKeyboardShortcutDispose() {
|
||||||
if (PlatformInfo.isWeb) {
|
if (PlatformInfo.isWeb) {
|
||||||
keyboardShortcutFocusNode?.dispose();
|
keyboardShortcutFocusNode?.dispose();
|
||||||
|
keyboardShortcutFocusNode = null;
|
||||||
shortcutActionEventSubscription?.cancel();
|
shortcutActionEventSubscription?.cancel();
|
||||||
shortcutActionEventController?.close();
|
shortcutActionEventController?.close();
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -10,6 +10,7 @@ import 'package:tmail_ui_user/features/thread_detail/domain/state/get_emails_by_
|
|||||||
import 'package:tmail_ui_user/features/thread_detail/domain/state/get_thread_by_id_state.dart';
|
import 'package:tmail_ui_user/features/thread_detail/domain/state/get_thread_by_id_state.dart';
|
||||||
import 'package:tmail_ui_user/features/thread_detail/presentation/action/thread_detail_ui_action.dart';
|
import 'package:tmail_ui_user/features/thread_detail/presentation/action/thread_detail_ui_action.dart';
|
||||||
import 'package:tmail_ui_user/features/thread_detail/presentation/extension/close_thread_detail_action.dart';
|
import 'package:tmail_ui_user/features/thread_detail/presentation/extension/close_thread_detail_action.dart';
|
||||||
|
import 'package:tmail_ui_user/features/thread_detail/presentation/extension/handle_mail_shortcut_actions_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/thread_detail/presentation/thread_detail_controller.dart';
|
import 'package:tmail_ui_user/features/thread_detail/presentation/thread_detail_controller.dart';
|
||||||
|
|
||||||
extension ThreadDetailOnSelectedEmailUpdated on ThreadDetailController {
|
extension ThreadDetailOnSelectedEmailUpdated on ThreadDetailController {
|
||||||
@@ -23,6 +24,7 @@ extension ThreadDetailOnSelectedEmailUpdated on ThreadDetailController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
emailIdsPresentation.clear();
|
emailIdsPresentation.clear();
|
||||||
|
onKeyboardShortcutInit();
|
||||||
scrollController ??= ScrollController();
|
scrollController ??= ScrollController();
|
||||||
|
|
||||||
if (currentExpandedEmailId.value == null) {
|
if (currentExpandedEmailId.value == null) {
|
||||||
|
|||||||
@@ -212,8 +212,6 @@ class ThreadDetailController extends BaseController {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
onKeyboardShortcutInit();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool _validateLoadThread(ThreadId? threadId) {
|
bool _validateLoadThread(ThreadId? threadId) {
|
||||||
|
|||||||
Reference in New Issue
Block a user