From 290b3c7ed3f7c63d1ce91d368315deb22d7b4225 Mon Sep 17 00:00:00 2001 From: Ruslan Kabalin Date: Tue, 1 May 2018 01:22:49 +0100 Subject: [PATCH] ui-bootstrap: Add Modal component. --- .../lib/components/ui/Modal.jsx | 36 +++++++++++++++++++ .../lib/modules/components.js | 1 + 2 files changed, 37 insertions(+) create mode 100644 packages/vulcan-ui-bootstrap/lib/components/ui/Modal.jsx diff --git a/packages/vulcan-ui-bootstrap/lib/components/ui/Modal.jsx b/packages/vulcan-ui-bootstrap/lib/components/ui/Modal.jsx new file mode 100644 index 000000000..39e09e340 --- /dev/null +++ b/packages/vulcan-ui-bootstrap/lib/components/ui/Modal.jsx @@ -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 ? {title} : showCloseButton ? : null; + const footer = footerContent ? {footerContent} : null; + return ( + + {header} + + {children} + + {footer} + + ); +}; + +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); diff --git a/packages/vulcan-ui-bootstrap/lib/modules/components.js b/packages/vulcan-ui-bootstrap/lib/modules/components.js index 9dc387684..b6a1df38f 100644 --- a/packages/vulcan-ui-bootstrap/lib/modules/components.js +++ b/packages/vulcan-ui-bootstrap/lib/modules/components.js @@ -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';