Gallery.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import styled from 'styled-components'
  2. const GalleryStyle = styled.div`
  3. border: 1px solid ${props => props.theme.lightblue};
  4. margin-bottom: 1.5em;
  5. #header {
  6. padding: 0 0.3em;
  7. background-color: ${props => props.theme.lighterblue};
  8. color: ${props => props.theme.darkblue};
  9. cursor: pointer;
  10. }
  11. `
  12. class Gallery extends React.Component {
  13. state = {
  14. galleryOpen: this.props.galleryOpen ? !!this.props.galleryOpen : true
  15. }
  16. openGallery = event => {
  17. this.setState({ galleryOpen: !this.state.galleryOpen })
  18. }
  19. render () {
  20. const { items, title } = this.props
  21. return (
  22. <GalleryStyle>
  23. <div onClick={this.openGallery} id='header'>
  24. {this.state.galleryOpen ? <span>&#8259;</span> : <span>&#8227;</span>}{' '}
  25. {items.length} {title} available (click to{' '}
  26. {this.state.galleryOpen ? 'hide' : 'see'})
  27. </div>
  28. <div
  29. style={{ display: this.state.galleryOpen ? 'block' : 'none' }}
  30. id='gallery'
  31. >
  32. {items}
  33. </div>
  34. </GalleryStyle>
  35. )
  36. }
  37. }
  38. export default Gallery