From 62d907cf2e04d6b5fcd2602722be8e0782730685 Mon Sep 17 00:00:00 2001 From: Matthew Grove Date: Wed, 26 Jun 2024 21:00:28 +0100 Subject: [PATCH] Allow navigating to a grid filter with URL hash --- assets/js/script.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/assets/js/script.js b/assets/js/script.js index 4858cb1..4ff9000 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -117,6 +117,12 @@ const filterFunc = function (selectedValue) { // add event in all filter button items for large screen let lastClickedBtn = filterBtn[0]; +// show correct filter depending on url +let filterValue = ""; +if (filterBtn.length > 0 && location.hash.length > 1) { + filterValue = decodeURIComponent(location.hash.substring(1)); +} + for (let i = 0; i < filterBtn.length; i++) { filterBtn[i].addEventListener("click", function () { @@ -125,6 +131,9 @@ for (let i = 0; i < filterBtn.length; i++) { selectValue.innerText = this.innerText; filterFunc(selectedValue); + // set id in url + location.hash = encodeURIComponent(filterBtn[i].innerHTML); + lastClickedBtn.classList.remove("active"); this.classList.add("active"); lastClickedBtn = this; @@ -139,6 +148,10 @@ for (let i = 0; i < filterBtn.length; i++) { } }); + if (filterValue === filterBtn[i].innerHTML) { + filterBtn[i].click(); + } + }