mirror of
https://github.com/vercel/commerce.git
synced 2025-07-24 02:31:24 +00:00
.github
.vscode
app
components
breadcrumb
cart
engine-sizes
filters
form
grid
home-page
icons
layout
manufacturers-grid
models
orders
page
accordion-block-item.tsx
accordion-block.tsx
category-preview.tsx
icon-with-text-block.tsx
image-display.tsx
image-with-text-block.tsx
layout.ts
mini-icon-block.tsx
page-content.tsx
rich-text-display.tsx
text-block.tsx
plp
product
profile
transmission-codes
ui
banner.tsx
display-tabs.tsx
divider.tsx
faq.tsx
hero-icon.tsx
hero.tsx
loading-dots.tsx
logo-square.tsx
opengraph-image.tsx
price.tsx
prose.tsx
side-dialog.tsx
spinner.tsx
tag.tsx
tooltip.tsx
contexts
fonts
hooks
lib
public
.env.example
.eslintrc.js
.gitignore
.nvmrc
.prettierignore
README.md
license.md
middleware.ts
next.config.js
package.json
pnpm-lock.yaml
postcss.config.js
prettier.config.js
tailwind.config.js
tsconfig.json
30 lines
680 B
TypeScript
30 lines
680 B
TypeScript
import { getImage } from 'lib/shopify';
|
|
import Image from 'next/image';
|
|
import { twMerge } from 'tailwind-merge';
|
|
|
|
const ImageDisplay = async ({
|
|
fileId,
|
|
title,
|
|
className,
|
|
...props
|
|
}: {
|
|
fileId?: string;
|
|
title: string;
|
|
className?: string;
|
|
} & Omit<React.ComponentProps<typeof Image>, 'src' | 'alt'>) => {
|
|
if (!fileId) return null;
|
|
const image = await getImage(fileId);
|
|
return (
|
|
<Image
|
|
src={image.url}
|
|
alt={image.altText || `Display Image for ${title} section`}
|
|
width={image.width}
|
|
height={image.height}
|
|
className={twMerge('h-full w-full object-contain', className)}
|
|
{...props}
|
|
/>
|
|
);
|
|
};
|
|
|
|
export default ImageDisplay;
|