UNPKG

zmp-react

Version:

Build full featured iOS & Android apps using ZMP & React

61 lines (50 loc) 1.45 kB
"use strict"; exports.__esModule = true; exports.useTooltip = void 0; var _react = require("react"); var _watchProp = require("./watch-prop"); var _zmp = require("./zmp"); var useTooltip = function useTooltip(elRef, props) { var zmpTooltip = (0, _react.useRef)(null); var tooltip = props.tooltip, tooltipTrigger = props.tooltipTrigger; var onMount = function onMount() { if (!elRef.current) return; if (!tooltip) return; (0, _zmp.zmpready)(function () { zmpTooltip.current = _zmp.zmp.tooltip.create({ targetEl: elRef.current, text: tooltip, trigger: tooltipTrigger }); }); }; var onDestroy = function onDestroy() { if (zmpTooltip.current && zmpTooltip.current.destroy) { zmpTooltip.current.destroy(); zmpTooltip.current = null; } }; (0, _react.useEffect)(function () { onMount(); return onDestroy; }, []); (0, _watchProp.watchProp)(tooltip, function (value) { if (!value && zmpTooltip.current) { zmpTooltip.current.destroy(); zmpTooltip.current = null; return; } if (value && !zmpTooltip.current && _zmp.zmp) { zmpTooltip.current = _zmp.zmp.tooltip.create({ targetEl: elRef.current, text: value, trigger: tooltipTrigger }); return; } if (!value || !zmpTooltip.current) return; zmpTooltip.current.setText(value); }); }; exports.useTooltip = useTooltip;