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,15 +66,9 @@ export function useTooltip(
close(); close();
}; };
const stop = watch( const addListeners = () => {
elRef,
() => {
if (elRef.value) {
stop();
const el = const el =
elRef.value instanceof Element elRef.value instanceof Element ? elRef.value : elRef.value!.$el;
? elRef.value
: elRef.value.$el;
el.addEventListener("mouseover", onMouseover, { el.addEventListener("mouseover", onMouseover, {
passive: true, passive: true,
}); });
@ -86,13 +80,25 @@ export function useTooltip(
}); });
el.addEventListener("touchend", onTouchend, { passive: true }); el.addEventListener("touchend", onTouchend, { passive: true });
el.addEventListener("click", close, { 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();
} }
}, },
{ {
immediate: true,
flush: "post", flush: "post",
} }
); );
}
onUnmounted(() => { onUnmounted(() => {
close(); close();