diff --git a/portal-ui/src/screens/LogoutPage/LogoutPage.tsx b/portal-ui/src/screens/LogoutPage/LogoutPage.tsx index 3c4d45cb9..4d3f8af3d 100644 --- a/portal-ui/src/screens/LogoutPage/LogoutPage.tsx +++ b/portal-ui/src/screens/LogoutPage/LogoutPage.tsx @@ -14,7 +14,7 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -import React from "react"; +import React, { useEffect } from "react"; import { useNavigate } from "react-router-dom"; import { useAppDispatch } from "../../store"; import { ErrorResponseHandler } from "../../common/types"; @@ -27,27 +27,29 @@ import LoadingComponent from "../../common/LoadingComponent"; const LogoutPage = () => { const dispatch = useAppDispatch(); const navigate = useNavigate(); - const logout = () => { - const deleteSession = () => { - clearSession(); - dispatch(userLogged(false)); - localStorage.setItem("userLoggedIn", ""); - localStorage.setItem("redirect-path", ""); - dispatch(resetSession()); - navigate(`/login`); + useEffect(() => { + const logout = () => { + const deleteSession = () => { + clearSession(); + dispatch(userLogged(false)); + localStorage.setItem("userLoggedIn", ""); + localStorage.setItem("redirect-path", ""); + dispatch(resetSession()); + navigate(`/login`); + }; + const state = localStorage.getItem("auth-state"); + api + .invoke("POST", `/api/v1/logout`, { state }) + .then(() => { + deleteSession(); + }) + .catch((err: ErrorResponseHandler) => { + console.log(err); + deleteSession(); + }); }; - const state = localStorage.getItem("auth-state"); - api - .invoke("POST", `/api/v1/logout`, { state }) - .then(() => { - deleteSession(); - }) - .catch((err: ErrorResponseHandler) => { - console.log(err); - deleteSession(); - }); - }; - logout(); + logout(); + }, [dispatch, navigate]); return ; };