/* 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); } }