UNPKG

@talend/react-components

Version:
51 lines (50 loc) 1.62 kB
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