Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3160 | Rev 3171 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
2722 stevensc 1
import React from 'react'
1426 stevensc 2
import { useSelector } from 'react-redux'
3167 stevensc 3
import { Button } from '@mui/material'
1426 stevensc 4
import BootstrapModal from 'react-bootstrap/Modal'
5
 
2722 stevensc 6
import Spinner from '../Spinner'
1426 stevensc 7
 
8
import styles from './Modal.module.scss'
9
 
10
const Modal = ({
11
  show = false,
12
  title = '',
1916 stevensc 13
  onAccept = () => null,
1426 stevensc 14
  onClose = () => {},
15
  onShow = () => {},
16
  onReject = null,
17
  labelAccept = '',
18
  labelReject = '',
19
  size = 'md',
20
  centered = true,
21
  animation = true,
22
  showFooter = true,
1960 stevensc 23
  dialogClassName,
2722 stevensc 24
  loading = false,
1426 stevensc 25
  children
26
}) => {
27
  const labels = useSelector(({ intl }) => intl.labels)
28
 
29
  return (
30
    <BootstrapModal
31
      animation={animation}
1960 stevensc 32
      className={dialogClassName}
1426 stevensc 33
      centered={centered}
34
      show={show}
35
      size={size}
36
      onHide={onClose}
37
      onShow={onShow}
2556 stevensc 38
      autoFocus={false}
39
      enforceFocus={false}
1426 stevensc 40
    >
41
      <BootstrapModal.Header className={styles['modal-header']} closeButton>
42
        <BootstrapModal.Title>{title}</BootstrapModal.Title>
43
      </BootstrapModal.Header>
44
 
45
      <BootstrapModal.Body className={styles['modal-content']}>
46
        {children}
2722 stevensc 47
 
3167 stevensc 48
        {loading ? <Spinner absolute /> : null}
1426 stevensc 49
      </BootstrapModal.Body>
50
 
51
      {showFooter ? (
52
        <BootstrapModal.Footer className={styles['modal-footer']}>
3156 stevensc 53
          <Button color='primary' onClick={onAccept} disabled={loading}>
1567 stevensc 54
            {labelAccept || labels.accept}
55
          </Button>
3156 stevensc 56
          <Button color='secondary' onClick={onReject || onClose}>
1567 stevensc 57
            {labelReject || labels.cancel}
58
          </Button>
1426 stevensc 59
        </BootstrapModal.Footer>
60
      ) : null}
61
    </BootstrapModal>
62
  )
63
}
64
 
65
export default Modal