i18n: Upgrade translations from crowdin (a80a6511). (vpn-settings)
[ProtonMail-WebClient.git] / packages / account / securityCheckup / helpers / getValidSecurityCheckupSession.ts
blob4247b4269d1e384a4873a20ab267a01e1209cbf8
1 import { differenceInMilliseconds } from 'date-fns';
3 import type { SecurityCheckupSession } from '@proton/shared/lib/interfaces/securityCheckup';
4 import type SecurityCheckupCohort from '@proton/shared/lib/interfaces/securityCheckup/SecurityCheckupCohort';
6 import { SECURITY_SESSION_MAX_AGE } from '../consts';
8 const getValidSecurityCheckupSession = ({
9     currentSession,
10     currentCohort,
11 }: {
12     currentSession: SecurityCheckupSession | undefined;
13     currentCohort: SecurityCheckupCohort;
14 }) => {
15     const createdTimestamp = Date.now();
16     const nextSession = {
17         initialCohort: currentCohort,
18         createdTimestamp,
19     };
21     if (!currentSession) {
22         return nextSession;
23     }
25     const sessionAge = differenceInMilliseconds(Date.now(), currentSession.createdTimestamp);
26     const hasExpired = sessionAge > SECURITY_SESSION_MAX_AGE;
28     if (hasExpired) {
29         return nextSession;
30     }
32     return currentSession;
35 export default getValidSecurityCheckupSession;