From cb29f2dfc78b69dac5b3cbd983d711bb85738757 Mon Sep 17 00:00:00 2001 From: rishichawda Date: Wed, 2 Jan 2019 13:05:50 +0530 Subject: [PATCH 1/2] fix(progressbar): improve progressbar animation --- lib/progressbar/index.js | 4 ++-- lib/progressbar/theme.module.scss | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/progressbar/index.js b/lib/progressbar/index.js index cdd72ca4..fcde70db 100644 --- a/lib/progressbar/index.js +++ b/lib/progressbar/index.js @@ -18,7 +18,7 @@ class ProgressBar extends React.Component { } componentDidUpdate(props) { - this.progress.style.width = `${props.progress}%`; + this.progress.style.transform = `scaleX(${(props.progress / 100)})`; } render() { @@ -52,7 +52,7 @@ ProgressBar.propTypes = { ProgressBar.defaultProps = { theme: defaultTheme, type: 'primary', - progress: 0, + progress: 0.01, showProgressText: false, }; diff --git a/lib/progressbar/theme.module.scss b/lib/progressbar/theme.module.scss index 478bd65a..636197a4 100644 --- a/lib/progressbar/theme.module.scss +++ b/lib/progressbar/theme.module.scss @@ -20,7 +20,13 @@ :local(.progress) { height: 100%; - width: 0%; + width: 100%; + will-change: transform; + transform: scaleX(0); + position: absolute; + left: 0; + transform-origin: left; + transition: transform 0.07s linear; } :local(.primary) { From 659227e97957700483d17876679354de33d41a7b Mon Sep 17 00:00:00 2001 From: rishichawda Date: Wed, 2 Jan 2019 13:11:48 +0530 Subject: [PATCH 2/2] fix(progressbar): minor fixes on progress bar --- lib/progressbar/index.js | 2 +- lib/progressbar/tests/accessibility.test.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/progressbar/index.js b/lib/progressbar/index.js index fcde70db..919cbdfc 100644 --- a/lib/progressbar/index.js +++ b/lib/progressbar/index.js @@ -18,7 +18,7 @@ class ProgressBar extends React.Component { } componentDidUpdate(props) { - this.progress.style.transform = `scaleX(${(props.progress / 100)})`; + this.progress.style.transform = `scaleX(${((props.progress || 0.01) / 100)})`; } render() { diff --git a/lib/progressbar/tests/accessibility.test.js b/lib/progressbar/tests/accessibility.test.js index f38ade9f..d41a302d 100644 --- a/lib/progressbar/tests/accessibility.test.js +++ b/lib/progressbar/tests/accessibility.test.js @@ -45,7 +45,7 @@ describe('ProgressBar accessibility tests', () => { }); it('Should accept a progress prop to update progress effectively.', () => { - expectedValueBefore = 0; + expectedValueBefore = 0.01; let progress = 0; actualValue = () => wrappedComponent .find(ProgressBar)