import React from 'react'; import cn from 'classnames'; import styles from './slideModal.module.css'; export default class SlideModal extends React.PureComponent { // componentDidMount() { // document.addEventListener('keydown', this.keyPressHandler); // } // componentWillUnmount() { // document.removeEventListener('keydown', this.keyPressHandler); // } componentDidUpdate(prevProps) { if (prevProps.isDisplayed !== this.props.isDisplayed) { if (this.props.isDisplayed) { document.addEventListener('keydown', this.keyPressHandler); } else { document.removeEventListener('keydown', this.keyPressHandler); } } } keyPressHandler = (e) => { if (e.key === 'Escape' && this.props.onClose) { this.props.onClose(false); // false for togglers (?) } }; render() { const { title, subtitle, onClose, content, isDisplayed, size = 'big', detailContent, right = false, bgColor = 'white', overlay = true, } = this.props; return (
{title && (
{title} {subtitle &&
{subtitle}
}
)} {content}
{detailContent}
); } }