react-jsx-highcharts
Version:
Highcharts charts built using React components
44 lines • 1.21 kB
JavaScript
import { useEffect, memo } from 'react';
import useChart from '../UseChart';
import useHighcharts from '../UseHighcharts';
import useModifiedProps from '../UseModifiedProps';
const Tooltip = /*#__PURE__*/memo(props => {
var _props$enabled;
// eslint-disable-next-line no-unused-vars
const {
children = null,
...restProps
} = props;
const chart = useChart();
const Highcharts = useHighcharts();
restProps.enabled = (_props$enabled = props.enabled) !== null && _props$enabled !== void 0 ? _props$enabled : true;
useEffect(() => {
updateTooltip(chart, {
...(Highcharts.defaultOptions && Highcharts.defaultOptions.tooltip),
...restProps
});
return () => {
try {
updateTooltip(chart, {
enabled: false
});
} catch {
// ignore as chart might have been already unmounted
}
};
}, []);
const modifiedProps = useModifiedProps(restProps);
useEffect(() => {
if (modifiedProps !== false) {
updateTooltip(chart, modifiedProps);
}
});
return null;
});
const updateTooltip = (chart, config) => {
chart.update({
tooltip: config
});
};
Tooltip.displayName = 'Tooltip';
export default Tooltip;