diff --git a/js/radar.js b/js/radar.js index c3fd084..3cefd54 100644 --- a/js/radar.js +++ b/js/radar.js @@ -359,28 +359,48 @@ govtracker: '> .GOV domain intelligence — tracking U.S. government infrastructure registry' }; + function switchToView(view) { + // Toggle button states + document.querySelectorAll('.radar-view-btn').forEach(function(b) { b.classList.remove('active'); }); + var activeBtn = document.querySelector('.radar-view-btn[data-view="' + view + '"]'); + if (activeBtn) activeBtn.classList.add('active'); + + // Toggle views + document.getElementById('viewNewsfeed').classList.toggle('hidden', view !== 'newsfeed'); + document.getElementById('viewGovtracker').classList.toggle('hidden', view !== 'govtracker'); + + // Update subtitle + document.getElementById('radarSubtitle').innerHTML = subtitles[view] || ''; + + // Update URL hash without scrolling + history.replaceState(null, '', '#' + view); + + // Lazy-load gov tracker data on first switch + if (view === 'govtracker' && !GovTracker.loaded) { + GovTracker.loadAll(); + } + } + document.querySelectorAll('.radar-view-btn').forEach(function(btn) { btn.addEventListener('click', function(e) { e.preventDefault(); - var view = this.dataset.view; - - // Toggle button states - document.querySelectorAll('.radar-view-btn').forEach(function(b) { b.classList.remove('active'); }); - this.classList.add('active'); - - // Toggle views - document.getElementById('viewNewsfeed').classList.toggle('hidden', view !== 'newsfeed'); - document.getElementById('viewGovtracker').classList.toggle('hidden', view !== 'govtracker'); - - // Update subtitle - document.getElementById('radarSubtitle').innerHTML = subtitles[view] || ''; - - // Lazy-load gov tracker data on first switch - if (view === 'govtracker' && !GovTracker.loaded) { - GovTracker.loadAll(); - } + switchToView(this.dataset.view); }); }); + + // Check URL hash on load + var hash = window.location.hash.replace('#', ''); + if (hash === 'govtracker' || hash === 'newsfeed') { + switchToView(hash); + } + + // Handle browser back/forward + window.addEventListener('hashchange', function() { + var h = window.location.hash.replace('#', ''); + if (h === 'govtracker' || h === 'newsfeed') { + switchToView(h); + } + }); } // ═══════════════════════════════════════════════════