zmp-vue
Version:
Build full featured iOS & Android apps using ZMP & Vue
54 lines (47 loc) • 1.22 kB
JavaScript
;
exports.__esModule = true;
exports.useTooltip = void 0;
var _vue = require("vue");
var _zmp = require("./zmp");
var useTooltip = function useTooltip(elRef, props) {
var zmpTooltip = null;
var tooltip = props.tooltip,
tooltipTrigger = props.tooltipTrigger;
(0, _vue.onMounted)(function () {
if (!elRef.value) return;
if (!tooltip) return;
(0, _zmp.zmpready)(function () {
zmpTooltip = _zmp.zmp.tooltip.create({
targetEl: elRef.value,
text: tooltip,
trigger: tooltipTrigger
});
});
});
(0, _vue.onBeforeUnmount)(function () {
if (zmpTooltip && zmpTooltip.destroy) {
zmpTooltip.destroy();
zmpTooltip = null;
}
});
(0, _vue.watch)(function () {
return props.tooltip;
}, function (value) {
if (!value && zmpTooltip) {
zmpTooltip.destroy();
zmpTooltip = null;
return;
}
if (value && !zmpTooltip && _zmp.zmp) {
zmpTooltip = _zmp.zmp.tooltip.create({
targetEl: elRef.value,
text: value,
trigger: tooltipTrigger
});
return;
}
if (!value || !zmpTooltip) return;
zmpTooltip.setText(value);
});
};
exports.useTooltip = useTooltip;