Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3179 | Rev 3585 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3179 Rev 3584
Línea 1... Línea 1...
1
import React from 'react'
1
import React from 'react';
2
import { useSelector } from 'react-redux'
2
import { useSelector } from 'react-redux';
3
import { Button } from '@mui/material'
3
import { Button, IconButton } from '@mui/material';
4
import BootstrapModal from 'react-bootstrap/Modal'
4
import { Modal as MuiModal } from '@mui/material';
-
 
5
import { Close } from '@mui/icons-material';
Línea 5... Línea 6...
5
 
6
 
6
import Spinner from '../Spinner'
-
 
7
 
7
import Spinner from '../Spinner';
Línea 8... Línea 8...
8
import styles from './Modal.module.scss'
8
import Widget from '../Widget';
9
 
9
 
10
const Modal = ({
10
const Modal = ({
11
  show = false,
11
  show = false,
12
  title = '',
12
  title = '',
13
  onAccept,
-
 
14
  onClose,
13
  onAccept,
15
  onShow,
14
  onClose,
16
  onReject = null,
15
  onReject = null,
17
  labelAccept = '',
16
  labelAccept = '',
18
  labelReject = '',
-
 
19
  size = 'md',
-
 
20
  centered = true,
17
  labelReject = '',
21
  animation = true,
18
  size = 'md',
22
  showFooter = true,
19
  showFooter = true,
23
  dialogClassName,
20
  dialogClassName,
24
  loading = false,
21
  loading = false,
25
  children,
22
  children,
26
  formId = ''
23
  formId = ''
Línea 27... Línea 24...
27
}) => {
24
}) => {
28
  const labels = useSelector(({ intl }) => intl.labels)
25
  const labels = useSelector(({ intl }) => intl.labels);
29
 
26
 
30
  return (
27
  return (
31
    <BootstrapModal
28
    <MuiModal open={show} onClose={onClose}>
32
      animation={animation}
29
      <Widget
33
      className={dialogClassName}
30
        styles={{
-
 
31
          position: 'absolute',
-
 
32
          top: '50%',
34
      centered={centered}
33
          left: '50%',
35
      show={show}
34
          transform: 'translate(-50%, -50%)',
36
      size={size}
35
          width: size === 'sm' ? '300px' : size === 'md' ? '500px' : '700px',
37
      onHide={onClose}
36
          maxHeight: '90vh',
38
      onShow={onShow}
37
          overflowY: 'auto'
-
 
38
        }}
-
 
39
        className={dialogClassName}
39
      autoFocus={false}
40
      >
40
      enforceFocus={false}
41
        <Widget.Header
41
    >
42
          title={title}
-
 
43
          renderAction={() => (
-
 
44
            <IconButton onClick={onClose}>
-
 
45
              <Close />
42
      <BootstrapModal.Header className={styles['modal-header']} closeButton>
46
            </IconButton>
43
        <BootstrapModal.Title>{title}</BootstrapModal.Title>
47
          )}
44
      </BootstrapModal.Header>
48
        />
45
 
49
 
46
      <BootstrapModal.Body className={styles['modal-content']}>
50
        <Widget.Body styles={{ position: 'relative' }}>
47
        {loading && <Spinner absolute />}
51
          {loading && <Spinner absolute />}
48
        {children}
52
          {children}
49
      </BootstrapModal.Body>
53
        </Widget.Body>
50
 
54
 
51
      {showFooter ? (
55
        {showFooter && (
52
        <BootstrapModal.Footer className={styles['modal-footer']}>
56
          <Widget.Actions styles={{ display: 'flex', justifyContent: 'flex-start', gap: 1 }}>
53
          <Button
57
            <Button
54
            color='primary'
58
              color='primary'
55
            onClick={onAccept}
59
              onClick={onAccept}
56
            disabled={loading}
60
              disabled={loading}
57
            form={formId}
61
              form={formId}
58
            type={formId ? 'submit' : 'button'}
62
              type={formId ? 'submit' : 'button'}
59
          >
63
            >
60
            {labelAccept || labels.accept}
64
              {labelAccept || labels.accept}
61
          </Button>
65
            </Button>
62
          <Button color='secondary' onClick={onReject || onClose}>
66
            <Button color='secondary' onClick={onReject || onClose}>
63
            {labelReject || labels.cancel}
67
              {labelReject || labels.cancel}
-
 
68
            </Button>
64
          </Button>
69
          </Widget.Actions>
65
        </BootstrapModal.Footer>
70
        )}
66
      ) : null}
71
      </Widget>
Línea 67... Línea 72...
67
    </BootstrapModal>
72
    </MuiModal>