fix(analytics): serve umami via /trace/trace.js and add privacy policy with opt-out switch (#71)
This commit is contained in:
21 files changed
+272
-51
No files matched your search
@@ -0,0 +1,36 @@
|
||||
(function () {
|
||||
var KEY = "umami.disabled";
|
||||
var toggles = document.querySelectorAll("[data-umami-toggle]");
|
||||
if (!toggles.length) return;
|
||||
|
||||
function sync() {
|
||||
var enabled = true;
|
||||
try {
|
||||
enabled = window.localStorage.getItem(KEY) !== "1";
|
||||
} catch (e) {}
|
||||
toggles.forEach(function (el) {
|
||||
el.checked = enabled;
|
||||
});
|
||||
}
|
||||
|
||||
sync();
|
||||
|
||||
toggles.forEach(function (el) {
|
||||
el.addEventListener("change", function () {
|
||||
try {
|
||||
if (el.checked) {
|
||||
window.localStorage.removeItem(KEY);
|
||||
} else {
|
||||
window.localStorage.setItem(KEY, "1");
|
||||
}
|
||||
} catch (e) {}
|
||||
sync();
|
||||
});
|
||||
});
|
||||
|
||||
window.addEventListener("storage", function (e) {
|
||||
if (e.key === KEY || e.key === null) {
|
||||
sync();
|
||||
}
|
||||
});
|
||||
})();
|
||||
Reference in new issue
Block a user