mirror of
https://github.com/apache/superset.git
synced 2026-04-20 16:44:46 +00:00
[WiP] rename project from Caravel to Superset (#1576)
* Change in files * Renamin files and folders * cleaning up a single piece of lint * Removing boat picture from docs * add superset word mark * Update rename note in docs * Fixing images * Pinning datatables * Fixing issues with mapbox-gl * Forgot to rename one file * Linting * v0.13.0 * adding pyyaml to dev-reqs
This commit is contained in:
committed by
GitHub
parent
973537fd9a
commit
15b67b2c6c
86
superset/assets/javascripts/components/ModalTrigger.jsx
Normal file
86
superset/assets/javascripts/components/ModalTrigger.jsx
Normal file
@@ -0,0 +1,86 @@
|
||||
import React, { PropTypes } from 'react';
|
||||
import { Modal } from 'react-bootstrap';
|
||||
import Button from './Button';
|
||||
import cx from 'classnames';
|
||||
|
||||
const propTypes = {
|
||||
triggerNode: PropTypes.node.isRequired,
|
||||
modalTitle: PropTypes.node.isRequired,
|
||||
modalBody: PropTypes.node, // not required because it can be generated by beforeOpen
|
||||
beforeOpen: PropTypes.func,
|
||||
onExit: PropTypes.func,
|
||||
isButton: PropTypes.bool,
|
||||
bsSize: PropTypes.string,
|
||||
className: PropTypes.string,
|
||||
tooltip: PropTypes.string,
|
||||
};
|
||||
|
||||
const defaultProps = {
|
||||
beforeOpen: () => {},
|
||||
onExit: () => {},
|
||||
isButton: false,
|
||||
bsSize: null,
|
||||
className: '',
|
||||
};
|
||||
|
||||
export default class ModalTrigger extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
showModal: false,
|
||||
};
|
||||
this.open = this.open.bind(this);
|
||||
this.close = this.close.bind(this);
|
||||
}
|
||||
|
||||
close() {
|
||||
this.setState({ showModal: false });
|
||||
}
|
||||
|
||||
open(e) {
|
||||
e.preventDefault();
|
||||
this.props.beforeOpen();
|
||||
this.setState({ showModal: true });
|
||||
}
|
||||
renderModal() {
|
||||
return (
|
||||
<Modal
|
||||
show={this.state.showModal}
|
||||
onHide={this.close}
|
||||
onExit={this.props.onExit}
|
||||
bsSize={this.props.bsSize}
|
||||
className={this.props.className}
|
||||
>
|
||||
<Modal.Header closeButton>
|
||||
<Modal.Title>{this.props.modalTitle}</Modal.Title>
|
||||
</Modal.Header>
|
||||
<Modal.Body>
|
||||
{this.props.modalBody}
|
||||
</Modal.Body>
|
||||
</Modal>
|
||||
);
|
||||
}
|
||||
|
||||
render() {
|
||||
const classNames = cx({
|
||||
'btn btn-default btn-sm': this.props.isButton,
|
||||
});
|
||||
if (this.props.isButton) {
|
||||
return (
|
||||
<Button tooltip={this.props.tooltip} onClick={this.open}>
|
||||
{this.props.triggerNode}
|
||||
{this.renderModal()}
|
||||
</Button>
|
||||
);
|
||||
}
|
||||
return (
|
||||
<span className={classNames} onClick={this.open} role="button">
|
||||
{this.props.triggerNode}
|
||||
{this.renderModal()}
|
||||
</span>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
ModalTrigger.propTypes = propTypes;
|
||||
ModalTrigger.defaultProps = defaultProps;
|
||||
Reference in New Issue
Block a user