From a1f510f7deb91849d2cd53b4691f1b1cbb3f4dc8 Mon Sep 17 00:00:00 2001 From: you Date: Mon, 23 Mar 2026 18:44:45 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20deep-linkable=20analytics=20tabs=20?= =?UTF-8?q?=E2=80=94=20#/analytics=3Ftab=3Dcollisions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Parses ?tab= from hash URL and activates that tab on load. e.g. #/analytics?tab=collisions → Hash Issues tab --- public/analytics.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/public/analytics.js b/public/analytics.js index 64bfc19e..8d5feed4 100644 --- a/public/analytics.js +++ b/public/analytics.js @@ -104,6 +104,18 @@ renderTab(_currentTab); }); + // Deep-link: #/analytics?tab=collisions + const hashParams = location.hash.split('?')[1] || ''; + const urlTab = new URLSearchParams(hashParams).get('tab'); + if (urlTab) { + const tabBtn = analyticsTabs.querySelector(`[data-tab="${urlTab}"]`); + if (tabBtn) { + analyticsTabs.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active')); + tabBtn.classList.add('active'); + _currentTab = urlTab; + } + } + RegionFilter.init(document.getElementById('analyticsRegionFilter')); RegionFilter.onChange(function () { loadAnalytics(); });