From 16540501713f8f3dbfad663aa84dce8b10e20821 Mon Sep 17 00:00:00 2001 From: "EPAZZ\\estpp" Date: Wed, 22 Apr 2026 01:52:14 -0500 Subject: [PATCH] fix bug of all tags state in new locale --- src/pages/[locale]/news/index.astro | 41 ++++++++++++++++------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/src/pages/[locale]/news/index.astro b/src/pages/[locale]/news/index.astro index d16c3ac..6ea4114 100644 --- a/src/pages/[locale]/news/index.astro +++ b/src/pages/[locale]/news/index.astro @@ -103,29 +103,32 @@ const allTags = [...new Set( window.history.replaceState({}, '', url.toString()); } - document.querySelectorAll('.filter-btn').forEach(btn => { - btn.classList.add(...inactiveClasses.split(" ")); - }); + function initTags() { + document.querySelectorAll('.filter-btn').forEach(btn => { + btn.classList.add(...inactiveClasses.split(" ")); + }); - const urlParams = new URLSearchParams(window.location.search); - const initialTag = urlParams.get('tag'); - if (initialTag) { - const matchingBtn = document.querySelector(`.filter-btn[data-tag="${initialTag}"]`); - if (matchingBtn) { - matchingBtn.classList.remove(...inactiveClasses.split(" ")); - matchingBtn.classList.add(...activeClasses.split(" ")); + const urlParams = new URLSearchParams(window.location.search); + if (urlParams.has('tag')) { + urlParams.delete('tag'); + window.history.replaceState({}, '', window.location.pathname + window.location.search); } - activateTag(initialTag); - } else { + document.querySelector('.filter-btn[data-tag="all"]')?.classList.add(...activeClasses.split(" ")); document.querySelector('.filter-btn[data-tag="all"]')?.classList.remove(...inactiveClasses.split(" ")); + activateTag('all'); + + document.querySelectorAll('.filter-btn').forEach(btn => { + btn.addEventListener('click', () => { + const tag = btn.getAttribute('data-tag'); + activateTag(tag); + updateUrl(tag); + }); + }); } - document.querySelectorAll('.filter-btn').forEach(btn => { - btn.addEventListener('click', () => { - const tag = btn.getAttribute('data-tag'); - activateTag(tag); - updateUrl(tag); - }); - }); + document.addEventListener('astro:page-load', initTags); + if (document.readyState === 'complete') { + initTags(); + } \ No newline at end of file