@@ -42,13 +42,13 @@ axios.defaults.httpsAgent = new https.Agent({ axios.defaults.validateStatus = () => true axios.interceptors.response.use(async (response) => { - if (response.status !== 401) return response + if (![401, 404, 403].includes(response.status)) return response const session = await getSession() - console.log(session) - - if (!session) window.location.href = '/login' + if (!session) { + window.location.href = '/login' + } return response }) @@ -27,13 +27,7 @@ import { ErrorReportPlate } from '#/features/error-report' const freeRoutes = ['/login', '/register', '/reset', '/change-password'] -export const Layout: React.FC = ({ - children, - titlePage, - title = titlePage, - isLoader, - device = getDeviceType(), -}) => { +export const Layout: React.FC = ({ children, titlePage, title = titlePage, isLoader, device = getDeviceType() }) => { const { data: sessionData } = useSession() const appState = useAppSelector((state) => state) const dispatch = useAppDispatch() @@ -56,7 +50,7 @@ export const Layout: React.FC = ({ signOut() push('/login') } - + async function getUserData(access: string) { await dispatch(getUserBalance(access)) await dispatch(getAllInfo(access)) @@ -70,16 +64,19 @@ export const Layout: React.FC = ({ } }, [meStatus]) + useEffect(() => { + if (!data) return + + if (!data.user || Object.values(data.user).length === 0 || !data.access || !data.refresh) logout() + }, [data]) + useEffect(() => { if (!data) return getUserData(data.access) }, [data]) useEffect(() => { - if ( - (sessionData && !sessionStorage.getItem('firstRender')) || - (sessionData && !localStorage.getItem('global_settings')) - ) { + if ((sessionData && !sessionStorage.getItem('firstRender')) || (sessionData && !localStorage.getItem('global_settings'))) { dispatch(getUserAccountSettings(sessionData.access)) sessionStorage.setItem('firstRender', 'true') } @@ -104,22 +101,13 @@ export const Layout: React.FC = ({ targetDevice: device, targetType: 'sidemenu', }) - if (setting) - setting?.value?.sidemenu_state === 'opened' - ? setSidemenuDefaultOpen(true) - : setSidemenuDefaultOpen(false) + if (setting) setting?.value?.sidemenu_state === 'opened' ? setSidemenuDefaultOpen(true) : setSidemenuDefaultOpen(false) } }, [appState.settings.state]) if (userLoading || isLoader || status === 'loading') { return ( - + ) @@ -151,10 +139,7 @@ export const Layout: React.FC = ({ > {desktop ? ( - +