'use client' import type { FC } from 'react' import { cn } from '@langgenius/dify-ui/cn' import * as React from 'react' import { useState } from 'react' import ImagePreview from '@/app/components/base/image-uploader/image-preview' import s from './style.module.css' type Props = Readonly<{ srcs: string[] }> const getWidthStyle = (imgNum: number) => { if (imgNum === 1) { return { maxWidth: '100%', } } if (imgNum === 2 || imgNum === 4) { return { width: 'calc(50% - 4px)', } } return { width: 'calc(33.3333% - 5.3333px)', } } const ImageGallery: FC = ({ srcs }) => { const [imagePreviewUrl, setImagePreviewUrl] = useState('') const imgNum = srcs.length const imgStyle = getWidthStyle(imgNum) return (
{srcs.map((src, index) => !src ? null : ( setImagePreviewUrl(src)} onError={(e) => e.currentTarget.remove()} /> ), )} {imagePreviewUrl && ( setImagePreviewUrl('')} title="" /> )}
) } export default React.memo(ImageGallery)