Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3694 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import React, { lazy, Suspense } from 'react';
import { createPortal } from 'react-dom';
import Spinner from '../Spinner';
const GlobalModal = lazy(() => import('./GlobalModal'));

const Modal = ({
  show = true,
  title = '',
  onAccept,
  onClose,
  onReject = null,
  labelAccept = 'Aceptar',
  labelReject = 'Cancelar',
  showFooter = true,
  dialogClassName,
  children,
  formId,
  loading,
  size = 'md'
}) => {
  if (!show) return null;

  const modalContainer = document.getElementById('modal');

  if (!modalContainer) return null;

  return createPortal(
    <Suspense fallback={<Spinner />}>
      <GlobalModal
        title={title}
        onAccept={onAccept}
        onClose={onClose}
        onReject={onReject}
        labelAccept={labelAccept}
        labelReject={labelReject}
        showFooter={showFooter}
        dialogClassName={dialogClassName}
        formId={formId}
        loading={loading}
        size={size}
      >
        {children}
      </GlobalModal>
    </Suspense>,
    modalContainer
  );
};

export default Modal;