diff --git a/lib/features/thread_detail/presentation/extension/close_thread_detail_action.dart b/lib/features/thread_detail/presentation/extension/close_thread_detail_action.dart index 11d58f48d..2ea871e17 100644 --- a/lib/features/thread_detail/presentation/extension/close_thread_detail_action.dart +++ b/lib/features/thread_detail/presentation/extension/close_thread_detail_action.dart @@ -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(); } } \ No newline at end of file diff --git a/lib/features/thread_detail/presentation/extension/handle_mail_shortcut_actions_extension.dart b/lib/features/thread_detail/presentation/extension/handle_mail_shortcut_actions_extension.dart index 6b46759cb..9e213bdc3 100644 --- a/lib/features/thread_detail/presentation/extension/handle_mail_shortcut_actions_extension.dart +++ b/lib/features/thread_detail/presentation/extension/handle_mail_shortcut_actions_extension.dart @@ -56,6 +56,7 @@ extension HandleMailShortcutActionsExtension on ThreadDetailController { void onKeyboardShortcutDispose() { if (PlatformInfo.isWeb) { keyboardShortcutFocusNode?.dispose(); + keyboardShortcutFocusNode = null; shortcutActionEventSubscription?.cancel(); shortcutActionEventController?.close(); } diff --git a/lib/features/thread_detail/presentation/extension/thread_detail_on_selected_email_updated.dart b/lib/features/thread_detail/presentation/extension/thread_detail_on_selected_email_updated.dart index c4497b586..133436877 100644 --- a/lib/features/thread_detail/presentation/extension/thread_detail_on_selected_email_updated.dart +++ b/lib/features/thread_detail/presentation/extension/thread_detail_on_selected_email_updated.dart @@ -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) { diff --git a/lib/features/thread_detail/presentation/thread_detail_controller.dart b/lib/features/thread_detail/presentation/thread_detail_controller.dart index e3e53d7ef..9468fab0e 100644 --- a/lib/features/thread_detail/presentation/thread_detail_controller.dart +++ b/lib/features/thread_detail/presentation/thread_detail_controller.dart @@ -212,8 +212,6 @@ class ThreadDetailController extends BaseController { ); } }); - - onKeyboardShortcutInit(); } bool _validateLoadThread(ThreadId? threadId) {