|
20 | 20 | }).catch(err => console.error("Webhook error:", err)); |
21 | 21 | } |
22 | 22 |
|
23 | | -// Track if message has already been sent in this active session |
| 23 | +// Track if message has already been sent in this session |
24 | 24 | let hasTriggeredThisSession = false; |
25 | 25 |
|
26 | | -// Update the device button status |
| 26 | +// Update device button status |
27 | 27 | function updateDeviceButton() { |
28 | 28 | const button = document.getElementById("triggerButton"); |
29 | 29 | const status = document.getElementById("deviceStatus"); |
|
38 | 38 | } |
39 | 39 | } |
40 | 40 |
|
41 | | -// Auto-trigger on page load, only if device hasn't triggered yet |
42 | | -window.addEventListener("load", () => { |
43 | | - if (!localStorage.getItem(DEVICE_KEY)) { |
44 | | - if (!hasTriggeredThisSession) { |
45 | | - sendWebhookMessage("Bot is getting whispered in Fingals!!"); |
46 | | - hasTriggeredThisSession = true; |
47 | | - } |
| 41 | +// Unified trigger function that respects device-only restriction |
| 42 | +function triggerWebhookOncePerDevice(message) { |
| 43 | + const triggered = localStorage.getItem(DEVICE_KEY) === "true"; |
| 44 | + if (!triggered && !hasTriggeredThisSession) { |
| 45 | + sendWebhookMessage(message); |
| 46 | + hasTriggeredThisSession = true; |
48 | 47 | } |
| 48 | +} |
| 49 | + |
| 50 | +// Auto-trigger on page load, only if not already triggered on this device |
| 51 | +window.addEventListener("load", () => { |
| 52 | + triggerWebhookOncePerDevice("Bot is getting whispered in Fingals!!"); |
49 | 53 | updateDeviceButton(); |
50 | 54 | }); |
51 | 55 |
|
52 | | -// Detect tab/app visibility changes |
| 56 | +// Tab visibility change |
53 | 57 | document.addEventListener("visibilitychange", () => { |
54 | 58 | if (document.hidden) { |
55 | | - // User switched apps or tab → reset session trigger |
56 | 59 | hasTriggeredThisSession = false; |
57 | | - console.log("Page inactive → trigger reset."); |
| 60 | + console.log("Page inactive → session reset."); |
58 | 61 | } else { |
59 | | - // User returned → auto-trigger if not already triggered on this device |
60 | | - if (!localStorage.getItem(DEVICE_KEY) && !hasTriggeredThisSession) { |
61 | | - sendWebhookMessage("Bot is getting whispered in Fingals!!"); |
62 | | - hasTriggeredThisSession = true; |
63 | | - } |
| 62 | + triggerWebhookOncePerDevice("Bot is getting whispered in Fingals!!"); |
64 | 63 | } |
65 | 64 | }); |
66 | 65 |
|
67 | | -// Device-only button click |
| 66 | +// Device-only button |
68 | 67 | document.getElementById("triggerButton").addEventListener("click", () => { |
69 | 68 | const triggered = localStorage.getItem(DEVICE_KEY) === "true"; |
70 | 69 | if (!triggered) { |
|
0 commit comments