TF-624 Add loading widget when click single sign-on button
This commit is contained in:
@@ -129,4 +129,12 @@ abstract class BaseLoginView extends GetWidget<LoginController> {
|
|||||||
..hintText(AppLocalizations.of(context).password))
|
..hintText(AppLocalizations.of(context).password))
|
||||||
.build()));
|
.build()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget buildLoadingCircularProgress() {
|
||||||
|
return const SizedBox(
|
||||||
|
key: Key('login_loading_icon'),
|
||||||
|
width: 40,
|
||||||
|
height: 40,
|
||||||
|
child: CircularProgressIndicator(color: AppColor.primaryColor));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -85,19 +85,19 @@ class LoginView extends BaseLoginView {
|
|||||||
return Obx(() => loginController.loginState.value.viewState.fold(
|
return Obx(() => loginController.loginState.value.viewState.fold(
|
||||||
(failure) => _buildNextButtonInContext(context),
|
(failure) => _buildNextButtonInContext(context),
|
||||||
(success) => success is LoginLoadingAction
|
(success) => success is LoginLoadingAction
|
||||||
? _buildLoadingCircularProgress()
|
? buildLoadingCircularProgress()
|
||||||
: _buildNextButtonInContext(context)));
|
: _buildNextButtonInContext(context)));
|
||||||
case LoginFormType.credentialForm:
|
case LoginFormType.credentialForm:
|
||||||
return Obx(() => loginController.loginState.value.viewState.fold(
|
return Obx(() => loginController.loginState.value.viewState.fold(
|
||||||
(failure) => _buildLoginButtonInContext(context),
|
(failure) => _buildLoginButtonInContext(context),
|
||||||
(success) => success is LoginLoadingAction
|
(success) => success is LoginLoadingAction
|
||||||
? _buildLoadingCircularProgress()
|
? buildLoadingCircularProgress()
|
||||||
: _buildLoginButtonInContext(context)));
|
: _buildLoginButtonInContext(context)));
|
||||||
case LoginFormType.ssoForm:
|
case LoginFormType.ssoForm:
|
||||||
return Obx(() => loginController.loginState.value.viewState.fold(
|
return Obx(() => loginController.loginState.value.viewState.fold(
|
||||||
(failure) => _buildLoginButtonInContext(context),
|
(failure) => _buildLoginButtonInContext(context),
|
||||||
(success) => success is LoginLoadingAction
|
(success) => success is LoginLoadingAction
|
||||||
? _buildLoadingCircularProgress()
|
? buildLoadingCircularProgress()
|
||||||
: _buildLoginButtonInContext(context)));
|
: _buildLoginButtonInContext(context)));
|
||||||
default:
|
default:
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
@@ -189,14 +189,6 @@ class LoginView extends BaseLoginView {
|
|||||||
? buildLoginButton(context)
|
? buildLoginButton(context)
|
||||||
: _buildExpandedButton(context, buildLoginButton(context));
|
: _buildExpandedButton(context, buildLoginButton(context));
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildLoadingCircularProgress() {
|
|
||||||
return const SizedBox(
|
|
||||||
key: Key('login_loading_icon'),
|
|
||||||
width: 40,
|
|
||||||
height: 40,
|
|
||||||
child: CircularProgressIndicator(color: AppColor.primaryColor));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool _supportScrollForm(BuildContext context) {
|
bool _supportScrollForm(BuildContext context) {
|
||||||
return !(responsiveUtils.isMobile(context) && responsiveUtils.isPortrait(context));
|
return !(responsiveUtils.isMobile(context) && responsiveUtils.isPortrait(context));
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:get/get_state_manager/src/rx_flutter/rx_obx_widget.dart';
|
import 'package:get/get_state_manager/src/rx_flutter/rx_obx_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/login/presentation/base_login_view.dart';
|
import 'package:tmail_ui_user/features/login/presentation/base_login_view.dart';
|
||||||
|
import 'package:tmail_ui_user/features/login/presentation/state/login_state.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
|
|
||||||
class LoginView extends BaseLoginView {
|
class LoginView extends BaseLoginView {
|
||||||
@@ -47,7 +48,11 @@ class LoginView extends BaseLoginView {
|
|||||||
Obx(() => buildLoginMessage(context, loginController.loginState.value)),
|
Obx(() => buildLoginMessage(context, loginController.loginState.value)),
|
||||||
buildInputCredentialForm(context),
|
buildInputCredentialForm(context),
|
||||||
buildLoginButton(context),
|
buildLoginButton(context),
|
||||||
buildSSOButton(context),
|
Obx(() => loginController.loginState.value.viewState.fold(
|
||||||
|
(failure) => _buildSSOButton(context),
|
||||||
|
(success) => success is LoginLoadingAction
|
||||||
|
? buildLoadingCircularProgress()
|
||||||
|
: _buildSSOButton(context))),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@@ -163,7 +168,11 @@ class LoginView extends BaseLoginView {
|
|||||||
Obx(() => buildLoginMessage(context, loginController.loginState.value)),
|
Obx(() => buildLoginMessage(context, loginController.loginState.value)),
|
||||||
buildInputCredentialForm(context),
|
buildInputCredentialForm(context),
|
||||||
buildLoginButton(context),
|
buildLoginButton(context),
|
||||||
buildSSOButton(context),
|
Obx(() => loginController.loginState.value.viewState.fold(
|
||||||
|
(failure) => _buildSSOButton(context),
|
||||||
|
(success) => success is LoginLoadingAction
|
||||||
|
? buildLoadingCircularProgress()
|
||||||
|
: _buildSSOButton(context))),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -201,7 +210,7 @@ class LoginView extends BaseLoginView {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget buildSSOButton(BuildContext context) {
|
Widget _buildSSOButton(BuildContext context) {
|
||||||
return Container(
|
return Container(
|
||||||
margin: const EdgeInsets.only(bottom: 16, left: 24, right: 24),
|
margin: const EdgeInsets.only(bottom: 16, left: 24, right: 24),
|
||||||
width: responsiveUtils.getDeviceWidth(context),height: 48,
|
width: responsiveUtils.getDeviceWidth(context),height: 48,
|
||||||
|
|||||||
Reference in New Issue
Block a user