Files
Dominik Ferber ba4eec7b23 replace eslint and prettier with biome (#187)
* remove @pyra/eslint-config

* wip

* wip

* convert shirt-shop-api

* convert shirt-shop

* convert snippets

* convert next-13

* convert next-14

* convert next-15

* eslint configs

* upgrade prettier

* use eslint v9

* run prettier

* resolve type-check

* adjust eslint

* drop Next.js v13

* fix next-14

Avoid accidentally using implicitly installed eslint v8

* update lockfile

* rm @eslint/eslintrc

* add @next/eslint-plugin-next

* biome

* biome fixes

* wip

* apply formatting

* tabs

* rm prettier

* spaces

* fix svelte

* update lockfile

* single quotes

* format all

* rm eslint-disable comments

* upgrade playwright

* upgrade publint

* upgrade playwright ci workflow

* try chromium headless

* try adding executablePath
2025-10-15 23:38:17 +03:00

35 lines
1.0 KiB
TypeScript

'use client';
import clsx from 'clsx';
import Image from 'next/image';
import { colorToImage, images } from '@/components/utils/images';
import { useProductDetailPageContext } from '@/components/utils/product-detail-page-context';
export function ImageGallery() {
const { color } = useProductDetailPageContext();
const orderedImages = [...images].sort((a, b) => {
if (a === colorToImage[color]) return -1;
if (b === colorToImage[color]) return 1;
return 0;
});
return (
<div className="mt-8 lg:col-span-7 lg:col-start-1 lg:row-span-3 lg:row-start-1 lg:mt-0">
<div className="grid grid-cols-1 lg:grid-cols-2 lg:grid-rows-3 lg:gap-8">
{orderedImages.map((image, index) => (
<Image
key={image.src}
alt="Product Image"
src={image}
className={clsx(
index === 0 ? 'lg:col-span-2 lg:row-span-2' : 'hidden lg:block',
'rounded-xl border border-gray-200',
)}
/>
))}
</div>
</div>
);
}