diff --git a/src/App.js b/src/App.js index d408765..2083f8e 100644 --- a/src/App.js +++ b/src/App.js @@ -6,6 +6,7 @@ import Login from './screens/LoginScreen'; import Create from './screens/CreateScreen'; import Success from './screens/SuccessScreen'; import './App.css'; +import Verify from './screens/VerifyScreen'; function App() { return ( @@ -23,6 +24,7 @@ function App() { + diff --git a/src/screens/HomeScreen.js b/src/screens/HomeScreen.js index 53912b2..df420f3 100644 --- a/src/screens/HomeScreen.js +++ b/src/screens/HomeScreen.js @@ -22,7 +22,7 @@ function QRCode() { dispatch(authLogout()); } }); - }, []); + }, [dispatch]); if (url) { return ; diff --git a/src/screens/VerifyScreen.js b/src/screens/VerifyScreen.js new file mode 100644 index 0000000..199a2de --- /dev/null +++ b/src/screens/VerifyScreen.js @@ -0,0 +1,55 @@ +import { Flex, Text } from '@chakra-ui/react'; +import axios from 'axios'; +import { useEffect, useState } from "react"; +import { useHistory } from "react-router-dom"; + +function Verify(props) { + const verifyID = props.match.params.id; + const [verifyError, setVerifyError] = useState(false); + const history = useHistory(); + + useEffect(() => { + if(verifyError) return; + axios + .post(`${process.env.REACT_APP_API_URL}/verify`, + { + id: verifyID, + }, + { withCredentials: true }, + ) + .then(response => { + if (response.data.success) { + if (response.data.loggedIn) { + history.push("/success"); + } else { + history.push("/create"); + } + } + }) + .catch(err => { + setVerifyError(true); + }); + }, [verifyError, history, verifyID]); + + const errorMessage = ( + An error has occured verifying you. Please try scanning the QR code again? + ); + const loadingMessage = ( + We are currently verifying you. Please wait. + ); + + return ( + + + {verifyError ? errorMessage : loadingMessage} + + + ); +} + +export default Verify; \ No newline at end of file