Samantha Kellow 08b3b820e4 Squashed commit of the following:
commit b10e930476d8bbe82f679f3ae8ed44cea733898f
Merge: a2c34aa 8531476
Author: Sammii <sammii.h@icloud.com>
Date:   Wed Apr 24 20:05:09 2024 +0100

    Merge pull request #1 from Sammii-HK/feat/restyle-store

    Feat/restyle store

commit 85314765721447f5612cb59b7e668653606e7b7b
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 20:03:12 2024 +0100

    responsive design app page carousel

commit d5563a7355c2581c29ebf3f11799e1047c0c29dd
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 19:57:47 2024 +0100

    updating mobile carousel tile size

commit 9976d0d427ea92dab510bface5da9a4e89feabee
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 19:30:07 2024 +0100

    updating combox import

commit f6a365df8239d26d5feb37cf53d43632ab7c90c4
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 19:16:08 2024 +0100

    styling label price

commit cf89e3b0648bb07ed038f872183bd7ecea064df0
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 19:08:16 2024 +0100

    styling accordians and drop downs

commit 49f3776ba8894d5fd2aa6b2fea0632f73d6ae093
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 18:53:14 2024 +0100

    updating search and carousel styling

commit 7666a25f918a1b53a088dd9240077af5b9013712
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 18:37:29 2024 +0100

    styling product description

commit b8280101ad367abfe48aed4fee8ef32ed1fd5d67
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 18:18:11 2024 +0100

    removing `-full` from all rounded elements

commit 77480edd79327898aa2c417d34d231db1d593736
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 18:15:27 2024 +0100

    styling cart component

commit 3ec0c4d5679b20c66442e5002225cbefe927a13e
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 18:06:53 2024 +0100

    updating styling

commit efcab218934934edea629406b823fd2b2ac3d193
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 18:06:43 2024 +0100

    updating carousel for correct types

commit b14934af8489a6294f1c47a3a41d40d0a7565550
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 17:57:31 2024 +0100

    styling tile

commit 0c72e76bad994317d5e39faedfc4aade9a368fe7
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 17:56:50 2024 +0100

    styling label

commit ca24a30543ddfbdd345ac405b14e0541a9af1020
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 17:54:54 2024 +0100

    update main app layout for dark view

commit 57c1c4cac9a15c2091f652f53f7bb85a6a5b613a
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 17:52:53 2024 +0100

    commenting out weight li on description content

commit d2f0ac2041b04117e24db0316b470646489aca07
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 17:52:02 2024 +0100

    updating carousel to new style

commit 545717006d7f25f36e71b67873d01316aeeafcf9
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 17:50:55 2024 +0100

    updating getAllLiveProducts to handle no param

commit 0bf97ecdf69b4f7a4aa00c090e09e613fa1aba8a
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 17:50:39 2024 +0100

    styling and adjusting footer & navbar

commit 18200b4e848affe01ca9014bdf8ac841ce176114
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 17:50:00 2024 +0100

    updating cart to bag

commit 82c30cdda8d38b3111b539a34127155bb82612d5
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 17:48:32 2024 +0100

    SKUs page file check

commit e88a45b9d51096b3250062708d5ef1a49138258c
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 17:47:30 2024 +0100

    updatibng Prose import path

commit 5e81519f983e58758d865b2905f279f34afb67a4
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Wed Apr 24 17:45:58 2024 +0100

    updating app page metadata

commit 9c9a5c035b245d8811a601ba2dd134c5c5f124d7
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Tue Apr 23 21:25:05 2024 +0100

    making borders muted

commit 8a40e08e41a7fdad172e5ffaebb7f791ec66f4e5
Author: Samantha Kellow <sammii.h@icloud.com>
Date:   Tue Apr 23 20:37:35 2024 +0100

    moving ui components to own folder 🧹
2024-04-25 14:58:44 +01:00

85 lines
3.0 KiB
TypeScript

'use client';
import { ArrowLeftIcon, ArrowRightIcon } from '@heroicons/react/24/outline';
import { GridTileImage } from 'components/grid/tile';
import Image from 'next/image';
import { useState } from 'react';
export function Gallery({ images }: { images: { src: string; altText: string }[] }) {
const [currentImageIndex, setCurrentImageIndex] = useState(0);
function handleNavigate(direction: 'next' | 'previous') {
if (direction === 'next') {
setCurrentImageIndex(currentImageIndex + 1 < images.length ? currentImageIndex + 1 : 0);
} else {
setCurrentImageIndex(currentImageIndex === 0 ? images.length - 1 : currentImageIndex - 1);
}
}
const buttonClassName =
'h-full px-6 transition-all ease-in-out hover:scale-110 hover:text-black dark:hover:text-white';
return (
<div className="lg:mr-8 h-full w-full justify-center">
<div className="relative mb-2 lg:mb-12 aspect-square overflow-hidden flex lg:w-full lg:h-auto">
{images[currentImageIndex] && (
<Image
className="relative w-full h-full object-cover"
height={500}
width={500}
alt={images[currentImageIndex]?.altText as string}
src={images[currentImageIndex]?.src as string}
priority={true}
/>
)}
{images.length > 1 ? (
<div className="bottom-2 z-50 flex w-full justify-center absolute">
<div className="mx-auto flex h-8 items-center rounded border border-neutral-500 bg-neutral-500/30 text-neutral-200 backdrop-blur dark:border-black dark:bg-neutral-900/80">
<button
aria-label="Previous product image"
onClick={() => handleNavigate('previous')}
className={buttonClassName}
>
<ArrowLeftIcon className="h-5" />
</button>
<div className="mx-1 h-6 w-px bg-neutral-600"></div>
<button
aria-label="Next product image"
onClick={() => handleNavigate('next')}
className={buttonClassName}
>
<ArrowRightIcon className="h-5" />
</button>
</div>
</div>
) : null}
</div>
{images.length > 1 ? (
<div className="flex items-center justify-center gap-2 overflow-auto py-1 md:pl-0">
{images.map((image, index) => {
const isActive = index === currentImageIndex;
return (
<button
aria-label="Enlarge product image"
key={image.src}
className="h-20 w-20"
onClick={() => setCurrentImageIndex(index)}
>
<GridTileImage
alt={image.altText}
src={image.src}
width={50}
height={50}
active={isActive}
/>
</button>
);
})}
</div>
) : null}
</div>
);
}