Gallery.js 769 B

123456789101112131415161718192021222324252627282930313233343536
  1. import styled from 'styled-components'
  2. const GalleryStyle = styled.div`
  3. border: 1px solid grey;
  4. #header {
  5. background: lightgray;
  6. cursor: pointer
  7. }
  8. `
  9. class Gallery extends React.Component {
  10. state = {
  11. galleryOpen: false
  12. }
  13. openGallery = event => {
  14. this.setState({ galleryOpen: !this.state.galleryOpen })
  15. }
  16. render() {
  17. const { items, title } = this.props
  18. return (
  19. <GalleryStyle>
  20. <div onClick={this.openGallery} id="header">
  21. {items.length} {title} available (click to {this.state.galleryOpen ? 'hide' : 'see'})
  22. </div>
  23. <div style={{ display: this.state.galleryOpen ? 'block' : 'none' }} id="gallery">
  24. {items}
  25. </div>
  26. </GalleryStyle>
  27. )
  28. }
  29. }
  30. export default Gallery