From 4403e2871d6486e693b6c4052df92b7634eadb25 Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 20 Jul 2023 16:02:52 +0700 Subject: [PATCH] TF-2046 Use `controller` cached in GetWidget instead of using Get.find() --- .../login/presentation/base_login_view.dart | 19 +++++++++--------- .../login/presentation/login_view.dart | 20 +++++++++---------- .../login/presentation/login_view_web.dart | 8 ++++---- 3 files changed, 23 insertions(+), 24 deletions(-) diff --git a/lib/features/login/presentation/base_login_view.dart b/lib/features/login/presentation/base_login_view.dart index a8344e8a62..9d3851ff42 100644 --- a/lib/features/login/presentation/base_login_view.dart +++ b/lib/features/login/presentation/base_login_view.dart @@ -27,7 +27,6 @@ import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; abstract class BaseLoginView extends GetWidget { BaseLoginView({Key? key}) : super(key: key); - final loginController = Get.find(); final responsiveUtils = Get.find(); final imagePaths = Get.find(); @@ -58,9 +57,9 @@ abstract class BaseLoginView extends GetWidget { } }, (success) { - if (loginController.loginFormType.value == LoginFormType.credentialForm) { + if (controller.loginFormType.value == LoginFormType.credentialForm) { return AppLocalizations.of(context).loginInputCredentialMessage; - } else if (loginController.loginFormType.value == LoginFormType.ssoForm) { + } else if (controller.loginFormType.value == LoginFormType.ssoForm) { return AppLocalizations.of(context).loginInputSSOMessage; } return AppLocalizations.of(context).loginInputUrlMessage; @@ -107,7 +106,7 @@ abstract class BaseLoginView extends GetWidget { side: const BorderSide(width: 0, color: AppColor.primaryColor) )) ), - onPressed: loginController.handleLoginPressed, + onPressed: controller.handleLoginPressed, child: Text( AppLocalizations.of(context).signIn, style: const TextStyle(fontSize: 16, color: Colors.white) @@ -132,8 +131,8 @@ abstract class BaseLoginView extends GetWidget { padding: const EdgeInsets.only(bottom: 24, right: 24, left: 24), child: TypeAheadFormFieldBuilder( key: const Key('login_username_input'), - controller: loginController.usernameInputController, - onTextChange: loginController.setUserNameText, + controller: controller.usernameInputController, + onTextChange: controller.setUserNameText, textInputAction: TextInputAction.next, autocorrect: false, autofillHints: const [AutofillHints.email], @@ -143,10 +142,10 @@ abstract class BaseLoginView extends GetWidget { ..setHintText(AppLocalizations.of(context).email)) .build(), debounceDuration: const Duration(milliseconds: 300), - suggestionsCallback: loginController.getAllRecentLoginUsernameAction, + suggestionsCallback: controller.getAllRecentLoginUsernameAction, itemBuilder: (context, loginUsername) => RecentItemTileWidget(loginUsername, imagePath: imagePaths), onSuggestionSelected: (recentUsername) { - loginController.setUsername(recentUsername.username); + controller.setUsername(recentUsername.username); passFocusNode.requestFocus(); }, suggestionsBoxDecoration: const SuggestionsBoxDecoration(borderRadius: BorderRadius.all(Radius.circular(14))), @@ -168,11 +167,11 @@ abstract class BaseLoginView extends GetWidget { autocorrect: false, autofillHints: [AutofillHints.password] ) - ..setOnSubmitted((value) => loginController.handleLoginPressed()) + ..setOnSubmitted((value) => controller.handleLoginPressed()) ..passwordInput(true) ..key(const Key('login_password_input')) ..obscureText(true) - ..onChange(loginController.setPasswordText) + ..onChange(controller.setPasswordText) ..textInputAction(TextInputAction.done) ..hintText(AppLocalizations.of(context).password) ..setFocusNode(passFocusNode)) diff --git a/lib/features/login/presentation/login_view.dart b/lib/features/login/presentation/login_view.dart index 39a9f38416..983b7c19bd 100644 --- a/lib/features/login/presentation/login_view.dart +++ b/lib/features/login/presentation/login_view.dart @@ -32,8 +32,8 @@ class LoginView extends BaseLoginView { scrollDirection: Axis.vertical, child: _buildCenterForm(context))), Obx(() { - if (loginController.loginFormType.value == LoginFormType.credentialForm - || loginController.loginFormType.value == LoginFormType.ssoForm) { + if (controller.loginFormType.value == LoginFormType.credentialForm + || controller.loginFormType.value == LoginFormType.ssoForm) { return _buildBackButton(context); } return const SizedBox.shrink(); @@ -42,8 +42,8 @@ class LoginView extends BaseLoginView { : Stack(children: [ _buildCenterForm(context), Obx(() { - if (loginController.loginFormType.value == LoginFormType.credentialForm - || loginController.loginFormType.value == LoginFormType.ssoForm) { + if (controller.loginFormType.value == LoginFormType.credentialForm + || controller.loginFormType.value == LoginFormType.ssoForm) { return _buildBackButton(context); } return const SizedBox.shrink(); @@ -72,7 +72,7 @@ class LoginView extends BaseLoginView { style: const TextStyle(fontSize: 32, color: AppColor.colorNameEmail, fontWeight: FontWeight.w900) ) ), - Obx(() => buildLoginMessage(context, loginController.viewState.value)), + Obx(() => buildLoginMessage(context, controller.viewState.value)), Obx(() { switch (controller.loginFormType.value) { case LoginFormType.baseUrlForm: @@ -114,7 +114,7 @@ class LoginView extends BaseLoginView { return Padding( padding: const EdgeInsets.only(right: 24, left: 24, bottom: 24), child: TypeAheadFormFieldBuilder( - controller: loginController.urlInputController, + controller: controller.urlInputController, textInputAction: TextInputAction.next, keyboardType: TextInputType.url, onTextSubmitted: (value) => controller.handleNextInUrlInputFormPress(), @@ -124,8 +124,8 @@ class LoginView extends BaseLoginView { .build(), debounceDuration: const Duration(milliseconds: 300), suggestionsCallback: (pattern) async { - loginController.formatUrl(pattern); - return loginController.getAllRecentLoginUrlAction(pattern); + controller.formatUrl(pattern); + return controller.getAllRecentLoginUrlAction(pattern); }, itemBuilder: (context, loginUrl) => RecentItemTileWidget(loginUrl, imagePath: imagePaths), onSuggestionSelected: (loginUrl) => controller.formatUrl(loginUrl.url), @@ -165,7 +165,7 @@ class LoginView extends BaseLoginView { style: const TextStyle(fontSize: 16, color: Colors.white) ), onPressed: () { - loginController.handleNextInUrlInputFormPress(); + controller.handleNextInUrlInputFormPress(); } ) ); @@ -188,7 +188,7 @@ class LoginView extends BaseLoginView { } Widget _buildLoadingProgress(BuildContext context) { - return Obx(() => loginController.viewState.value.fold( + return Obx(() => controller.viewState.value.fold( (failure) { switch (controller.loginFormType.value) { case LoginFormType.baseUrlForm: diff --git a/lib/features/login/presentation/login_view_web.dart b/lib/features/login/presentation/login_view_web.dart index 55cd1decee..25f8767dce 100644 --- a/lib/features/login/presentation/login_view_web.dart +++ b/lib/features/login/presentation/login_view_web.dart @@ -47,7 +47,7 @@ class LoginView extends BaseLoginView { style: const TextStyle(fontSize: 32, color: AppColor.colorNameEmail, fontWeight: FontWeight.w900) ) ), - Obx(() => buildLoginMessage(context, loginController.viewState.value)), + Obx(() => buildLoginMessage(context, controller.viewState.value)), Obx(() { switch (controller.loginFormType.value) { case LoginFormType.credentialForm: @@ -179,7 +179,7 @@ class LoginView extends BaseLoginView { style: const TextStyle(fontSize: 32, color: AppColor.colorNameEmail, fontWeight: FontWeight.w900) ) ), - Obx(() => buildLoginMessage(context, loginController.viewState.value)), + Obx(() => buildLoginMessage(context, controller.viewState.value)), Obx(() { switch (controller.loginFormType.value) { case LoginFormType.credentialForm: @@ -251,14 +251,14 @@ class LoginView extends BaseLoginView { style: const TextStyle(fontSize: 16, color: Colors.white) ), onPressed: () { - loginController.handleSSOPressed(); + controller.handleSSOPressed(); } ) ); } Widget _buildLoadingProgress(BuildContext context) { - return Obx(() => loginController.viewState.value.fold( + return Obx(() => controller.viewState.value.fold( (failure) { switch (controller.loginFormType.value) { case LoginFormType.baseUrlForm: