Merge pull request #10859 from nixocio/ui_issue_warning_session

Remove warning for SSO session when logging in
This commit is contained in:
Kersom 2021-08-20 14:23:30 -04:00 committed by GitHub
commit 4a2917b6a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -6,6 +6,7 @@ import React, {
useCallback,
} from 'react';
import { useHistory } from 'react-router-dom';
import { DateTime } from 'luxon';
import { RootAPI, MeAPI } from 'api';
import { isAuthenticated } from 'util/auth';
import { SESSION_TIMEOUT_KEY } from '../constants';
@ -66,8 +67,8 @@ SessionContext.displayName = 'SessionContext';
function SessionProvider({ children }) {
const history = useHistory();
const isSessionExpired = useRef(false);
const sessionTimeoutId = useRef();
const sessionIntervalId = useRef();
const sessionTimeoutId = useRef(null);
const sessionIntervalId = useRef(null);
const [sessionTimeout, setSessionTimeout] = useStorage(SESSION_TIMEOUT_KEY);
const [sessionCountdown, setSessionCountdown] = useState(0);
const [authRedirectTo, setAuthRedirectTo] = useState('/');
@ -89,8 +90,15 @@ function SessionProvider({ children }) {
return () => {};
}
const calcRemaining = () =>
parseInt(sessionTimeout, 10) - new Date().getTime();
const calcRemaining = () => {
if (sessionTimeout) {
return Math.max(
parseInt(sessionTimeout, 10) - DateTime.now().toMillis(),
0
);
}
return 0;
};
const handleSessionTimeout = () => {
let countDown = SESSION_WARNING_DURATION;
@ -110,10 +118,12 @@ function SessionProvider({ children }) {
clearTimeout(sessionTimeoutId.current);
clearInterval(sessionIntervalId.current);
const calcTimeOut = calcRemaining() - SESSION_WARNING_DURATION * 1000;
isSessionExpired.current = false;
sessionTimeoutId.current = setTimeout(
handleSessionTimeout,
Math.min(calcRemaining() - SESSION_WARNING_DURATION * 1000, MAX_TIMEOUT)
calcTimeOut <= 0 ? MAX_TIMEOUT : Math.min(calcTimeOut, MAX_TIMEOUT)
);
return () => {