From 41340a06b57c88e4d037c6df93987f8801b20dab Mon Sep 17 00:00:00 2001 From: Georges KABBOUCHI Date: Thu, 20 Mar 2025 00:39:09 +0200 Subject: [PATCH] v6.7.0 --- package.json | 2 +- src/composables/useTippy.ts | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index ef2b62a..c3bfb7f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue-tippy", - "version": "6.6.0", + "version": "6.7.0", "main": "index.js", "module": "dist/vue-tippy.mjs", "unpkg": "dist/vue-tippy.iife.js", diff --git a/src/composables/useTippy.ts b/src/composables/useTippy.ts index 6916a19..4e67263 100644 --- a/src/composables/useTippy.ts +++ b/src/composables/useTippy.ts @@ -24,8 +24,14 @@ tippy.setDefaultProps({ }, }) +const isComponentInstance = (value: any): value is { $el: any } => { + return value instanceof Object && '$' in value && '$el' in value +} + +type TippyElement = Element | any // TODO: use ComponentPublicInstance + export function useTippy( - el: Element | (() => Element) | Ref | Ref, + el: TippyElement | (() => TippyElement) | Ref | Ref, opts: TippyOptions = {}, settings: { mount: boolean, @@ -231,9 +237,13 @@ export function useTippy( if (typeof target === 'function') target = target() + if (isComponentInstance(target)) { + target = target.$el as Element + } + if (target) { //@ts-ignore - instance.value = tippy(target?.$el ?? target, getProps(opts)) + instance.value = tippy(target, getProps(opts)) //@ts-ignore target.$tippy = response }