summaryrefslogtreecommitdiff
path: root/client/modalImage
diff options
context:
space:
mode:
Diffstat (limited to 'client/modalImage')
-rw-r--r--client/modalImage/modal.css25
-rw-r--r--client/modalImage/modalImage.container.js18
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>
)
}