import Link from "next/link"; import { useRouter } from "next/router"; import { useContext } from "react"; import useTranslation from "next-translate/useTranslation"; import MakeNewAppeal from "./myportal/makenewappeal"; import MyCases from "./myportal/mycases"; import SearchCases from "./myportal/searchcases"; import AwaitingSubmission from "./myportal/awaitingsubmission"; import MyRepresentations from "./myportal/myrepresentations"; import WatchedCases from "./myportal/watchedcases"; import YourAccount from "./myportal/youraccount"; import { parseCookies, setCookie, destroyCookie } from "nookies"; import IdleTimer from "react-idle-timer"; import TimeoutModal from "../components/timeoutmodal"; import { useState } from "react"; const MyPortal = (props) => { let { t } = useTranslation(); const router = useRouter(); const { locale } = router; const [showModal, setShowModal] = useState(false); const inactiveTimeOut = 120; // in seconds const reminderTimeout = 30; // in seconds let idleTimer = null; let logoutTimer = null; let onIdle = () => { togglePopup(); logoutTimer = setTimeout(() => { handleLogout(); }, 1000 * reminderTimeout * 1); }; let togglePopup = () => { showModal == true ? setShowModal(false) : setShowModal(true); }; let handleStayLoggedIn = () => { if (logoutTimer) { clearTimeout(logoutTimer); logoutTimer = null; } idleTimer.reset(); togglePopup(); }; const handleLogout = () => { console.log("////////////", "\n", "logout", "\n", "//////////"); destroyCookie({}, "pinsUser"), window.localStorage.clear(), router.replace(props.ggLogout); }; return ( <> {" "} {props.accountDetails.accountDetails.firstname}{" "} {props.accountDetails.accountDetails.lastname} { handleLogout(); }} className="govuk-header__link govuk-!-margin-right-3" > {t("common:signout-label")} { idleTimer = ref; }} element={document} stopOnIdle={true} onActive={console.log(" bbis active", idleTimer)} onIdle={onIdle} timeout={1000 * inactiveTimeOut * 1} /> > ); }; export default MyPortal;