feat(projects): projects scrolling using mouse wheel

This commit is contained in:
2025-11-19 01:30:08 +01:00
parent e731709eaa
commit e8239c825e

View File

@@ -35,6 +35,24 @@ const animateScrolling = (offset: number) => {
); );
}; };
const scrollProjects = (direction: "left" | "right") => {
let offset = 0;
if (
direction === "right" &&
store.currentProject < store.projects.length - 1
) {
store.currentProject += 1;
offset = 69;
} else if (direction === "left" && store.currentProject > 0) {
store.currentProject -= 1;
offset = -69;
}
if (offset != 0) {
animateScrolling(offset);
}
};
useRender((ctx) => { useRender((ctx) => {
const { startIndex, endIndex } = getBounds(); const { startIndex, endIndex } = getBounds();
@@ -59,25 +77,25 @@ useRender((ctx) => {
}); });
useKeyDown((key) => { useKeyDown((key) => {
// scrolling switch (key) {
let offset = 0; case "ArrowLeft":
if ( scrollProjects("left");
key === "ArrowRight" && break;
store.currentProject < store.projects.length - 1 case "ArrowRight":
) { scrollProjects("right");
store.currentProject += 1; break;
offset = 69; case "Enter":
} else if (key === "ArrowLeft" && store.currentProject > 0) { case " ":
store.currentProject -= 1;
offset = -69;
}
if (offset != 0) {
animateScrolling(offset);
}
if (key === "Enter" || key === " ") {
store.visitProject(); store.visitProject();
break;
}
});
useMouseWheel((dy) => {
if (dy > 0) {
scrollProjects("right");
} else if (dy < 0) {
scrollProjects("left");
} }
}); });