Fixed useTooltip for elements that already exist at setup
ci/woodpecker/push/ociImagePush Pipeline is running Details

This commit is contained in:
Natty 2024-04-07 02:08:24 +02:00
parent 812d4ee6b2
commit d12b65fff7
Signed by: natty
GPG Key ID: BF6CB659ADEE60EC
1 changed files with 32 additions and 26 deletions

View File

@ -66,33 +66,39 @@ export function useTooltip(
close();
};
const stop = watch(
elRef,
() => {
if (elRef.value) {
stop();
const el =
elRef.value instanceof Element
? elRef.value
: elRef.value.$el;
el.addEventListener("mouseover", onMouseover, {
passive: true,
});
el.addEventListener("mouseleave", onMouseleave, {
passive: true,
});
el.addEventListener("touchstart", onTouchstart, {
passive: true,
});
el.addEventListener("touchend", onTouchend, { passive: true });
el.addEventListener("click", close, { passive: true });
const addListeners = () => {
const el =
elRef.value instanceof Element ? elRef.value : elRef.value!.$el;
el.addEventListener("mouseover", onMouseover, {
passive: true,
});
el.addEventListener("mouseleave", onMouseleave, {
passive: true,
});
el.addEventListener("touchstart", onTouchstart, {
passive: true,
});
el.addEventListener("touchend", onTouchend, { passive: true });
el.addEventListener("click", close, { passive: true });
};
// Can't use immediate, because of the self-reference of the watch stop handle
if (elRef.value) {
addListeners();
} else {
const stop = watch(
elRef,
() => {
if (elRef.value) {
stop();
addListeners();
}
},
{
flush: "post",
}
},
{
immediate: true,
flush: "post",
}
);
);
}
onUnmounted(() => {
close();