mirror of
https://github.com/vercel/flags.git
synced 2026-09-19 03:49:23 +08:00
ba4eec7b23
* 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
35 lines
1.0 KiB
TypeScript
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>
|
|
);
|
|
}
|