From cbc2b2c8629336cf68f70a11e196aeb3783fd628 Mon Sep 17 00:00:00 2001
From: Nareshkumar Rao <_accounts@nareshkumarrao.com>
Date: Thu, 5 Aug 2021 17:49:58 +0200
Subject: [PATCH] lockout updates
---
src/screens/HomeScreen.js | 9 ++++
src/screens/LockoutScreen.js | 87 ++++++++++++++++++++----------------
src/screens/ScannerScreen.js | 12 +++++
3 files changed, 69 insertions(+), 39 deletions(-)
diff --git a/src/screens/HomeScreen.js b/src/screens/HomeScreen.js
index 30d948c..2d29f4a 100644
--- a/src/screens/HomeScreen.js
+++ b/src/screens/HomeScreen.js
@@ -146,6 +146,15 @@ function Home() {
const isAuthenticated = useSelector(state => state.auth.isAuthenticated);
const isCovidPositive = useSelector(state => state.covid.isCovidPositive);
+ useEffect( ()=>{
+ axios.post(`${process.env.REACT_APP_API_URL}/covid`,{},{withCredentials:true})
+ .then(res=>{
+ if(res.data.covidPositive){
+ dispatch(setCovidPositive());
+ }
+ })
+ .catch(err=>{});
+}, [dispatch]);
if (!isAuthenticated) return ;
if (isCovidPositive) return ;
diff --git a/src/screens/LockoutScreen.js b/src/screens/LockoutScreen.js
index 30e6013..73820da 100644
--- a/src/screens/LockoutScreen.js
+++ b/src/screens/LockoutScreen.js
@@ -2,51 +2,60 @@ import { Flex, Heading, Text } from "@chakra-ui/react";
import axios from "axios";
import { useEffect } from "react";
import { useDispatch, useSelector } from "react-redux";
-import { Redirect } from "react-router-dom";
-import { setCovidPositive } from "../features/auth/covidSlice";
+import { Redirect, useHistory } from "react-router-dom";
+import { authLogout } from "../features/auth/authSlice";
+import { setCovidNegative, setCovidPositive } from "../features/auth/covidSlice";
-function Lockout(){
- const isAuthenticated = useSelector(state => state.auth.isAuthenticated);
- const isCovidPositive = useSelector(state => state.covid.isCovidPositive);
- const dispatch = useDispatch();
+function Lockout() {
+ const isAuthenticated = useSelector(state => state.auth.isAuthenticated);
+ const isCovidPositive = useSelector(state => state.covid.isCovidPositive);
+ const dispatch = useDispatch();
+ const history = useHistory();
- useEffect( ()=>{
+ useEffect(() => {
+ axios.post(`${process.env.REACT_APP_API_URL}/covid`, {}, { withCredentials: true })
+ .then(res => {
+ if (res.data.covidPositive) {
+ dispatch(setCovidPositive());
+ } else if (res.data.covidPositive === false) {
+ dispatch(setCovidNegative());
+ }
+ })
+ .catch(err => {
+ try {
+ if (err.response.status === 401) {
+ dispatch(authLogout());
+ history.push("/login");
+ }
+ }
+ catch (e) { }
+ });
- axios.post(`${process.env.REACT_APP_API_URL}/covid`,{},{withCredentials:true})
- .then(res=>{
- if(res.body.positivity){
- dispatch(setCovidPositive());
- }
- })
- .catch(err=>{
+ }, [dispatch, history]);
- });
-
- }, [dispatch]);
+ if (!isAuthenticated) return ;
+ if (!isCovidPositive) return ;
- if (!isAuthenticated) return ;
- if (!isCovidPositive) return ;
-
- return (
-
-
- Lockout
-
- You have reported that you have been tested POSITIVE with COVID19.
- This lockout is to remind you to quarantine yourself according to local
- COVID19 health policies. This lockout will automatically be lifted after
- 14 days.
-
- Please avoid contact with other people for the duration of this lockout!
-
-
+ return (
+
+
+ Lockout
+
+ You have reported that you have been tested POSITIVE with COVID19.
+ This lockout is to remind you to quarantine yourself according to local
+ COVID19 health policies. This lockout will automatically be lifted after
+ 14 days.
+
+ Please avoid contact with other people for the duration of this lockout!
+
- );
+
+ );
}
export default Lockout;
\ No newline at end of file
diff --git a/src/screens/ScannerScreen.js b/src/screens/ScannerScreen.js
index 1fb0a33..c18f16b 100644
--- a/src/screens/ScannerScreen.js
+++ b/src/screens/ScannerScreen.js
@@ -5,6 +5,7 @@ import QrReader from 'react-qr-reader';
import { useDispatch, useSelector } from 'react-redux';
import { Redirect, useHistory } from 'react-router-dom';
import { authLogout } from '../features/auth/authSlice';
+import { setCovidPositive } from '../features/auth/covidSlice';
function Scanner() {
const toast = useToast();
@@ -87,7 +88,18 @@ function Scanner() {
}, [scanData, dispatch, history, toast]);
const isAuthenticated = useSelector(state => state.auth.isAuthenticated);
+ const isCovidPositive = useSelector(state => state.covid.isCovidPositive);
+ useEffect( ()=>{
+ axios.post(`${process.env.REACT_APP_API_URL}/covid`,{},{withCredentials:true})
+ .then(res=>{
+ if(res.data.covidPositive){
+ dispatch(setCovidPositive());
+ }
+ })
+ .catch(err=>{});
+}, [dispatch]);
if (!isAuthenticated) return ;
+ if (isCovidPositive) return ;
return (