Close lightbox on escape key press

This commit is contained in:
Daniel Gasienica 2018-04-15 00:50:18 -04:00
parent 86da80fd23
commit d797ede791

View file

@ -55,6 +55,16 @@ const IconButton = ({ onClick, type }: IconButtonProps) => (
);
export class Lightbox extends React.Component<Props, {}> {
public componentDidMount() {
const useCapture = true;
document.addEventListener('keyup', this.onKeyUp, useCapture);
}
public componentWillMount() {
const useCapture = true;
document.removeEventListener('keyup', this.onKeyUp, useCapture);
}
public render() {
const { imageURL } = this.props;
return (
@ -69,4 +79,12 @@ export class Lightbox extends React.Component<Props, {}> {
</div>
);
}
private onKeyUp = (event: KeyboardEvent) => {
if (event.key !== 'Escape') {
return;
}
this.props.close();
}
}