diff --git a/src/api.js b/src/api.js index ac4b3b5..dc84799 100644 --- a/src/api.js +++ b/src/api.js @@ -338,7 +338,7 @@ export const useGetPendingPointsRange = (dbTable) => { const rangesArr = RANGE_FILTERS_KEYS.map((key) => { if ((/d[0-9]/.test(key))) return; return { - [key]: [Math.floor(data[key][0]), Math.min(Math.ceil(data[key][1]), 4000)] + [key]: [Math.floor(data[key][0]), Math.ceil(data[key][1])] } }).filter(item => !!item); const ranges = Object.assign({}, ...rangesArr); diff --git a/src/modules/ImportMode/PointsFileUploadModal.jsx b/src/modules/ImportMode/PointsFileUploadModal.jsx index e212ed4..fab7424 100644 --- a/src/modules/ImportMode/PointsFileUploadModal.jsx +++ b/src/modules/ImportMode/PointsFileUploadModal.jsx @@ -26,9 +26,10 @@ export const PointsFileUploadModal = ({onClose, isOpened}) => { const myInterval = setInterval(async () => { const response = await getImportStatus(); setImportStatus(response.task_status); - if (response.task_status === "Перерасчет ML завершен") { + if (response.task_status === "Перерасчет ML завершен" || !isOpened) { setReport(response.data); setIsImporting(false); + toggleUpdateCounter(); clearInterval(myInterval); } }, 2000); diff --git a/src/modules/Sidebar/PendingPointsFilters/PendingPointsFilters.jsx b/src/modules/Sidebar/PendingPointsFilters/PendingPointsFilters.jsx index d800891..4150c80 100644 --- a/src/modules/Sidebar/PendingPointsFilters/PendingPointsFilters.jsx +++ b/src/modules/Sidebar/PendingPointsFilters/PendingPointsFilters.jsx @@ -32,8 +32,8 @@ export const PendingPointsFilters = () => { setFilterWithKey(newRanges[key], key); return; } - const gtChanged = ranges[key][0] !== newRanges[key][0]; - const ltChanged = ranges[key][1] !== newRanges[key][1]; + const gtChanged = ranges[key] && newRanges[key] && ranges[key][0] !== newRanges[key][0]; + const ltChanged = ranges[key] && newRanges[key] && ranges[key][1] !== newRanges[key][1]; if (gtChanged || ltChanged) setFilterWithKey(newRanges[key], key); }); diff --git a/src/pages/Login.jsx b/src/pages/Login.jsx index e1468db..633142c 100644 --- a/src/pages/Login.jsx +++ b/src/pages/Login.jsx @@ -3,9 +3,8 @@ import { Alert, Button, Form, Input, Space, Typography } from "antd"; import { LockOutlined, UserOutlined } from "@ant-design/icons"; import React from "react"; import { Navigate } from "react-router-dom"; -import { isAuthorized$, refreshToken } from "../stores/auth"; +import { isAuthorized$, refreshTokenIntervalFunction, setAuthLocalStorage } from "../stores/auth"; import { signin, signinError$, signinLoading$ } from "../stores/signin"; -import { logOut } from "../SignOut.jsx"; function LoginForm() { const signinError = useStore(signinError$); @@ -13,27 +12,16 @@ function LoginForm() { const onFinish = async (values) => { const data = await signin(values); - localStorage.setItem("access_token", data.access_token); - localStorage.setItem("refresh_token", data.refresh_token); - localStorage.setItem("expires_in", data.expires_in); + setAuthLocalStorage(data); let interval; - const onTick = async () => { - try { - await refreshToken(); - } catch (error) { - clearInterval(interval); - logOut(); - throw error; - } - } + setTimeout(async () => { - await onTick(); + await refreshTokenIntervalFunction(); interval = setInterval(async () => { - await onTick(); + await refreshTokenIntervalFunction(); }, (data.expires_in - 5) * 1000) }, 0); - }; return ( diff --git a/src/stores/auth.js b/src/stores/auth.js index 9fe34fa..f868b29 100644 --- a/src/stores/auth.js +++ b/src/stores/auth.js @@ -28,27 +28,34 @@ export const refreshToken = () => { }); } +export const setAuthLocalStorage = (data) => { + localStorage.setItem("access_token", data.access_token); + localStorage.setItem("refresh_token", data.refresh_token); + localStorage.setItem("expires_in", data.expires_in); +} + +export const refreshTokenIntervalFunction = async () => { + try { + const { data: refreshData } = await refreshToken(); + setAuthLocalStorage(refreshData); + } catch (error) { + clearInterval(interval); + logOut(); + throw error; + } +} + async function checkAuth() { try { const { data } = await refreshToken(); - localStorage.setItem("access_token", data.access_token); - localStorage.setItem("refresh_token", data.refresh_token); - localStorage.setItem("expires_in", data.expires_in); + setAuthLocalStorage(data); let interval; - const onTick = async () => { - try { - await refreshToken(); - } catch (error) { - clearInterval(interval); - logOut(); - throw error; - } - } + setTimeout(async () => { - await onTick(); + await refreshTokenIntervalFunction(); interval = setInterval(async () => { - await onTick(); + await refreshTokenIntervalFunction(); }, (data.expires_in - 5) * 1000) }, 0);