@@ -35,7 +35,7 @@ async function signInWithGoogle() {
3535 const result = await signInWithPopup (auth , new GoogleAuthProvider ());
3636 onSuccess (result .user );
3737 } catch (error : unknown ) {
38- handleError (error );
38+ handleError (error , true );
3939 } finally {
4040 loading .value = false ;
4141 }
@@ -48,7 +48,7 @@ async function signInWithGithub() {
4848 const result = await signInWithPopup (auth , new GithubAuthProvider ());
4949 onSuccess (result .user );
5050 } catch (error : unknown ) {
51- handleError (error );
51+ handleError (error , true );
5252 } finally {
5353 loading .value = false ;
5454 }
@@ -90,19 +90,30 @@ function onSuccess(user: unknown) {
9090 router .push ({ path: props .to });
9191}
9292
93- function handleError(error : unknown ) {
93+ function handleError(error : unknown , isSocial = false ) {
9494 const firebaseError = error as { code? : string ; message? : string };
9595 const code = firebaseError .code || " " ;
96+ let message = " " ;
9697 if (code === " auth/user-not-found" || code === " auth/invalid-credential" ) {
97- emailError . value = " Invalid email or password" ;
98+ message = " Invalid email or password" ;
9899 } else if (code === " auth/email-already-in-use" ) {
99- emailError . value = " An account with this email already exists" ;
100+ message = " An account with this email already exists" ;
100101 } else if (code === " auth/weak-password" ) {
101- emailError .value = " Password must be at least 6 characters" ;
102- } else if (code === " auth/popup-closed-by-user" ) {
103- // User closed popup, no error to show
102+ message = " Password must be at least 6 characters" ;
103+ } else if (
104+ code === " auth/popup-closed-by-user" ||
105+ code === " auth/cancelled-popup-request"
106+ ) {
107+ // User closed the popup, no error to show
108+ return ;
109+ } else {
110+ message = firebaseError .message || " An error occurred" ;
111+ }
112+
113+ if (isSocial ) {
114+ notificationsStore .addNotification ({ message , type: " error" });
104115 } else {
105- emailError .value = firebaseError . message || " An error occurred " ;
116+ emailError .value = message ;
106117 }
107118}
108119 </script >
0 commit comments