feat: show an alert when connection with whatsapp brokes

This commit is contained in:
canove
2020-10-27 19:59:38 -03:00
parent 79e27b71cc
commit 4e259a3de7
13 changed files with 360 additions and 296 deletions

View File

@@ -11,6 +11,48 @@ const useAuth = () => {
const [isAuth, setIsAuth] = useState(false);
const [loading, setLoading] = useState(true);
api.interceptors.request.use(
config => {
const token = localStorage.getItem("token");
if (token) {
config.headers["Authorization"] = `Bearer ${JSON.parse(token)}`;
setIsAuth(true);
}
return config;
},
error => {
Promise.reject(error);
}
);
api.interceptors.response.use(
response => {
return response;
},
async error => {
const originalRequest = error.config;
if (error?.response?.status === 403 && !originalRequest._retry) {
originalRequest._retry = true;
const { data } = await api.post("/auth/refresh_token");
if (data) {
localStorage.setItem("token", JSON.stringify(data.token));
api.defaults.headers.Authorization = `Bearer ${data.token}`;
}
return api(originalRequest);
}
if (error?.response?.status === 401) {
localStorage.removeItem("token");
localStorage.removeItem("username");
localStorage.removeItem("profile");
localStorage.removeItem("userId");
api.defaults.headers.Authorization = undefined;
setIsAuth(false);
}
return Promise.reject(error);
}
);
useEffect(() => {
const token = localStorage.getItem("token");
if (token) {
@@ -18,48 +60,6 @@ const useAuth = () => {
setIsAuth(true);
}
setLoading(false);
api.interceptors.request.use(
config => {
const token = localStorage.getItem("token");
if (token) {
config.headers["Authorization"] = `Bearer ${JSON.parse(token)}`;
setIsAuth(true);
}
return config;
},
error => {
Promise.reject(error);
}
);
api.interceptors.response.use(
response => {
return response;
},
async error => {
const originalRequest = error.config;
if (error?.response?.status === 403 && !originalRequest._retry) {
originalRequest._retry = true;
const { data } = await api.post("/auth/refresh_token");
if (data) {
localStorage.setItem("token", JSON.stringify(data.token));
api.defaults.headers.Authorization = `Bearer ${data.token}`;
}
return api(originalRequest);
}
if (error?.response?.status === 401) {
localStorage.removeItem("token");
localStorage.removeItem("username");
localStorage.removeItem("profile");
localStorage.removeItem("userId");
api.defaults.headers.Authorization = undefined;
setIsAuth(false);
}
return Promise.reject(error);
}
);
}, []);
const handleLogin = async (e, user) => {
@@ -106,7 +106,7 @@ const useAuth = () => {
history.push("/login");
};
return { isAuth, loading, handleLogin, handleLogout };
return { isAuth, setIsAuth, loading, handleLogin, handleLogout };
};
export default useAuth;