From c4cf788d68d33d6938a43d15c55ad9ae81f0b6d5 Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Thu, 22 Oct 2020 15:17:18 -0700 Subject: [PATCH] Send navigate events to Hydro (#16160) * Send navigate events to Hydro * Use event delegation on links --- javascripts/events.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/javascripts/events.js b/javascripts/events.js index 5ec3540242..8b80ff2b6c 100644 --- a/javascripts/events.js +++ b/javascripts/events.js @@ -170,6 +170,26 @@ export default async function initializeEvents () { page_render_duration: render }) + // Navigate event + Array.from( + document.querySelectorAll('.sidebar-products details') + ).forEach(details => details.addEventListener( + 'toggle', + evt => sendEvent({ + type: 'navigate', + navigate_label: `details ${evt.target.open ? 'open' : 'close'}: ${evt.target.querySelector('summary').innerText}` + }) + )) + + document.querySelector('.sidebar-products').addEventListener('click', evt => { + const link = evt.target.closest('a') + if (!link) return + sendEvent({ + type: 'navigate', + navigate_label: `link: ${link.href}` + }) + }) + // Exit event pageEventId = pageEvent?.context?.event_id window.addEventListener('scroll', trackScroll)