|
1 |
| -const MINUTE = 60 * 1000 |
2 |
| -const interval = MINUTE * 5 |
3 |
| -export const eventName = 'user_activity' |
| 1 | +const MINUTE = 60 * 1000; |
| 2 | +const interval = MINUTE * 5; |
| 3 | +export const eventName = 'user_activity'; |
4 | 4 |
|
5 | 5 | // Must be a dynamic object to test this
|
6 |
| -export const lastActivity = {} |
7 |
| - |
8 |
| -export const getTargetOrigin = (origin = window.location.origin) => { |
9 |
| - // Setup targetOrigin to alternate origin (because the same origin already works) |
10 |
| - if (origin) { |
11 |
| - if (origin.includes('apps')) { |
12 |
| - return origin.replace('apps', 'essentials') |
13 |
| - } |
14 |
| - |
15 |
| - if (origin.includes('essentials')) { |
16 |
| - return origin.replace('essentials', 'apps') |
17 |
| - } |
| 6 | +export const lastActivity = {}; |
| 7 | + |
| 8 | +export const getTargetOrigin = (origin = window.document.referrer) => { |
| 9 | + if (origin && /\.availity\.com\/?$/.test(origin)) { |
| 10 | + return origin; |
18 | 11 | }
|
19 | 12 |
|
20 |
| - return undefined |
21 |
| -} |
| 13 | + return undefined; |
| 14 | +}; |
22 | 15 |
|
23 |
| -const targetOrigin = getTargetOrigin() |
| 16 | +const targetOrigin = getTargetOrigin(); |
24 | 17 |
|
25 | 18 | // PostMessage Logic
|
26 | 19 | export const handleActivityUpdate = () => {
|
27 |
| - window.top.postMessage({ |
28 |
| - event: eventName, |
29 |
| - time: lastActivity.time |
30 |
| - }, targetOrigin) |
31 |
| -} |
| 20 | + window.top.postMessage( |
| 21 | + { |
| 22 | + event: eventName, |
| 23 | + time: lastActivity.time, |
| 24 | + }, |
| 25 | + targetOrigin |
| 26 | + ); |
| 27 | +}; |
32 | 28 |
|
33 | 29 | // Debounce Logic
|
34 |
| -let activityIntervalId = setInterval(handleActivityUpdate, interval) |
| 30 | +let activityIntervalId = setInterval(handleActivityUpdate, interval); |
35 | 31 | // Re-assignable for testing
|
36 | 32 | export const updateInterval = (newInterval) => {
|
37 |
| - clearInterval(activityIntervalId) |
38 |
| - activityIntervalId = setInterval(handleActivityUpdate, newInterval) |
39 |
| -} |
| 33 | + clearInterval(activityIntervalId); |
| 34 | + activityIntervalId = setInterval(handleActivityUpdate, newInterval); |
| 35 | +}; |
40 | 36 |
|
41 | 37 | // Event Handlers
|
42 | 38 | export const handleActivity = () => {
|
43 |
| - lastActivity.time = Date.now().toString() |
44 |
| -} |
| 39 | + lastActivity.time = Date.now().toString(); |
| 40 | +}; |
45 | 41 |
|
46 | 42 | // Add ability to test handleActivity and events
|
47 | 43 | export const addEventListeners = () => {
|
48 |
| - document.addEventListener('mousedown', handleActivity) |
49 |
| - document.addEventListener('keydown', handleActivity) |
50 |
| -} |
51 |
| -addEventListeners() |
| 44 | + document.addEventListener('mousedown', handleActivity); |
| 45 | + document.addEventListener('keydown', handleActivity); |
| 46 | +}; |
| 47 | +addEventListeners(); |
0 commit comments