Skip to content

Commit d893441

Browse files
committed
fix(ripple): always remove the activated class
1 parent 9b65022 commit d893441

File tree

3 files changed

+43
-42
lines changed

3 files changed

+43
-42
lines changed

src/components/tap-click/activator.ts

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,23 @@ export class Activator {
1414

1515
downAction(ev: UIEvent, activatableEle: HTMLElement, startCoord: PointerCoordinates) {
1616
// the user just pressed down
17-
let self = this;
18-
if (self.disableActivated(ev)) {
17+
if (this.disableActivated(ev)) {
1918
return;
2019
}
2120

2221
// queue to have this element activated
23-
self._queue.push(activatableEle);
22+
this._queue.push(activatableEle);
2423

25-
rafFrames(2, function() {
24+
rafFrames(2, () => {
2625
let activatableEle: HTMLElement;
27-
for (let i = 0; i < self._queue.length; i++) {
28-
activatableEle = self._queue[i];
26+
for (let i = 0; i < this._queue.length; i++) {
27+
activatableEle = this._queue[i];
2928
if (activatableEle && activatableEle.parentNode) {
30-
self._active.push(activatableEle);
31-
activatableEle.classList.add(self._css);
29+
this._active.push(activatableEle);
30+
activatableEle.classList.add(this._css);
3231
}
3332
}
34-
self._queue = [];
33+
this._queue = [];
3534
});
3635
}
3736

@@ -60,24 +59,29 @@ export class Activator {
6059

6160
deactivate() {
6261
// remove the active class from all active elements
63-
let self = this;
64-
self._queue = [];
62+
this._queue = [];
6563

66-
rafFrames(2, function() {
67-
for (var i = 0; i < self._active.length; i++) {
68-
self._active[i].classList.remove(self._css);
64+
rafFrames(2, () => {
65+
for (var i = 0; i < this._active.length; i++) {
66+
this._active[i].classList.remove(this._css);
6967
}
70-
self._active = [];
68+
this._active = [];
7169
});
7270
}
7371

7472
disableActivated(ev: any) {
75-
if (ev.defaultPrevented) return true;
73+
if (ev.defaultPrevented) {
74+
return true;
75+
}
7676

7777
let targetEle = ev.target;
78-
for (let x = 0; x < 4; x++) {
79-
if (!targetEle) break;
80-
if (targetEle.hasAttribute('disable-activated')) return true;
78+
for (let i = 0; i < 4; i++) {
79+
if (!targetEle) {
80+
break;
81+
}
82+
if (targetEle.hasAttribute('disable-activated')) {
83+
return true;
84+
}
8185
targetEle = targetEle.parentElement;
8286
}
8387
return false;

src/components/tap-click/ripple.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,14 @@ export class RippleActivator extends Activator {
4848
}
4949

5050
upAction(ev: UIEvent, activatableEle: HTMLElement, startCoord: PointerCoordinates) {
51-
if (hasPointerMoved(6, startCoord, pointerCoord(ev))) {
52-
return;
53-
}
54-
let i = activatableEle.childElementCount;
55-
while (i--) {
56-
var rippleEle: any = activatableEle.children[i];
57-
if (rippleEle.classList.contains('button-effect')) {
58-
this.startRippleEffect(rippleEle, activatableEle, startCoord);
59-
break;
51+
if (!hasPointerMoved(6, startCoord, pointerCoord(ev))) {
52+
let i = activatableEle.childElementCount;
53+
while (i--) {
54+
var rippleEle: any = activatableEle.children[i];
55+
if (rippleEle.classList.contains('button-effect')) {
56+
this.startRippleEffect(rippleEle, activatableEle, startCoord);
57+
break;
58+
}
6059
}
6160
}
6261

src/components/tap-click/tap-click.ts

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,31 +25,29 @@ export class TapClick {
2525
private app: App,
2626
zone: NgZone
2727
) {
28-
let self = this;
29-
3028
if (config.get('activator') === 'ripple') {
31-
self.activator = new RippleActivator(app, config);
29+
this.activator = new RippleActivator(app, config);
3230

3331
} else if (config.get('activator') === 'highlight') {
34-
self.activator = new Activator(app, config);
32+
this.activator = new Activator(app, config);
3533
}
3634

37-
self.usePolyfill = (config.get('tapPolyfill') === true);
35+
this.usePolyfill = (config.get('tapPolyfill') === true);
3836

3937
zone.runOutsideAngular(() => {
40-
addListener('click', self.click.bind(self), true);
38+
addListener('click', this.click.bind(this), true);
4139

42-
addListener('touchstart', self.touchStart.bind(self));
43-
addListener('touchend', self.touchEnd.bind(self));
44-
addListener('touchcancel', self.pointerCancel.bind(self));
40+
addListener('touchstart', this.touchStart.bind(this));
41+
addListener('touchend', this.touchEnd.bind(this));
42+
addListener('touchcancel', this.pointerCancel.bind(this));
4543

46-
addListener('mousedown', self.mouseDown.bind(self), true);
47-
addListener('mouseup', self.mouseUp.bind(self), true);
44+
addListener('mousedown', this.mouseDown.bind(this), true);
45+
addListener('mouseup', this.mouseUp.bind(this), true);
4846
});
4947

50-
self.pointerMove = function(ev: UIEvent) {
51-
if ( hasPointerMoved(POINTER_MOVE_UNTIL_CANCEL, self.startCoord, pointerCoord(ev)) ) {
52-
self.pointerCancel(ev);
48+
this.pointerMove = (ev: UIEvent) => {
49+
if ( hasPointerMoved(POINTER_MOVE_UNTIL_CANCEL, this.startCoord, pointerCoord(ev)) ) {
50+
this.pointerCancel(ev);
5351
}
5452
};
5553
}

0 commit comments

Comments
 (0)