Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3175 | Rev 3584 | 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 = '',
3172 stevensc 13
  onAccept,
14
  onClose,
15
  onShow,
1426 stevensc 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,
3171 stevensc 25
  children,
26
  formId = ''
1426 stevensc 27
}) => {
28
  const labels = useSelector(({ intl }) => intl.labels)
29
 
30
  return (
31
    <BootstrapModal
32
      animation={animation}
1960 stevensc 33
      className={dialogClassName}
1426 stevensc 34
      centered={centered}
35
      show={show}
36
      size={size}
37
      onHide={onClose}
38
      onShow={onShow}
2556 stevensc 39
      autoFocus={false}
40
      enforceFocus={false}
1426 stevensc 41
    >
42
      <BootstrapModal.Header className={styles['modal-header']} closeButton>
43
        <BootstrapModal.Title>{title}</BootstrapModal.Title>
44
      </BootstrapModal.Header>
45
 
46
      <BootstrapModal.Body className={styles['modal-content']}>
3175 stevensc 47
        {loading && <Spinner absolute />}
1426 stevensc 48
        {children}
49
      </BootstrapModal.Body>
50
 
51
      {showFooter ? (
52
        <BootstrapModal.Footer className={styles['modal-footer']}>
3171 stevensc 53
          <Button
54
            color='primary'
55
            onClick={onAccept}
56
            disabled={loading}
57
            form={formId}
3172 stevensc 58
            type={formId ? 'submit' : 'button'}
3171 stevensc 59
          >
1567 stevensc 60
            {labelAccept || labels.accept}
61
          </Button>
3156 stevensc 62
          <Button color='secondary' onClick={onReject || onClose}>
1567 stevensc 63
            {labelReject || labels.cancel}
64
          </Button>
1426 stevensc 65
        </BootstrapModal.Footer>
66
      ) : null}
67
    </BootstrapModal>
68
  )
69
}
70
 
71
export default Modal