UNPKG

@sitecore/sc-contenthub-blok

Version:

A UI library for [Sitecore Content Hub](https://doc.sitecore.com/ch/).

35 lines 1.57 kB
"use strict"; 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