Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3171 | Rev 3175 | 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']}>
47
        {children}
2722 stevensc 48
 
3167 stevensc 49
        {loading ? <Spinner absolute /> : null}
1426 stevensc 50
      </BootstrapModal.Body>
51
 
52
      {showFooter ? (
53
        <BootstrapModal.Footer className={styles['modal-footer']}>
3171 stevensc 54
          <Button
55
            color='primary'
56
            onClick={onAccept}
57
            disabled={loading}
58
            form={formId}
3172 stevensc 59
            type={formId ? 'submit' : 'button'}
3171 stevensc 60
          >
1567 stevensc 61
            {labelAccept || labels.accept}
62
          </Button>
3156 stevensc 63
          <Button color='secondary' onClick={onReject || onClose}>
1567 stevensc 64
            {labelReject || labels.cancel}
65
          </Button>
1426 stevensc 66
        </BootstrapModal.Footer>
67
      ) : null}
68
    </BootstrapModal>
69
  )
70
}
71
 
72
export default Modal