From 40d6f5ec2ffee07970b00ec613ef85ecb5101e65 Mon Sep 17 00:00:00 2001 From: sindhu Date: Thu, 29 Aug 2024 11:05:18 +0700 Subject: [PATCH] step 18 : perbaikan login pada useeffect dan logout pada mutation --- lib/repository/auth_repository.dart | 2 +- lib/screen/login/login_screen.dart | 45 +++++++++++++++++++++++++++-- 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/lib/repository/auth_repository.dart b/lib/repository/auth_repository.dart index baf96e7..ffc4ed7 100644 --- a/lib/repository/auth_repository.dart +++ b/lib/repository/auth_repository.dart @@ -36,7 +36,7 @@ class AuthRepository extends BaseRepository { Future logout( String email, String idGoogleSignIn) async { const String query = - r'''mutation($emailParam:String!, $id_google_sign_in_Param:String!){ logoutAttendance(email:$emailParam, id_google_sign_in:$id_google_sign_in_Param){ staff_id nip name email phone_number token id_google_sign_in company_id company_name } }'''; + r'''mutation($emailParam:String!, $id_google_sign_in_Param:String!){ logoutAttendance(email:$emailParam, id_google_sign_in:$id_google_sign_in_Param){ status message } }'''; Map inpVariables = { "emailParam": email, diff --git a/lib/screen/login/login_screen.dart b/lib/screen/login/login_screen.dart index 1f574f3..4133fbb 100644 --- a/lib/screen/login/login_screen.dart +++ b/lib/screen/login/login_screen.dart @@ -55,12 +55,51 @@ class LoginScreen extends HookConsumerWidget { ), ); - if (xmodel != null) { + // NEW + // if (xmodel != null) { + // ref.read(loginProvider.notifier).login( + // authModel.model.email ?? "", + // authModel.model.idGoogleSignIn ?? "", + // ); + // } + + // OLD + await googleSignIn.signInSilently(); + googleSignIn.onCurrentUserChanged.listen((account) { + // ref + // .read(currentUserGoogleProvider.notifier) + // .update((state) => account); + ref.read(currentUserProvider.notifier).state = authModel; + ref.read(currentPageProvider.state).update((state) => 0); + + if (account != null && + ref.read(currentUserProvider)?.model.staffId == "0") { + // Lakukan login + ref.read(loginProvider.notifier).login( + account.email, + account.id, + ); + } + }); + + // kalau sudah pernah login + if (googleSignIn.currentUser?.email != null) { + googleSignIn.signInSilently(); + // ref.read(currentUserGoogleProvider.notifier).update( + // (state) => googleSignIn.currentUser, + // ); ref.read(loginProvider.notifier).login( - authModel.model.email ?? "", - authModel.model.idGoogleSignIn ?? "", + googleSignIn.currentUser?.email ?? "", + googleSignIn.currentUser?.id ?? "", ); } + + // ref.read(currentUserProvider.notifier).state = authModel; + + // Navigator.of(context).pushNamedAndRemoveUntil( + // homeRoute, + // (route) => false, + // ); }); return () {}; }, []);