diff --git a/src/features/auth/authSlice.js b/src/features/auth/authSlice.js index e1d61a3..e1871d3 100644 --- a/src/features/auth/authSlice.js +++ b/src/features/auth/authSlice.js @@ -2,7 +2,7 @@ import { createSlice } from '@reduxjs/toolkit'; import Cookies from 'js-cookie'; const initialState = { - isAuthenticated: Cookies.get('authorized') == "true" ? true : false, + isAuthenticated: Cookies.get('authorized') === "true" ? true : false, }; export const authSlice = createSlice({ diff --git a/src/screens/HomeScreen.js b/src/screens/HomeScreen.js index cafed57..161f1fa 100644 --- a/src/screens/HomeScreen.js +++ b/src/screens/HomeScreen.js @@ -35,6 +35,12 @@ function QRCode() { function Home() { const history = useHistory(); + const dispatch = useDispatch(); + + const handleLogout = () => { + dispatch(authLogout()); + history.push("/login"); + } const isAuthenticated = useSelector(state => state.auth.isAuthenticated); if (!isAuthenticated) return ; @@ -59,7 +65,9 @@ function Home() { contact, or allow them to create an account! - + + + ); diff --git a/src/screens/LoginScreen.js b/src/screens/LoginScreen.js index ed2f428..86f2273 100644 --- a/src/screens/LoginScreen.js +++ b/src/screens/LoginScreen.js @@ -17,6 +17,13 @@ function Login() { if (isAuthenticated) return ; const handleTelegramResponse = (response) => { + toast({ + title: "Logging you in", + description: "Hold on, we're logging you in.", + status: 'info', + duration: 10000, + isClosable: false + }); axios .post( `${process.env.REACT_APP_API_URL}/login`, @@ -37,6 +44,7 @@ function Login() { history.push('/home'); } } else { + toast.closeAll(); dispatch(authLogout()); toast({ title: 'An error occurred', @@ -48,6 +56,7 @@ function Login() { } }) .catch(err => { + toast.closeAll(); if(err.response){ if(err.response.status === 401){ dispatch(authLogout()); diff --git a/src/screens/ScannerScreen.js b/src/screens/ScannerScreen.js index 08641af..105e92d 100644 --- a/src/screens/ScannerScreen.js +++ b/src/screens/ScannerScreen.js @@ -30,6 +30,13 @@ function Scanner() { const re = /verify\/.*$/; const hash = re.exec(scanData); if (hash) { + toast({ + title: "Checking QR code.", + description: "Hold on, we're checking this QR code.", + status: 'info', + duration: 10000, + isClosable: false + }); axios .post( `${process.env.REACT_APP_API_URL}/verify`, @@ -41,6 +48,7 @@ function Scanner() { .then(res => { if (res.data.success) { if (res.data.loggedIn) { + toast.closeAll(); toast({ title: 'Contact Succesfully Logged', status: 'info', @@ -54,12 +62,21 @@ function Scanner() { } }) .catch(e => { + toast.closeAll(); toast({ title: 'Bad Verification', status: 'error', duration: 2000, }); }); + }else{ + toast.closeAll(); + toast({ + title: "Bad QR code", + status: 'error', + duration: 3000, + isClosable: true + }); } } }, [scanData, dispatch, history, toast]);