summaryrefslogtreecommitdiff
path: root/src/components/shared/BaseModal.tsx
blob: f7841f8c2b131d7c4e2f65ae0a7517eeeb15736e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import cx from 'clsx';
import * as React from 'react';

import Modal from '../Modal';

import modalStyle from '../Modal.module.scss';

import s from './BaseModal.module.scss';

const { useMemo } = React;

type BaseModalProps = {
  isOpen: boolean;
  onRequestClose: (...args: any[]) => unknown;
  children: React.ReactNode;
};

export default function BaseModal({ isOpen, onRequestClose, children }: BaseModalProps) {
  const className = useMemo(
    () => ({
      base: cx(modalStyle.content, s.cnt),
      afterOpen: s.afterOpen,
      beforeClose: '',
    }),
    []
  );
  return (
    <Modal
      isOpen={isOpen}
      onRequestClose={onRequestClose}
      className={className}
      overlayClassName={cx(modalStyle.overlay, s.overlay)}
    >
      {children}
    </Modal>
  );
}