📈 Add umami code

This commit is contained in:
Dan Jones 2023-01-03 14:47:27 -06:00
commit d73ec6ba7b
5 changed files with 57 additions and 2 deletions

35
build/app.js Normal file
View file

@ -0,0 +1,35 @@
/* global umami */
document.addEventListener('click', getFollows);
function getFollows(evt) {
const el = evt.target;
if (el.tagName.toLowerCase() !== 'a') {
return;
}
const name = el.dataset.name;
if (!name) {
return;
}
const url = el.href;
if (!url) {
return;
}
if (!window.umami) {
return;
}
const umProm = umami.trackEvent('visit', { type: 'click', site: name });
if (!el.target || el.target.match(/^_(self|parent|top)$/i)) {
// If we're not opening in a new tab, then try to send event before navigating away
// Don't wait too long though (half a second, at most)
evt.preventDefault();
umProm.then(() => location.href = url).catch(() => location.href = url);
setTimeout(() => location.href = url, 500);
}
}