|
|
@@ -2,6 +2,7 @@ |
|
|
|
import React, { createContext, useState, useEffect, ReactNode } from 'react'; |
|
|
|
import { useIdleTimer } from "react-idle-timer"; |
|
|
|
import { signOut } from "next-auth/react"; |
|
|
|
import { useTranslation } from 'react-i18next'; |
|
|
|
|
|
|
|
interface TimerContextProps { |
|
|
|
lastRequestTime: number; |
|
|
@@ -16,6 +17,7 @@ interface AutoLogoutProviderProps { |
|
|
|
} |
|
|
|
|
|
|
|
const AutoLogoutProvider: React.FC<AutoLogoutProviderProps> = ({ children, isUserLoggedIn }) => { |
|
|
|
const { t } = useTranslation("common") |
|
|
|
const [lastRequestTime, setLastRequestTime] = useState(Date.now()); |
|
|
|
const [logoutInterval, setLogoutInterval] = useState(1); // minute |
|
|
|
const [state, setState] = useState('Active'); |
|
|
@@ -65,6 +67,7 @@ const AutoLogoutProvider: React.FC<AutoLogoutProviderProps> = ({ children, isUse |
|
|
|
if (state !== "Active" && lastActiveTab) { |
|
|
|
const timeElapsed = currentTime - lastRequestTime; |
|
|
|
if (timeElapsed >= logoutInterval * 60 * 1000) { |
|
|
|
alert(t("Your session has expired, please log in again.")) |
|
|
|
// console.log(timeElapsed / 1000); |
|
|
|
// console.log(logoutInterval* 60); |
|
|
|
// console.log(logoutInterval * 60 * 1000 - timeElapsed) |
|
|
|