@sitecore/sc-contenthub-blok
Version:
A UI library for [Sitecore Content Hub](https://doc.sitecore.com/ch/).
35 lines • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BlokTooltip = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const utils_1 = require("../../Foundations/utils");
const BlokTooltip = ({ placement = "top", title, children, tooltipId = "ch-tooltip", }) => {
const [titleOnElement, setTitleOnElement] = (0, react_1.useState)(title);
const withTooltip = (0, react_1.useMemo)(() => react_1.Children.map(children, (child) => {
if ((0, react_1.isValidElement)(child)) {
return (0, react_1.cloneElement)(child, {
title: titleOnElement,
"data-tooltip-html": title,
"data-place": placement,
"data-tooltip-id": tooltipId,
onMouseEnter: () => {
if ((0, utils_1.isFunction)(child.props.onMouseEnter)) {
child.props.onMouseEnter();
}
setTitleOnElement("");
},
onMouseLeave: () => {
if ((0, utils_1.isFunction)(child.props.onMouseLeave)) {
child.props.onMouseLeave();
}
setTitleOnElement(title);
},
});
}
return child;
}), [children, placement, title, titleOnElement, tooltipId]);
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: withTooltip });
};
exports.BlokTooltip = BlokTooltip;
//# sourceMappingURL=BlokTooltip.js.map