aboutsummaryrefslogtreecommitdiff
path: root/lib/screens/login_screen.dart
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2023-05-28 23:27:46 -0600
committerIván Ávalos <avalos@disroot.org>2023-05-28 23:27:46 -0600
commit55ec472797581a02ac433e5a9e08d560dcba6a13 (patch)
tree0abb2ff303b8c5087d66611bff025e477862f93a /lib/screens/login_screen.dart
parent4874a3073450c0dfcb1c443342bcae78728a471b (diff)
downloadlinkchat-main.tar.gz
linkchat-main.tar.bz2
linkchat-main.zip
Sustitución de setState() por ValueNotifiermain
Diffstat (limited to 'lib/screens/login_screen.dart')
-rw-r--r--lib/screens/login_screen.dart32
1 files changed, 12 insertions, 20 deletions
diff --git a/lib/screens/login_screen.dart b/lib/screens/login_screen.dart
index c98a565..964c28b 100644
--- a/lib/screens/login_screen.dart
+++ b/lib/screens/login_screen.dart
@@ -20,7 +20,7 @@ class _LoginScreenState extends State<LoginScreen>
final Auth _auth = Auth();
- bool isLoading = false;
+ final ValueNotifier<bool> _loadingNotifier = ValueNotifier<bool>(false);
bool isInit = false;
final padding = 16.0;
@@ -110,18 +110,14 @@ class _LoginScreenState extends State<LoginScreen>
);
void onLoginClicked(BuildContext context) {
- setState(() {
- isLoading = true;
- });
+ _loadingNotifier.value = true;
_auth
.signInWithEmailAndPassword(
email: _emailController.text,
password: _passwordController.text,
)
.then((result) {
- setState(() {
- isLoading = false;
- });
+ _loadingNotifier.value = false;
result.fold(
(user) {
if (user != null && user.emailVerified == false) {
@@ -141,13 +137,9 @@ class _LoginScreenState extends State<LoginScreen>
}
void onGoogleLoginClicked(BuildContext context) {
- setState(() {
- isLoading = true;
- });
+ _loadingNotifier.value = true;
_auth.signInWithGoogle().then((result) {
- setState(() {
- isLoading = false;
- });
+ _loadingNotifier.value = false;
result.fold(
(user) {},
(error) => handleError(error),
@@ -156,13 +148,9 @@ class _LoginScreenState extends State<LoginScreen>
}
void onGithubLoginClicked(BuildContext context) {
- setState(() {
- isLoading = true;
- });
+ _loadingNotifier.value = true;
_auth.signInWithGithub().then((result) {
- setState(() {
- isLoading = false;
- });
+ _loadingNotifier.value = false;
result.fold(
(user) {},
(error) => handleError(error),
@@ -208,7 +196,11 @@ class _LoginScreenState extends State<LoginScreen>
),
),
),
- isLoading ? const LoadingModal() : const SizedBox.shrink(),
+ ValueListenableBuilder(
+ valueListenable: _loadingNotifier,
+ builder: (context, value, child) =>
+ value ? const LoadingModal() : const SizedBox.shrink(),
+ ),
],
),
);