()
| 4 | import { saveLanguageInLocal } from "../constant/Utils"; |
| 5 | import { useTranslation } from "react-i18next"; |
| 6 | const ValidateRoute = () => { |
| 7 | const { i18n } = useTranslation(); |
| 8 | useEffect(() => { |
| 9 | (async () => { |
| 10 | if (localStorage.getItem("accesstoken")) { |
| 11 | try { |
| 12 | // Use the session token to validate the user |
| 13 | const userQuery = new Parse.Query(Parse.User); |
| 14 | const user = await userQuery.get(Parse?.User?.current()?.id, { |
| 15 | sessionToken: localStorage.getItem("accesstoken") |
| 16 | }); |
| 17 | if (!user) { |
| 18 | handlelogout(); |
| 19 | } |
| 20 | } catch (error) { |
| 21 | console.log("err in validate route", error); |
| 22 | handlelogout(); |
| 23 | } |
| 24 | } |
| 25 | })(); |
| 26 | // eslint-disable-next-line react-hooks/exhaustive-deps |
| 27 | }, []); |
| 28 | const handlelogout = async () => { |
| 29 | let appdata = localStorage.getItem("userSettings"); |
| 30 | let applogo = localStorage.getItem("appLogo"); |
| 31 | let defaultmenuid = localStorage.getItem("defaultmenuid"); |
| 32 | let PageLanding = localStorage.getItem("PageLanding"); |
| 33 | let baseUrl = localStorage.getItem("baseUrl"); |
| 34 | let appid = localStorage.getItem("parseAppId"); |
| 35 | let favicon = localStorage.getItem("favicon"); |
| 36 | |
| 37 | localStorage.clear(); |
| 38 | saveLanguageInLocal(i18n); |
| 39 | |
| 40 | localStorage.setItem("appLogo", applogo); |
| 41 | localStorage.setItem("defaultmenuid", defaultmenuid); |
| 42 | localStorage.setItem("PageLanding", PageLanding); |
| 43 | localStorage.setItem("userSettings", appdata); |
| 44 | localStorage.setItem("baseUrl", baseUrl); |
| 45 | localStorage.setItem("parseAppId", appid); |
| 46 | localStorage.setItem("favicon", favicon); |
| 47 | }; |
| 48 | return <>{<Outlet />}</>; |
| 49 | }; |
| 50 | |
| 51 | export default ValidateRoute; |
nothing calls this directly
no test coverage detected