2026-05-14 17:22:34 +02:00
|
|
|
const allProjects = document.querySelectorAll(".projects-index li");
|
|
|
|
|
|
2026-06-04 16:02:20 +02:00
|
|
|
function selectProject(slug) {
|
|
|
|
|
if (!slug) {
|
|
|
|
|
allProjects.forEach((p) => p.classList.remove("selected", "unselected"));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
const target = [...allProjects].find((p) => p.dataset.slug === slug);
|
|
|
|
|
if (!target) return;
|
|
|
|
|
allProjects.forEach((p) => {
|
|
|
|
|
p.classList.add("unselected");
|
|
|
|
|
p.classList.remove("selected");
|
|
|
|
|
});
|
|
|
|
|
target.classList.add("selected");
|
|
|
|
|
target.classList.remove("unselected");
|
|
|
|
|
}
|
|
|
|
|
|
2026-05-14 17:22:34 +02:00
|
|
|
allProjects.forEach((project) => {
|
|
|
|
|
project.addEventListener("click", () => {
|
2026-06-04 16:02:20 +02:00
|
|
|
allProjects.forEach((p) => {
|
|
|
|
|
p.classList.add("unselected");
|
|
|
|
|
p.classList.remove("selected");
|
2026-05-14 17:22:34 +02:00
|
|
|
});
|
|
|
|
|
project.classList.add("selected");
|
|
|
|
|
project.classList.remove("unselected");
|
2026-06-04 16:02:20 +02:00
|
|
|
Router.setParam("project", project.dataset.slug);
|
2026-05-14 17:22:34 +02:00
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const projectTogglers = document.querySelectorAll(".project-toggler");
|
|
|
|
|
|
|
|
|
|
projectTogglers.forEach((button) => {
|
|
|
|
|
button.addEventListener("click", (event) => {
|
|
|
|
|
const parentLi = button.closest("li");
|
|
|
|
|
if (parentLi.classList.contains("selected")) {
|
|
|
|
|
event.stopPropagation();
|
2026-06-04 16:02:20 +02:00
|
|
|
allProjects.forEach((p) => p.classList.remove("unselected"));
|
|
|
|
|
parentLi.classList.remove("selected");
|
|
|
|
|
Router.setParam("project", null);
|
2026-05-14 17:22:34 +02:00
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const allProjectsCloser = document.querySelector(".all-projects-closer");
|
|
|
|
|
|
2026-06-04 16:02:20 +02:00
|
|
|
allProjectsCloser.addEventListener("click", () => {
|
|
|
|
|
allProjects.forEach((p) => p.classList.remove("selected", "unselected"));
|
|
|
|
|
Router.setParam("project", null);
|
2026-05-14 17:22:34 +02:00
|
|
|
});
|
2026-06-04 16:02:20 +02:00
|
|
|
|
|
|
|
|
window.addEventListener("routechange", () => selectProject(Router.getParam("project")));
|
|
|
|
|
|
|
|
|
|
selectProject(Router.getParam("project"));
|