Skip to content

Commit 011783c

Browse files
committed
Also remove the ripple when transition is ended
1 parent 83d51ac commit 011783c

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

src/lib/core/ripple/ripple-renderer.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,9 @@ export class RippleRenderer {
155155

156156
/** Removes a foreground ripple from the DOM after it has faded out. */
157157
removeRippleFromDom(ripple: Element) {
158-
ripple.parentElement.removeChild(ripple);
158+
if (ripple && ripple.parentElement) {
159+
ripple.parentElement.removeChild(ripple);
160+
}
159161
}
160162

161163
/** Fades in the ripple background. */

src/lib/core/ripple/ripple.spec.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {TestBed, ComponentFixture} from '@angular/core/testing';
1+
import {TestBed, ComponentFixture, fakeAsync, tick} from '@angular/core/testing';
22
import {Component, ViewChild} from '@angular/core';
33
import {MdRipple, MdRippleModule} from './ripple';
44

@@ -132,6 +132,14 @@ describe('MdRipple', () => {
132132
expect(rippleElement.querySelectorAll('.md-ripple-foreground').length).toBe(0);
133133
});
134134

135+
it('removes foreground ripples after timeout', fakeAsync(() => {
136+
rippleElement.click();
137+
expect(rippleElement.querySelectorAll('.md-ripple-foreground').length).toBe(1);
138+
139+
tick(100);
140+
expect(rippleElement.querySelectorAll('.md-ripple-foreground').length).toBe(0);
141+
}));
142+
135143
it('creates ripples when manually triggered', () => {
136144
const rippleComponent = fixture.debugElement.componentInstance.ripple;
137145
// start() should show the background, but no foreground ripple yet.

src/lib/core/ripple/ripple.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ export class MdRipple implements OnInit, OnDestroy, OnChanges {
135135
ripple.state = ForegroundRippleState.FADING_OUT;
136136
break;
137137
case ForegroundRippleState.FADING_OUT:
138+
this._rippleRenderer.removeRippleFromDom(ripple.rippleElement);
138139
break;
139140
}
140141
}

0 commit comments

Comments
 (0)