/** * filters.js * Article filtering by type on the articles page */ (function() { 'use strict'; const filterBtns = document.querySelectorAll('.filter-btn'); const timelineItems = document.querySelectorAll('.timeline-item'); filterBtns.forEach((btn) => { btn.addEventListener('click', () => { const filter = btn.getAttribute('data-filter'); // Update active button filterBtns.forEach((b) => b.classList.remove('active')); btn.classList.add('active'); // Filter articles timelineItems.forEach((item) => { const type = item.getAttribute('data-type'); if (filter === 'all' || type === filter) { item.classList.add('visible'); } else { item.classList.remove('visible'); } }); }); }); // Show all on load timelineItems.forEach((item) => { item.classList.add('visible'); }); })();