Remove unused methods from gr-hovercard-behavior
Change-Id: Ifaea3216180f63315d4b84346bf9598d7966081f
diff --git a/polygerrit-ui/app/elements/shared/gr-hovercard/gr-hovercard-behavior.ts b/polygerrit-ui/app/elements/shared/gr-hovercard/gr-hovercard-behavior.ts
index 356a248..82af365 100644
--- a/polygerrit-ui/app/elements/shared/gr-hovercard/gr-hovercard-behavior.ts
+++ b/polygerrit-ui/app/elements/shared/gr-hovercard/gr-hovercard-behavior.ts
@@ -19,7 +19,7 @@
import {getRootElement} from '../../../scripts/rootElement';
import {Constructor} from '../../../utils/common-util';
import {PolymerElement} from '@polymer/polymer/polymer-element';
-import {property, observe} from '@polymer/decorators';
+import {observe, property} from '@polymer/decorators';
import {
pushScrollLock,
removeScrollLock,
@@ -134,8 +134,6 @@
this._target.addEventListener('focus', this.debounceShow);
this._target.addEventListener('mouseleave', this.debounceHide);
this._target.addEventListener('blur', this.debounceHide);
-
- // when click, dismiss immediately
this._target.addEventListener('click', this.hide);
// show the hovercard if mouse moves to hovercard
@@ -151,6 +149,11 @@
this.cancelShowTask();
this.cancelHideTask();
this.unlock();
+ this._target?.removeEventListener('mouseenter', this.debounceShow);
+ this._target?.removeEventListener('focus', this.debounceShow);
+ this._target?.removeEventListener('mouseleave', this.debounceHide);
+ this._target?.removeEventListener('blur', this.debounceHide);
+ this._target?.removeEventListener('click', this.hide);
super.disconnectedCallback();
}
@@ -160,14 +163,6 @@
this.container = getHovercardContainer({createIfNotExists: true});
}
- removeListeners() {
- this._target?.removeEventListener('mouseenter', this.debounceShow);
- this._target?.removeEventListener('focus', this.debounceShow);
- this._target?.removeEventListener('mouseleave', this.debounceHide);
- this._target?.removeEventListener('blur', this.debounceHide);
- this._target?.removeEventListener('click', this.hide);
- }
-
readonly debounceHide = () => {
this.cancelShowTask();
if (!this._isShowing || this.isScheduledToHide) return;
@@ -185,10 +180,10 @@
};
cancelHideTask() {
- if (this.hideTask) {
- this.hideTask.cancel();
- this.isScheduledToHide = false;
- }
+ if (!this.hideTask) return;
+ this.hideTask.cancel();
+ this.isScheduledToHide = false;
+ this.hideTask = undefined;
}
/**
@@ -315,10 +310,10 @@
}
cancelShowTask() {
- if (this.showTask) {
- this.showTask.cancel();
- this.isScheduledToShow = false;
- }
+ if (!this.showTask) return;
+ this.showTask.cancel();
+ this.isScheduledToShow = false;
+ this.showTask = undefined;
}
/**
@@ -332,7 +327,7 @@
* Shows/opens the hovercard. This occurs when the user triggers the
* `mousenter` event on the hovercard's `target` element.
*/
- readonly show = () => {
+ readonly show = async () => {
this.cancelHideTask();
this.cancelShowTask();
if (this._isShowing || !this.container) {
@@ -352,7 +347,7 @@
// Make sure that the hovercard actually rendered and all dom-if
// statements processed, so that we can measure the (invisible)
// hovercard properly in updatePosition().
- flush();
+ await flush();
this.updatePosition();
this.classList.remove(HIDE_CLASS);
};
@@ -473,9 +468,6 @@
_target: HTMLElement | null;
_isShowing: boolean;
ready(): void;
- removeListeners(): void;
- debounceHide(): void;
- cancelHideTask(): void;
dispatchEventThroughTarget(eventName: string, detail?: unknown): void;
hide(e?: MouseEvent): void;
debounceShow(): void;
@@ -483,5 +475,4 @@
cancelShowTask(): void;
show(): void;
updatePosition(): void;
- updatePositionTo(position: string): void;
}
diff --git a/polygerrit-ui/app/elements/shared/gr-hovercard/gr-hovercard_test.js b/polygerrit-ui/app/elements/shared/gr-hovercard/gr-hovercard_test.js
index 27ef23f..d5e0061 100644
--- a/polygerrit-ui/app/elements/shared/gr-hovercard/gr-hovercard_test.js
+++ b/polygerrit-ui/app/elements/shared/gr-hovercard/gr-hovercard_test.js
@@ -84,8 +84,8 @@
assert.notEqual(element.container, element.parentNode);
});
- test('show', () => {
- element.show({});
+ test('show', async () => {
+ await element.show({});
const style = getComputedStyle(element);
assert.isTrue(element._isShowing);
assert.isTrue(element.classList.contains('hovered'));
@@ -120,6 +120,7 @@
button.dispatchEvent(new CustomEvent('mouseenter'));
await enterPromise;
+ await flush();
assert.isTrue(element.isScheduledToShow);
element.showTask.flush();
assert.isTrue(element._isShowing);
@@ -152,6 +153,7 @@
button.dispatchEvent(new CustomEvent('mouseenter'));
await enterPromise;
+ await flush();
assert.isTrue(element.isScheduledToShow);
MockInteractions.tap(button);