about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/components/components/lightbox.jsx12
1 files changed, 12 insertions, 0 deletions
diff --git a/app/assets/javascripts/components/components/lightbox.jsx b/app/assets/javascripts/components/components/lightbox.jsx
index 36f078a3a..29822ccb3 100644
--- a/app/assets/javascripts/components/components/lightbox.jsx
+++ b/app/assets/javascripts/components/components/lightbox.jsx
@@ -40,6 +40,18 @@ const Lightbox = React.createClass({
 
   mixins: [PureRenderMixin],
 
+  componentDidMount () {
+    this._listener = window.addEventListener('keyup', e => {
+      if (e.key === 'Escape') {
+        this.props.onCloseClicked();
+      }
+    });
+  },
+
+  componentWillUnmount () {
+    window.removeEventListener(this._listener);
+  },
+
   render () {
     const { intl, isVisible, onOverlayClicked, onCloseClicked, children } = this.props;