Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 1231 | Autoría | Ultima modificación | Ver Log |

import React from 'react'
import BootstrapModal from 'react-bootstrap/Modal'
import { useSelector } from 'react-redux'

import { ButtonPrimary, ButtonTertiary } from '@buttons'

const Modal = ({
  show = false,
  title = '',
  onAccept = () => {},
  onReject = () => {},
  onClose = () => {},
  onShow = () => {},
  labelAccept = '',
  labelReject = '',
  size = 'md',
  backdrop = 'static',
  centered = true,
  animation = true,
  showFooter = true,
  dialogClassName,
  children
}) => {
  const labels = useSelector(({ intl }) => intl.labels)

  return (
    <BootstrapModal
      animation={animation}
      backdrop={backdrop}
      className={dialogClassName}
      centered={centered}
      show={show}
      size={size}
      onHide={onClose}
      onShow={onShow}
    >
      <BootstrapModal.Header closeButton>
        <BootstrapModal.Title>{title}</BootstrapModal.Title>
      </BootstrapModal.Header>

      <BootstrapModal.Body>{children}</BootstrapModal.Body>

      {showFooter ? (
        <BootstrapModal.Footer>
          <ButtonPrimary
            label={labelAccept || labels.accept}
            onClick={onAccept}
          />
          <ButtonTertiary
            label={labelReject || labels.cancel}
            onClick={onReject}
          />
        </BootstrapModal.Footer>
      ) : null}
    </BootstrapModal>
  )
}

export default Modal