commit 1432c0f4decb87666b8610cf2c78190d3a87f9ff
parent 28b770dc0348f7db9eb58e52e69a11635721a864
Author: Lorenz A <me@lorenzackermann.xyz>
Date: Mon, 15 Dec 2025 14:11:43 +0000
Bug 2004253 - [devtools] Turn devtools/client/shared/widgets/tooltip/TooltipToggle.js into an ES class. r=devtools-reviewers,nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D276396
Diffstat:
1 file changed, 20 insertions(+), 21 deletions(-)
diff --git a/devtools/client/shared/widgets/tooltip/TooltipToggle.js b/devtools/client/shared/widgets/tooltip/TooltipToggle.js
@@ -15,20 +15,17 @@ const DEFAULT_TOGGLE_DELAY = 50;
* provided to the start() method to know whether or not the node being
* hovered over should indeed receive the tooltip.
*/
-function TooltipToggle(tooltip) {
- this.tooltip = tooltip;
- this.win = tooltip.doc.defaultView;
+class TooltipToggle {
+ constructor(tooltip) {
+ this.tooltip = tooltip;
+ this.win = tooltip.doc.defaultView;
- this._onMouseMove = this._onMouseMove.bind(this);
- this._onMouseOut = this._onMouseOut.bind(this);
+ this._onMouseMove = this._onMouseMove.bind(this);
+ this._onMouseOut = this._onMouseOut.bind(this);
- this._onTooltipMouseOver = this._onTooltipMouseOver.bind(this);
- this._onTooltipMouseOut = this._onTooltipMouseOut.bind(this);
-}
-
-module.exports.TooltipToggle = TooltipToggle;
-
-TooltipToggle.prototype = {
+ this._onTooltipMouseOver = this._onTooltipMouseOver.bind(this);
+ this._onTooltipMouseOut = this._onTooltipMouseOut.bind(this);
+ }
/**
* Start tracking mouse movements on the provided baseNode to show the
* tooltip.
@@ -92,7 +89,7 @@ TooltipToggle.prototype = {
} else {
target.classList.add("non-interactive-toggle");
}
- },
+ }
/**
* If the start() function has been used previously, and you want to get rid
@@ -120,7 +117,7 @@ TooltipToggle.prototype = {
this._baseNode = null;
this._targetNodeCb = null;
this._lastHovered = null;
- },
+ }
_onMouseMove(event) {
if (event.target !== this._lastHovered) {
@@ -146,7 +143,7 @@ TooltipToggle.prototype = {
);
}, this._toggleDelay);
}
- },
+ }
/**
* Is the given target DOMNode a valid node for toggling the tooltip on hover.
@@ -162,7 +159,7 @@ TooltipToggle.prototype = {
}
return null;
- },
+ }
_onMouseOut(event) {
// Only hide the tooltip if the mouse leaves baseNode.
@@ -179,20 +176,22 @@ TooltipToggle.prototype = {
this.toggleTimer = this.win.setTimeout(() => {
this.tooltip.hide();
}, this._toggleDelay);
- },
+ }
_onTooltipMouseOver() {
this.win.clearTimeout(this.toggleTimer);
- },
+ }
_onTooltipMouseOut() {
this.win.clearTimeout(this.toggleTimer);
this.toggleTimer = this.win.setTimeout(() => {
this.tooltip.hide();
}, this._toggleDelay);
- },
+ }
destroy() {
this.stop();
- },
-};
+ }
+}
+
+module.exports.TooltipToggle = TooltipToggle;