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/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';
|
||||
|
||||
extension CloseThreadDetailAction on ThreadDetailController {
|
||||
@@ -15,6 +16,8 @@ extension CloseThreadDetailAction on ThreadDetailController {
|
||||
mailboxDashBoardController.dispatchEmailUIAction(EmailUIAction());
|
||||
});
|
||||
|
||||
onKeyboardShortcutDispose();
|
||||
|
||||
reset();
|
||||
}
|
||||
}
|
||||
+1
@@ -56,6 +56,7 @@ extension HandleMailShortcutActionsExtension on ThreadDetailController {
|
||||
void onKeyboardShortcutDispose() {
|
||||
if (PlatformInfo.isWeb) {
|
||||
keyboardShortcutFocusNode?.dispose();
|
||||
keyboardShortcutFocusNode = null;
|
||||
shortcutActionEventSubscription?.cancel();
|
||||
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/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/handle_mail_shortcut_actions_extension.dart';
|
||||
import 'package:tmail_ui_user/features/thread_detail/presentation/thread_detail_controller.dart';
|
||||
|
||||
extension ThreadDetailOnSelectedEmailUpdated on ThreadDetailController {
|
||||
@@ -23,6 +24,7 @@ extension ThreadDetailOnSelectedEmailUpdated on ThreadDetailController {
|
||||
}
|
||||
|
||||
emailIdsPresentation.clear();
|
||||
onKeyboardShortcutInit();
|
||||
scrollController ??= ScrollController();
|
||||
|
||||
if (currentExpandedEmailId.value == null) {
|
||||
|
||||
@@ -212,8 +212,6 @@ class ThreadDetailController extends BaseController {
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
onKeyboardShortcutInit();
|
||||
}
|
||||
|
||||
bool _validateLoadThread(ThreadId? threadId) {
|
||||
|
||||
Reference in New Issue
Block a user