import { FC, useEffect } from 'react'; import { Link } from 'react-router-dom'; import { useAuth } from '../../../../app/modules/auth'; import { Languages } from './Languages'; import { toAbsoluteUrl } from '../../../helpers'; const HeaderUserMenu: FC = () => { const { currentUser, logout } = useAuth(); // Listen for user activity and trigger logout useEffect(() => { let timeout: number; const inactiveTime: number = 7 * 60 * 1000; //default inactive period (milliseconds) // Logout user after inactiveTime minutes of inactivity const resetTimeout = () => { clearTimeout(timeout); // Set logout timeout timeout = window.setTimeout(() => { logout(); }, inactiveTime); // console.log('===> Current time: ' + timeout); }; const handleUserActivity: any = () => { resetTimeout(); // Extend session on user activity }; document.addEventListener('mousemove', handleUserActivity); document.addEventListener('keydown', handleUserActivity); document.addEventListener('click', handleUserActivity); document.addEventListener('focus', handleUserActivity); // Initialize timeout resetTimeout(); // Remove event listeners on unmount return () => { clearTimeout(timeout); document.removeEventListener('mousemove', handleUserActivity); document.removeEventListener('keydown', handleUserActivity); document.removeEventListener('click', handleUserActivity); document.removeEventListener('focus', handleUserActivity); }; }, [logout]); return (
Logo
{currentUser?.first_name} {currentUser?.first_name} {/*Pro*/}
{currentUser?.email}
{/*
*/} {/*
My Profile
*/} {/*
My Projects 3
*/} {/*
My Subscription
Referrals
Billing
Payments
Statements
*/} {/*
My Statements
*/}
{/* */} {/*
Account Settings
*/}
Sign Out
); }; export { HeaderUserMenu };