From 1fdfe0eee0f3eb81f6dcace540d1d73078a14ad1 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 19 Mar 2026 14:16:33 +0000 Subject: [PATCH] Add src/app/portfolio/page.tsx --- src/app/portfolio/page.tsx | 191 +++++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 src/app/portfolio/page.tsx diff --git a/src/app/portfolio/page.tsx b/src/app/portfolio/page.tsx new file mode 100644 index 0000000..51bf122 --- /dev/null +++ b/src/app/portfolio/page.tsx @@ -0,0 +1,191 @@ +"use client"; + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered'; +import FooterSimple from '@/components/sections/footer/FooterSimple'; +import { useState } from 'react'; +import { X, ChevronLeft, ChevronRight } from 'lucide-react'; + +const portfolioImages = [ + { + id: 1, + src: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AQ3abHj7nJoV9DleXcQnubKTBh/uploaded-1773929743067-11gh4u5h.jpg', + alt: 'Portfolio image 1' + }, + { + id: 2, + src: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AQ3abHj7nJoV9DleXcQnubKTBh/uploaded-1773929743068-tlxnossh.jpg', + alt: 'Portfolio image 2' + }, + { + id: 3, + src: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AQ3abHj7nJoV9DleXcQnubKTBh/uploaded-1773929743068-vld55ryg.jpg', + alt: 'Portfolio image 3' + }, + { + id: 4, + src: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AQ3abHj7nJoV9DleXcQnubKTBh/uploaded-1773929743068-jkx2y095.jpg', + alt: 'Portfolio image 4' + }, + { + id: 5, + src: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AQ3abHj7nJoV9DleXcQnubKTBh/uploaded-1773929743068-x0adnlrw.jpg', + alt: 'Portfolio image 5' + } +]; + +export default function PortfolioPage() { + const [selectedImageIndex, setSelectedImageIndex] = useState(null); + + const handlePrevious = () => { + if (selectedImageIndex !== null) { + setSelectedImageIndex( + selectedImageIndex === 0 ? portfolioImages.length - 1 : selectedImageIndex - 1 + ); + } + }; + + const handleNext = () => { + if (selectedImageIndex !== null) { + setSelectedImageIndex( + selectedImageIndex === portfolioImages.length - 1 ? 0 : selectedImageIndex + 1 + ); + } + }; + + return ( + + + +
+
+
+

Portfolio Gallery

+

Click on any image to view it in full detail

+
+ +
+ {portfolioImages.map((image, index) => ( +
setSelectedImageIndex(index)} + className="relative overflow-hidden rounded-lg cursor-pointer group h-64 md:h-72" + > + {image.alt} +
+
+
+ + + + +
+
+
+
+ ))} +
+
+
+ + {selectedImageIndex !== null && ( +
+
+ + + + +
+ {portfolioImages[selectedImageIndex].alt} +
+ + + +
+ {selectedImageIndex + 1} / {portfolioImages.length} +
+
+
+ )} + + +
+ ); +} \ No newline at end of file