ui-bootstrap: Add Modal component.

This commit is contained in:
Ruslan Kabalin 2018-05-01 01:22:49 +01:00
parent 0bc0000cb9
commit 290b3c7ed3
2 changed files with 37 additions and 0 deletions

View file

@ -0,0 +1,36 @@
import { registerComponent } from 'meteor/vulcan:lib';
import React from 'react';
import PropTypes from 'prop-types';
import Modal from 'react-bootstrap/lib/Modal'
const BootstrapModal = ({ children, size, show, onHide, title, showCloseButton, footerContent, ...rest }) => {
const header = title ? <Modal.Header closeButton={showCloseButton}><Modal.Title>{title}</Modal.Title></Modal.Header> : showCloseButton ? <Modal.Header closeButton={showCloseButton}></Modal.Header> : null;
const footer = footerContent ? <Modal.Footer>{footerContent}</Modal.Footer> : null;
return (
<Modal bsSize={size} show={show} onHide={onHide} {...rest}>
{header}
<Modal.Body>
{children}
</Modal.Body>
{footer}
</Modal>
);
};
BootstrapModal.propTypes = {
size: PropTypes.string,
show: PropTypes.bool,
showCloseButton: PropTypes.bool,
onHide: PropTypes.func,
title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
footerContent: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
}
BootstrapModal.defaultProps = {
size: 'large',
show: false,
showCloseButton: true,
}
registerComponent('Modal', BootstrapModal);

View file

@ -14,6 +14,7 @@ import '../components/forms/FormControl.jsx'; // note: only used by old accounts
import '../components/ui/Button.jsx';
import '../components/ui/Alert.jsx';
import '../components/ui/Modal.jsx';
import '../components/ui/ModalTrigger.jsx';
import '../components/ui/TooltipTrigger.jsx';
import '../components/ui/Dropdown.jsx';