@talend/react-components
Version:
Set of react components.
51 lines (50 loc) • 1.62 kB
JavaScript
import PropTypes from 'prop-types';
import PieChartIcon from './PieChartIcon.component';
import PieChartButton from './PieChartButton.component';
import TooltipTrigger from '../TooltipTrigger';
import OverlayTrigger from '../OverlayTrigger';
/**
* This function wrap the button with a TooltipTrigger
* @param {Element} btn the button element ( may be wrapped by overlay trigger )
* @param {boolean} tooltip tell if the tooltip has to be showed
* @param {string} label the label to show on the tooltip
* @param {string} tooltipPlacement the tooltip placement
*/
import { jsx as _jsx } from "react/jsx-runtime";
function decorateWithTooltip(tooltip, label, tooltipPlacement, Component, props) {
if (!tooltip || !label) {
return /*#__PURE__*/_jsx(Component, {
...props
});
}
return /*#__PURE__*/_jsx(TooltipTrigger, {
label: label,
tooltipPlacement: tooltipPlacement,
children: /*#__PURE__*/_jsx("span", {
children: /*#__PURE__*/_jsx(Component, {
...props
})
})
});
}
function getPieChartComponent(onClick) {
return onClick ? PieChartButton : PieChartIcon;
}
export default function PieChart({
tooltip,
tooltipPlacement,
...props
}) {
return decorateWithTooltip(tooltip, props.label, tooltipPlacement, getPieChartComponent(props.onClick), props);
}
PieChart.propTypes = {
label: PropTypes.string,
onClick: PropTypes.func,
tooltip: PropTypes.bool,
tooltipPlacement: OverlayTrigger.propTypes.placement
};
PieChart.defaultProps = {
tooltipPlacement: 'top'
};
PieChart.displayName = 'PieChart';
//# sourceMappingURL=PieChart.component.js.map