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

Commit 09b1598

Browse files
ericfromgoogleabhiomkar
authored andcommitted
fix(linear-progress): Restore buffer after determinate is toggl… (#5156)
1 parent 37d6458 commit 09b1598

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

packages/mdc-linear-progress/foundation.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ export class MDCLinearProgressFoundation extends MDCFoundation<MDCLinearProgress
4949
private isDeterminate_!: boolean;
5050
private isReversed_!: boolean;
5151
private progress_!: number;
52+
private buffer_!: number;
5253

5354
constructor(adapter?: Partial<MDCLinearProgressAdapter>) {
5455
super({...MDCLinearProgressFoundation.defaultAdapter, ...adapter});
@@ -58,13 +59,15 @@ export class MDCLinearProgressFoundation extends MDCFoundation<MDCLinearProgress
5859
this.isDeterminate_ = !this.adapter_.hasClass(cssClasses.INDETERMINATE_CLASS);
5960
this.isReversed_ = this.adapter_.hasClass(cssClasses.REVERSED_CLASS);
6061
this.progress_ = 0;
62+
this.buffer_ = 1;
6163
}
6264

6365
setDeterminate(isDeterminate: boolean) {
6466
this.isDeterminate_ = isDeterminate;
6567
if (this.isDeterminate_) {
6668
this.adapter_.removeClass(cssClasses.INDETERMINATE_CLASS);
6769
this.setScale_(this.adapter_.getPrimaryBar(), this.progress_);
70+
this.setScale_(this.adapter_.getBuffer(), this.buffer_);
6871
} else {
6972
this.adapter_.addClass(cssClasses.INDETERMINATE_CLASS);
7073
this.setScale_(this.adapter_.getPrimaryBar(), 1);
@@ -80,6 +83,7 @@ export class MDCLinearProgressFoundation extends MDCFoundation<MDCLinearProgress
8083
}
8184

8285
setBuffer(value: number) {
86+
this.buffer_ = value;
8387
if (this.isDeterminate_) {
8488
this.setScale_(this.adapter_.getBuffer(), value);
8589
}

test/unit/mdc-linear-progress/foundation.test.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,17 @@ test('#setDeterminate restores previous progress value after toggled from false
8181
td.verify(mockAdapter.setStyle(primaryBar, 'transform', 'scaleX(0.123)'), {times: 2});
8282
});
8383

84+
test('#setDeterminate restores previous buffer value after toggled from false to true', () => {
85+
const {foundation, mockAdapter} = setupTest();
86+
const buffer = {};
87+
td.when(mockAdapter.getBuffer()).thenReturn(buffer);
88+
foundation.init();
89+
foundation.setBuffer(0.123);
90+
foundation.setDeterminate(false);
91+
foundation.setDeterminate(true);
92+
td.verify(mockAdapter.setStyle(buffer, 'transform', 'scaleX(0.123)'), {times: 2});
93+
});
94+
8495
test('#setDeterminate updates progress value set while determinate is false after determinate is true', () => {
8596
const {foundation, mockAdapter} = setupTest();
8697
const primaryBar = {};

0 commit comments

Comments
 (0)