94 lines
2.7 KiB
JavaScript
94 lines
2.7 KiB
JavaScript
import applicationConfig from '@/constants/application-config';
|
|
import { getISSCookie } from '@/helpers/cookie-helper.js';
|
|
|
|
/*
|
|
Method to determine if our analytics session has timed out or not.
|
|
Amount used for timeout is configurable in application-config.js
|
|
*/
|
|
export function isAnalyticsSessionStillActive() {
|
|
if (getISSCookie() !== null) {
|
|
const lastTouchedValue = getISSCookie().LastTouched;
|
|
const timeoutAmount = applicationConfig.ANALYTICS_SESSION_TIMEOUT_MINUTES;
|
|
|
|
const isMoreThanHalfHourAgo = (new Date() - new Date(lastTouchedValue)) / 60000 > timeoutAmount;
|
|
|
|
if (isMoreThanHalfHourAgo) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/*
|
|
Method to determine if the users 'saved' session is still active.
|
|
When user state is created, there is a date that is saved into state
|
|
this method checks against that date.
|
|
|
|
Note: That time for saved session timeout is configurable in application-config.js
|
|
*/
|
|
export function isSavedSessionStillActive() {
|
|
if (getISSCookie() !== null) {
|
|
const savedSessionTimeStamp = new Date(getISSCookie().SavedSessionTimeoutDate);
|
|
const isSavedSessionTimedOut = new Date(new Date().toUTCString()) > savedSessionTimeStamp;
|
|
|
|
return !isSavedSessionTimedOut;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/*
|
|
Function to calculate the date for the saved session timeout.
|
|
*/
|
|
|
|
export function getDateForSavedSessionTimeout() {
|
|
const currentDate = new Date(new Date().toUTCString());
|
|
currentDate.setDate(currentDate.getDate() + applicationConfig.SAVED_SESSION_TIMEOUT_DAYS);
|
|
return currentDate.toUTCString();
|
|
}
|
|
|
|
|
|
/*
|
|
Function to return the iOS version of the device.
|
|
*/
|
|
|
|
export function getiOSversion() {
|
|
if (/iP(hone|od|ad)/.test(navigator.platform)) {
|
|
// supports iOS 2.0 and later:
|
|
var v = navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);
|
|
return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
|
|
}
|
|
}
|
|
|
|
/*
|
|
Function to return true/false if the user agent is a mobile device or not.
|
|
*/
|
|
|
|
export function isMobileDevice() {
|
|
const userAgent = navigator.userAgent;
|
|
return (
|
|
userAgent.includes("Android") ||
|
|
userAgent.includes("Mobile") ||
|
|
userAgent.includes("iPod") ||
|
|
userAgent.includes("iPhone") ||
|
|
userAgent.includes("IEMobile") ||
|
|
userAgent.includes("BlackBerry") ||
|
|
userAgent.includes("webOS")
|
|
);
|
|
}
|
|
|
|
/*
|
|
Function to return true/false if the user is using an apple browser on a device.
|
|
*/
|
|
|
|
export function isAppleBrowser() {
|
|
const userAgent = navigator.userAgent;
|
|
return (
|
|
userAgent.includes("iPod") ||
|
|
userAgent.includes("iPad") ||
|
|
userAgent.includes("iPhone") ||
|
|
userAgent.includes("Mac")
|
|
);
|
|
}
|
|
|