chore: fix all linting issues and optimize components
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 32s
Build & Deploy / 🧪 QA (push) Failing after 1m19s
Build & Deploy / 🏗️ Build (push) Has been skipped
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 1s

This commit is contained in:
2026-02-11 10:40:57 +01:00
parent a12759d507
commit c111efae1a
23 changed files with 275 additions and 59 deletions

View File

@@ -1,6 +1,5 @@
'use client';
import React, { useState, useEffect } from 'react';
import React from 'react';
import Image from 'next/image';
import { useTranslations } from 'next-intl';
import { Section, Container, Heading } from '../../components/ui';
@@ -19,19 +18,9 @@ export default function GallerySection() {
'/uploads/2024/12/DSC07768-Large.webp',
];
const [lightboxOpen, setLightboxOpen] = useState(false);
const [lightboxIndex, setLightboxIndex] = useState(0);
useEffect(() => {
const photoParam = searchParams.get('photo');
if (photoParam !== null) {
const index = parseInt(photoParam, 10);
if (!isNaN(index) && index >= 0 && index < images.length) {
if (lightboxIndex !== index) setLightboxIndex(index);
if (!lightboxOpen) setLightboxOpen(true);
}
}
}, [searchParams, images.length, lightboxIndex, lightboxOpen]);
const photoParam = searchParams.get('photo');
const lightboxOpen = photoParam !== null;
const lightboxIndex = photoParam ? parseInt(photoParam, 10) : 0;
return (
<Section className="bg-white text-white py-32">
@@ -45,8 +34,10 @@ export default function GallerySection() {
<button
key={idx}
onClick={() => {
setLightboxIndex(idx);
setLightboxOpen(true);
const params = new URLSearchParams(searchParams.toString());
params.set('photo', idx.toString());
window.history.replaceState(null, '', `?${params.toString()}`);
// Since we're using derive-from-url, the component will re-render with the new value
}}
className="relative aspect-[4/3] overflow-hidden rounded-3xl group shadow-lg hover:shadow-2xl transition-all duration-700 cursor-pointer"
>
@@ -68,7 +59,11 @@ export default function GallerySection() {
isOpen={lightboxOpen}
images={images}
initialIndex={lightboxIndex}
onClose={() => setLightboxOpen(false)}
onClose={() => {
const params = new URLSearchParams(searchParams.toString());
params.delete('photo');
window.history.replaceState(null, '', `?${params.toString()}`);
}}
/>
</Section>
);