mirror of
https://github.com/apache/superset.git
synced 2026-04-10 03:45:22 +00:00
* bumping the js libs * New linting rules * More linting * More * Done linting * npm >=4.5.0 * Bumping node * Tweaking the build * Fixing the damn build * Fixing the apps
59 lines
1.2 KiB
JavaScript
59 lines
1.2 KiB
JavaScript
import React from 'react';
|
|
import { OverlayTrigger, Tooltip } from 'react-bootstrap';
|
|
|
|
const propTypes = {
|
|
children: React.PropTypes.node,
|
|
className: React.PropTypes.string,
|
|
href: React.PropTypes.string,
|
|
onClick: React.PropTypes.func,
|
|
placement: React.PropTypes.string,
|
|
style: React.PropTypes.object,
|
|
tooltip: React.PropTypes.string,
|
|
};
|
|
const defaultProps = {
|
|
className: '',
|
|
href: '#',
|
|
onClick: () => {},
|
|
placement: 'top',
|
|
style: {},
|
|
tooltip: null,
|
|
};
|
|
|
|
|
|
class Link extends React.PureComponent {
|
|
render() {
|
|
const tooltip = (
|
|
<Tooltip id="tooltip">
|
|
{this.props.tooltip}
|
|
</Tooltip>
|
|
);
|
|
const link = (
|
|
<a
|
|
href={this.props.href}
|
|
onClick={this.props.onClick}
|
|
style={this.props.style}
|
|
className={'Link ' + this.props.className}
|
|
>
|
|
{this.props.children}
|
|
</a>
|
|
);
|
|
if (this.props.tooltip) {
|
|
return (
|
|
<OverlayTrigger
|
|
overlay={tooltip}
|
|
placement={this.props.placement}
|
|
delayShow={300}
|
|
delayHide={150}
|
|
>
|
|
{link}
|
|
</OverlayTrigger>
|
|
);
|
|
}
|
|
return link;
|
|
}
|
|
}
|
|
Link.propTypes = propTypes;
|
|
Link.defaultProps = defaultProps;
|
|
|
|
export default Link;
|