From 9a0660767c406ea0a6b1e82cc0f81de2978ddddd Mon Sep 17 00:00:00 2001 From: pk Date: Wed, 26 Aug 2026 15:33:14 +0200 Subject: [PATCH] Make sure all consumers of the tooltip mixin clean up when unmounted. --- package.json | 2 +- tp-tooltip-mixin.js | 7 +++++++ tp-tooltip-wrapper.js | 5 ----- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 0dd06e0..347d7a1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tp/tp-tooltip", - "version": "1.0.0", + "version": "1.1.0", "description": "", "main": "tp-tooltip.js", "scripts": { diff --git a/tp-tooltip-mixin.js b/tp-tooltip-mixin.js index 9944cbb..1a68c07 100644 --- a/tp-tooltip-mixin.js +++ b/tp-tooltip-mixin.js @@ -8,6 +8,8 @@ import './tp-tooltip.js'; /** * Elements implementing this mixin are able to show tooltip on mouse over. + * The tooltip is automatically hidden and removed when the element is + * disconnected from the DOM. * * ## Example * ```html @@ -52,6 +54,11 @@ export const Tooltip = function(superClass) { return this._tooltip; } + disconnectedCallback() { + super.disconnectedCallback(); + this._hideTooltip(); + } + _tooltipChanged(newTooltip, oldTooltip) { if (oldTooltip) { this.removeEventListener('mouseenter', this._showTooltip); diff --git a/tp-tooltip-wrapper.js b/tp-tooltip-wrapper.js index 393c7c5..f352531 100644 --- a/tp-tooltip-wrapper.js +++ b/tp-tooltip-wrapper.js @@ -61,11 +61,6 @@ class TpTooltipWrapper extends Tooltip(LitElement) { return true; } - disconnectedCallback() { - super.disconnectedCallback(); - this._hideTooltip(); - } - _setTooltipText(text, disabled) { this.tooltip = disabled ? '' : text; }