Rev 3584 | Rev 3679 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React from 'react';import { useSelector } from 'react-redux';import { Button, IconButton } from '@mui/material';import { Modal as MuiModal } from '@mui/material';import { Close } from '@mui/icons-material';import Spinner from '../Spinner';import Widget from '../Widget';const Modal = ({show = false,title = '',onAccept,onClose,onReject = null,labelAccept = '',labelReject = '',size = 'md',showFooter = true,dialogClassName,loading = false,children,formId = ''}) => {const labels = useSelector(({ intl }) => intl.labels);return (<MuiModal open={show} onClose={onClose}><Widgetstyles={{position: 'absolute',top: '50%',left: '50%',transform: 'translate(-50%, -50%)',width: size === 'sm' ? '300px' : size === 'md' ? '500px' : '700px',maxHeight: '90vh',overflowY: 'auto'}}className={dialogClassName}><Widget.Headertitle={title}renderAction={() => (<IconButton onClick={onClose}><Close /></IconButton>)}/><Widget.Body styles={{ position: 'relative' }}>{loading && <Spinner absolute />}{children}</Widget.Body>{showFooter && (<Widget.Footer styles={{ display: 'flex', justifyContent: 'flex-start', gap: 1 }}><Buttoncolor='primary'onClick={onAccept}disabled={loading}form={formId}type={formId ? 'submit' : 'button'}>{labelAccept || labels.accept}</Button><Button color='secondary' onClick={onReject || onClose}>{labelReject || labels.cancel}</Button></Widget.Footer>)}</Widget></MuiModal>);};export default Modal;