mirror of
https://github.com/oceanprotocol/market.git
synced 2024-12-02 05:57:29 +01:00
42 lines
901 B
TypeScript
42 lines
901 B
TypeScript
import React, { ReactElement, ReactNode } from 'react'
|
|
import ReactModal from 'react-modal'
|
|
import styles from './Modal.module.css'
|
|
|
|
if (process.env.NODE_ENV !== 'test') ReactModal.setAppElement('#___gatsby')
|
|
|
|
export interface ModalProps extends ReactModal.Props {
|
|
title: string
|
|
onToggleModal: () => void
|
|
children: ReactNode
|
|
}
|
|
|
|
export default function Modal({
|
|
title,
|
|
onToggleModal,
|
|
children,
|
|
...props
|
|
}: ModalProps): ReactElement {
|
|
return (
|
|
<ReactModal
|
|
contentLabel={title}
|
|
className={styles.modal}
|
|
overlayClassName={styles.modalOverlay}
|
|
{...props}
|
|
>
|
|
<button
|
|
className={styles.close}
|
|
onClick={onToggleModal}
|
|
data-testid="closeModal"
|
|
>
|
|
×
|
|
</button>
|
|
|
|
<header className={styles.header}>
|
|
<h2 className={styles.title}>{title}</h2>
|
|
</header>
|
|
|
|
{children}
|
|
</ReactModal>
|
|
)
|
|
}
|