blob: 95d0e1da65c1e2155eaa68339db4a5aa15a31c0e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
// Loads Umami session replays unless this browser has opted out, and powers the opt-out toggle.
// script.js already checks the "umami.disabled" flag and its data-domains list itself; recorder.js
// checks neither, so it's loaded from here using the tracker tag's settings.
const OPT_OUT_KEY = "umami.disabled";
function optedOut() {
try {
return Boolean(localStorage.getItem(OPT_OUT_KEY));
} catch {
return false;
}
}
const tracker = document.querySelector("script[data-website-id]");
const domains = tracker?.dataset.domains?.split(",") ?? [];
if (domains.includes(location.hostname) && !optedOut()) {
const recorder = document.createElement("script");
recorder.src = new URL("recorder.js", tracker.src).href;
recorder.dataset.websiteId = tracker.dataset.websiteId;
document.head.append(recorder);
}
const toggle = document.getElementById("analytics-toggle");
if (toggle) {
const status = document.getElementById("analytics-status");
const render = () => {
const off = optedOut();
status.textContent = off ? "Analytics are off for this browser." : "Analytics are on for this browser.";
toggle.textContent = off ? "Turn analytics back on" : "Turn off analytics";
};
toggle.addEventListener("click", () => {
if (optedOut()) {
localStorage.removeItem(OPT_OUT_KEY);
} else {
localStorage.setItem(OPT_OUT_KEY, "1");
}
render();
});
render();
toggle.hidden = false;
}
|