From a5614ac3dd824860eedaded4ab3412b32f26a4de Mon Sep 17 00:00:00 2001 From: Kian Newman-Hazel Date: Wed, 26 Feb 2025 19:53:35 +0000 Subject: [PATCH 1/3] [Docs Site] Update URL when filter updates on changelog --- src/pages/changelog/index.astro | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/pages/changelog/index.astro b/src/pages/changelog/index.astro index 70f717489bf7b5e..ce5ce737c47d413 100644 --- a/src/pages/changelog/index.astro +++ b/src/pages/changelog/index.astro @@ -126,6 +126,16 @@ const props = { } } + const url = new URL(window.location.href); + + if (value === "all") { + url.searchParams.delete("product"); + } else { + url.searchParams.set("product", value); + } + + history.replaceState(null, "", url.href); + hideButton(); }); From 5ea917368fb7e6fc626493469b047b88acb94dd1 Mon Sep 17 00:00:00 2001 From: Kian Newman-Hazel Date: Wed, 26 Feb 2025 19:57:50 +0000 Subject: [PATCH 2/3] Load filter value from search params --- src/pages/changelog/index.astro | 83 ++++++++++++++++++--------------- 1 file changed, 46 insertions(+), 37 deletions(-) diff --git a/src/pages/changelog/index.astro b/src/pages/changelog/index.astro index ce5ce737c47d413..ee12fd5c2371d5f 100644 --- a/src/pages/changelog/index.astro +++ b/src/pages/changelog/index.astro @@ -87,17 +87,34 @@ const props = { "#changelogs-next-filter", ); - filter?.addEventListener("change", () => { + const button = document.querySelector( + "#changelogs-next-button", + ); + + const url = new URL(window.location.href); + + if (filter && url.searchParams.has("product")) { + filter.value = url.searchParams.get("product")!; + updateFilter(); + } + + filter?.addEventListener("change", updateFilter); + + button?.addEventListener("click", () => { const entries = [ ...document.querySelectorAll("[data-products]"), ]; if (!entries) return; - const value = filter.value; + const value = filter!.value; - const filtered = entries + const hidden = entries .filter((e) => { + if (e.style.display !== "none") { + return false; + } + if (value === "all") { return true; } @@ -114,50 +131,24 @@ const props = { return false; }) - .slice(0, 5); - - for (const entry of entries) { - const show = filtered.includes(entry); - - if (show) { - entry.style.display = ""; - } else { - entry.style.display = "none"; - } - } - - const url = new URL(window.location.href); - - if (value === "all") { - url.searchParams.delete("product"); - } else { - url.searchParams.set("product", value); - } + .slice(0, 10); - history.replaceState(null, "", url.href); + hidden.forEach((e) => (e.style.display = "")); hideButton(); }); - const button = document.querySelector( - "#changelogs-next-button", - ); - - button?.addEventListener("click", () => { + function updateFilter() { const entries = [ ...document.querySelectorAll("[data-products]"), ]; if (!entries) return; - const value = filter!.value; + const value = filter.value; - const hidden = entries + const filtered = entries .filter((e) => { - if (e.style.display !== "none") { - return false; - } - if (value === "all") { return true; } @@ -174,12 +165,30 @@ const props = { return false; }) - .slice(0, 10); + .slice(0, 5); - hidden.forEach((e) => (e.style.display = "")); + for (const entry of entries) { + const show = filtered.includes(entry); + + if (show) { + entry.style.display = ""; + } else { + entry.style.display = "none"; + } + } + + const url = new URL(window.location.href); + + if (value === "all") { + url.searchParams.delete("product"); + } else { + url.searchParams.set("product", value); + } + + history.replaceState(null, "", url.href); hideButton(); - }); + } function hideButton() { const entries = [ From 3a8e046d76c6616c97f0412458adf6c4b7ce9d7a Mon Sep 17 00:00:00 2001 From: Kian Newman-Hazel Date: Thu, 27 Feb 2025 00:45:12 +0000 Subject: [PATCH 3/3] assert --- src/pages/changelog/index.astro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/changelog/index.astro b/src/pages/changelog/index.astro index ee12fd5c2371d5f..065953b9e05edef 100644 --- a/src/pages/changelog/index.astro +++ b/src/pages/changelog/index.astro @@ -145,7 +145,7 @@ const props = { if (!entries) return; - const value = filter.value; + const value = filter!.value; const filtered = entries .filter((e) => {