diff options
Diffstat (limited to 'client')
| -rw-r--r-- | client/modalImage/modal.css | 25 | ||||
| -rw-r--r-- | client/modalImage/modalImage.container.js | 18 |
2 files changed, 36 insertions, 7 deletions
diff --git a/client/modalImage/modal.css b/client/modalImage/modal.css index d9180125..9589b8f4 100644 --- a/client/modalImage/modal.css +++ b/client/modalImage/modal.css @@ -25,13 +25,34 @@ align-items: center; } .modal img { - max-width: 80vw; - max-height: 80vh; + max-width: 90vw; + max-height: 90vh; } .modal .caption { display: block; text-align: center; } +.modal .prev span, +.modal .next span, +.modal .close span { + background: #222; + border-radius: 50%; + width: 40px; + height: 40px; + text-align: center; + display: flex; + justify-content: center; + align-items: center; + box-shadow: 0 1px 2px rgba(255,255,255,0.4); + transition: all 0.2s cubic-bezier(0,0,1,1); + user-select: none; +} +.desktop .modal .prev:hover span, +.desktop .modal .prev:hover span, +.desktop .modal .prev:hover span { + background: #000; + box-shadow: 0 1px 2px rgba(255,255,255,0.6); +} .modal .prev { position: absolute; top: 0; left: 0; diff --git a/client/modalImage/modalImage.container.js b/client/modalImage/modalImage.container.js index a637deb6..5479ca5f 100644 --- a/client/modalImage/modalImage.container.js +++ b/client/modalImage/modalImage.container.js @@ -10,7 +10,7 @@ import csv from 'parse-csv' class ModalImage extends Component { state = { - visible: true, + visible: false, images: [], index: 0, } @@ -26,8 +26,11 @@ class ModalImage extends Component { if (document.activeElement && document.activeElement !== document.body) { return null } - // console.log(e.keyCode) + console.log(e.keyCode) switch (e.keyCode) { + case 27: // esc + this.close() + break case 37: // left this.prev() break @@ -41,16 +44,21 @@ class ModalImage extends Component { } loadImage(index) { + const { images } = this.state + if (!images.length) return + if (index < 0 || index >= images.length) return this.setState({ visible: true, index }) } prev() { const { index, images } = this.state + if (!images.length) return this.setState({ index: (images.length + index - 1) % images.length }) } next() { const { index, images } = this.state + if (!images.length) return this.setState({ index: (index + 1) % images.length }) } @@ -75,9 +83,9 @@ class ModalImage extends Component { {caption && <div class='caption'>{caption}</div>} </div> </div> - <div onClick={() => this.prev()}className='prev'>{'<'}</div> - <div onClick={() => this.next()} className='next'>{'>'}</div> - <div onClick={() => this.close()} className='close'>{'x'}</div> + <div onClick={() => this.prev()}className='prev'><span>{'<'}</span></div> + <div onClick={() => this.next()} className='next'><span>{'>'}</span></div> + <div onClick={() => this.close()} className='close'><span>{'×'}</span></div> </div> ) } |
