// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 /** * @author Solution Builders */ import React from 'react'; import { Storage } from 'aws-amplify' import { Container, Row, Col, Image, Modal } from 'react-bootstrap' import Comments from './Comments' export default class Gallery extends React.Component { constructor(props) { super(props) this.loadImages = this.loadImages.bind(this); this.imageSelected = this.imageSelected.bind(this) this.state = { images: [], selectedImage: {}, showImageDetailsModal: false, isSecondaryRegion: props.isSecondaryRegion } } async componentDidMount() { await this.loadImages(); } componentWillUnmount() { this.setState({ images: [] }) } async loadImages() { const path = ''; const level = { level: 'public' }; this.setState({ images: [] }); let s3Images = await Storage.list(path, level); s3Images.map(async item => { let presignedUrl = await Storage.get(item.key, level) this.setState({ images: [ ...this.state.images, { key: item.key, presignedUrl } ] }); }); } async imageSelected(image) { this.setState({ showImageDetailsModal: true, selectedImage: image }) } render() { let { images } = this.state let imgTags = images.map(image => { return ( this.imageSelected(image)} className='thumbnail' /> ) }) return (
{imgTags} this.setState({ showImageDetailsModal: false })}>
) } }