qmining-page/src/components/modal.js
2021-03-05 17:07:37 +01:00

53 lines
1.1 KiB
JavaScript

import React, { useEffect } from 'react'
import styles from './modal.module.css'
export default function Modal(props) {
const { closeClick } = props
const keyHandler = (event) => {
if (event.key === 'Escape' && closeClick) {
closeClick()
}
}
useEffect(() => {
document.addEventListener('keydown', keyHandler)
return () => {
document.removeEventListener('keydown', keyHandler)
}
}, [])
return (
<div
style={{
cursor: closeClick ? 'pointer' : 'auto',
}}
onClick={() => {
if (closeClick) {
closeClick()
}
}}
className={styles.modal}
>
<div
onClick={(event) => {
event.stopPropagation()
}}
className={styles.modalContent}
>
{closeClick && (
<div
className={styles.close}
onClick={() => {
closeClick()
}}
>
</div>
)}
<div className={styles.children}>{props.children}</div>
</div>
</div>
)
}