2026-06-05 16:45:55 +02:00
|
|
|
const allProjects = document.querySelectorAll(".projects-index li.project");
|
2026-05-14 17:22:34 +02:00
|
|
|
|
2026-06-04 16:02:20 +02:00
|
|
|
function selectProject(slug) {
|
|
|
|
|
if (!slug) {
|
2026-06-10 15:59:22 +02:00
|
|
|
allProjects.forEach((p) => p.classList.remove("selected"));
|
2026-06-04 16:02:20 +02:00
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
const target = [...allProjects].find((p) => p.dataset.slug === slug);
|
|
|
|
|
if (!target) return;
|
|
|
|
|
allProjects.forEach((p) => {
|
|
|
|
|
p.classList.remove("selected");
|
|
|
|
|
});
|
|
|
|
|
target.classList.add("selected");
|
|
|
|
|
}
|
|
|
|
|
|
2026-06-10 15:59:22 +02:00
|
|
|
allProjects.forEach((currentProject) => {
|
|
|
|
|
currentProject.querySelector("button").addEventListener("click", () => {
|
|
|
|
|
allProjects.forEach((project) => {
|
|
|
|
|
if (project !== currentProject) {
|
|
|
|
|
project.classList.remove("selected");
|
|
|
|
|
}
|
2026-05-14 17:22:34 +02:00
|
|
|
});
|
2026-06-05 17:44:02 +02:00
|
|
|
|
2026-06-11 18:40:52 +02:00
|
|
|
currentProject
|
|
|
|
|
.querySelectorAll("picture")
|
|
|
|
|
.forEach((picture) => picture.classList.remove("active"));
|
|
|
|
|
currentProject.querySelector("picture:first-child").classList.add("active");
|
2026-06-10 15:59:22 +02:00
|
|
|
currentProject.classList.toggle("selected");
|
2026-06-05 17:44:02 +02:00
|
|
|
|
2026-06-10 15:59:22 +02:00
|
|
|
Router.setParam("project", currentProject.dataset.slug);
|
2026-05-14 17:22:34 +02:00
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
2026-06-10 15:59:22 +02:00
|
|
|
const closeAllProjects = document.querySelectorAll(".closer");
|
2026-06-05 12:13:02 +02:00
|
|
|
closeAllProjects.forEach((closeProject) => {
|
|
|
|
|
closeProject.addEventListener("click", () => {
|
2026-06-10 15:59:22 +02:00
|
|
|
allProjects.forEach((p) => {
|
|
|
|
|
p.classList.remove("selected");
|
|
|
|
|
});
|
2026-06-04 18:33:08 +02:00
|
|
|
});
|
2026-05-14 17:22:34 +02:00
|
|
|
});
|
2026-06-04 16:02:20 +02:00
|
|
|
|
2026-06-04 18:33:08 +02:00
|
|
|
window.addEventListener("routechange", () =>
|
2026-06-10 15:59:22 +02:00
|
|
|
selectProject(Router.getParam("project")),
|
2026-06-04 18:33:08 +02:00
|
|
|
);
|
2026-06-04 16:02:20 +02:00
|
|
|
|
|
|
|
|
selectProject(Router.getParam("project"));
|