From 49482a59d334888614212cbe0ecc5fe9e99a3515 Mon Sep 17 00:00:00 2001 From: schererleander Date: Wed, 4 Jun 2025 03:02:51 +0200 Subject: formatting --- src/components/ImageGalleryGrid.tsx | 56 ++++++++++++++++++++----------------- src/data/gear.ts | 1 - 2 files changed, 30 insertions(+), 27 deletions(-) (limited to 'src') diff --git a/src/components/ImageGalleryGrid.tsx b/src/components/ImageGalleryGrid.tsx index fc651bf..9caa5dd 100644 --- a/src/components/ImageGalleryGrid.tsx +++ b/src/components/ImageGalleryGrid.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react'; -interface Props { +interface ImageItems { images: Array<{ src: string; alt?: string; @@ -8,31 +8,25 @@ interface Props { }>; } -export default function ImageGalleryGrid({ images }: Props) { +export default function ImageGalleryGrid({ images }: ImageItems) { const [selectedIndex, setSelectedIndex] = useState(null); const closeModal = () => setSelectedIndex(null); - const showPrev = (e: React.MouseEvent) => { - e.stopPropagation(); - setSelectedIndex((prev) => (prev !== null && prev > 0 ? prev - 1 : prev)); + const prev = (e?: React.MouseEvent) => { + e?.stopPropagation(); + setSelectedIndex((i) => (i !== null && i > 0 ? i - 1 : i)); }; - const showNext = (e: React.MouseEvent) => { - e.stopPropagation(); - setSelectedIndex((prev) => - prev !== null && prev < images.length - 1 ? prev + 1 : prev - ); + const next = (e?: React.MouseEvent) => { + e?.stopPropagation(); + setSelectedIndex((i) => (i !== null && i < images.length - 1 ? i + 1 : i)); }; useEffect(() => { function handleKeyDown(event: KeyboardEvent) { if (selectedIndex === null) return; - if (event.key === 'Escape') { - closeModal; - } else if (event.key === 'ArrowLeft') { - setSelectedIndex((prev) => (prev && prev > 0 ? prev - 1 : prev)); + if (event.key === 'ArrowLeft') { + prev(); } else if (event.key === 'ArrowRight') { - setSelectedIndex((prev) => - prev !== null && prev < images.length - 1 ? prev + 1 : prev - ); + next(); } } @@ -42,11 +36,11 @@ export default function ImageGalleryGrid({ images }: Props) { return ( <> -
+
{images.map((image, idx) => ( -
setSelectedIndex(idx)} > {image.alt -
+ ))}
@@ -68,8 +62,8 @@ export default function ImageGalleryGrid({ images }: Props) { > {/* Prev arrow */} +
)} diff --git a/src/data/gear.ts b/src/data/gear.ts index f4e0b6d..73fe3fd 100644 --- a/src/data/gear.ts +++ b/src/data/gear.ts @@ -23,7 +23,6 @@ import jonsboN2Img from "../assets/jonsbon2.webp"; export interface Part { name: string; description: string; - /** string URL returned by the static import above */ image?: string; url?: string; } -- cgit v1.3.1