Skip to content
This repository was archived by the owner on Jan 13, 2025. It is now read-only.

Commit 425df03

Browse files
kfranqueirowilliamernest
authored andcommitted
fix(ripple): Clean deactivation timer and CSS when interrupted (#3529)
(cherry picked from commit 2eda390)
1 parent 5d9feb8 commit 425df03

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

packages/mdc-ripple/foundation.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,13 @@ class MDCRippleFoundation extends MDCFoundation {
225225
if (this.activationTimer_) {
226226
clearTimeout(this.activationTimer_);
227227
this.activationTimer_ = 0;
228-
const {FG_ACTIVATION} = MDCRippleFoundation.cssClasses;
229-
this.adapter_.removeClass(FG_ACTIVATION);
228+
this.adapter_.removeClass(MDCRippleFoundation.cssClasses.FG_ACTIVATION);
229+
}
230+
231+
if (this.fgDeactivationRemovalTimer_) {
232+
clearTimeout(this.fgDeactivationRemovalTimer_);
233+
this.fgDeactivationRemovalTimer_ = 0;
234+
this.adapter_.removeClass(MDCRippleFoundation.cssClasses.FG_DEACTIVATION);
230235
}
231236

232237
const {ROOT, UNBOUNDED} = MDCRippleFoundation.cssClasses;

test/unit/mdc-ripple/foundation.test.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,9 +170,20 @@ testFoundation(`#destroy removes ${cssClasses.FG_ACTIVATION} if activation is in
170170
foundation.destroy();
171171
mockRaf.flush();
172172

173+
assert.equal(foundation.activationTimer_, 0);
173174
td.verify(adapter.removeClass(cssClasses.FG_ACTIVATION));
174175
});
175176

177+
testFoundation(`#destroy removes ${cssClasses.FG_DEACTIVATION} if deactivation is interrupted`,
178+
({foundation, adapter, mockRaf}) => {
179+
foundation.fgDeactivationRemovalTimer_ = 1;
180+
foundation.destroy();
181+
mockRaf.flush();
182+
183+
assert.equal(foundation.fgDeactivationRemovalTimer_, 0);
184+
td.verify(adapter.removeClass(cssClasses.FG_DEACTIVATION));
185+
});
186+
176187
testFoundation('#destroy removes all CSS variables', ({foundation, adapter, mockRaf}) => {
177188
const cssVars = Object.keys(strings).filter((s) => s.indexOf('VAR_') === 0).map((s) => strings[s]);
178189
foundation.destroy();

0 commit comments

Comments
 (0)