From acfd76687537e81d1865f2c153d8d5324649ea4f Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 20 Jul 2023 16:05:14 +0700 Subject: [PATCH] TF-2046 Move `passFocusNode` to controller to dispose it when view disposed --- lib/features/login/presentation/base_login_view.dart | 6 ++---- lib/features/login/presentation/login_controller.dart | 2 ++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/features/login/presentation/base_login_view.dart b/lib/features/login/presentation/base_login_view.dart index 9d3851ff42..e34feda7ef 100644 --- a/lib/features/login/presentation/base_login_view.dart +++ b/lib/features/login/presentation/base_login_view.dart @@ -30,8 +30,6 @@ abstract class BaseLoginView extends GetWidget { final responsiveUtils = Get.find(); final imagePaths = Get.find(); - final FocusNode passFocusNode = FocusNode(); - Widget buildLoginMessage(BuildContext context, Either viewState) { return Padding( padding: const EdgeInsets.only(top: 11, bottom: 36, left: 58, right: 58), @@ -146,7 +144,7 @@ abstract class BaseLoginView extends GetWidget { itemBuilder: (context, loginUsername) => RecentItemTileWidget(loginUsername, imagePath: imagePaths), onSuggestionSelected: (recentUsername) { controller.setUsername(recentUsername.username); - passFocusNode.requestFocus(); + controller.passFocusNode.requestFocus(); }, suggestionsBoxDecoration: const SuggestionsBoxDecoration(borderRadius: BorderRadius.all(Radius.circular(14))), noItemsFoundBuilder: (context) => const SizedBox(), @@ -174,7 +172,7 @@ abstract class BaseLoginView extends GetWidget { ..onChange(controller.setPasswordText) ..textInputAction(TextInputAction.done) ..hintText(AppLocalizations.of(context).password) - ..setFocusNode(passFocusNode)) + ..setFocusNode(controller.passFocusNode)) .build())); } diff --git a/lib/features/login/presentation/login_controller.dart b/lib/features/login/presentation/login_controller.dart index 747e665513..069424142b 100644 --- a/lib/features/login/presentation/login_controller.dart +++ b/lib/features/login/presentation/login_controller.dart @@ -70,6 +70,7 @@ class LoginController extends BaseController { final TextEditingController urlInputController = TextEditingController(); final TextEditingController usernameInputController = TextEditingController(); + final FocusNode passFocusNode = FocusNode(); LoginController( this._authenticationInteractor, @@ -378,6 +379,7 @@ class LoginController extends BaseController { @override void onClose() { + passFocusNode.dispose(); urlInputController.dispose(); usernameInputController.dispose(); super.onClose();