import * as React from 'react';
import Box from '@mui/material/Box';
import ImageList from '@mui/material/ImageList';
import ImageListItem from '@mui/material/ImageListItem';
import ImageListItemBar from '@mui/material/ImageListItemBar';
import IconButton from '@mui/material/IconButton';
import VisibilityIcon from '@mui/icons-material/Visibility';
import Dialog from '@mui/material/Dialog';
export default function MasonryImageList({ data }) {
const itemData = data.map((image) => {
return {
img: image.url,
title: image.titre
}
})
return (
<Box id='Mansonry'>
<ImageList variant="masonry" cols={3} gap={8}>
{itemData.map((item, index) => (
<>
<ImageListItem key={item.img}>
<img
srcSet={`${item.img}?w=248&fit=crop&auto=format&dpr=2 2x`}
src={`${item.img}?w=248&fit=crop&auto=format`}
alt={item.title}
loading="lazy"
/>
<ImageListItemBar
title={item.title}
actionIcon={
<IconButton
sx={{ color: 'rgba(255, 255, 255, 0.54)' }}
aria-label={`Agrandir ${item.title}`}
onClick={() => {
**//When clicked, display the image on the MUI Dialog**
}}
>
<VisibilityIcon />
</IconButton>
}
/>
</ImageListItem>
<Dialog onClose={handleClose} open={open}> **//How should i handle the opening and closing of each Dialog for each Image ?**
<img src={`${item.img}`} alt={item.title}
loading="lazy" />
</Dialog>
</>
))}
</ImageList>
</Box>
);
}
这个 idea 是当点击IconButton
时在屏幕前面显示图像.但由于我有多个图像,我正在努力与Dialog
组件的onClose
和open
props .