37 lines
872 B
JavaScript
37 lines
872 B
JavaScript
import React from "react";
|
|
|
|
export default function ProgressBar(
|
|
{
|
|
progress = 0,
|
|
stateMessage = ''
|
|
}
|
|
) {
|
|
progress = Math.ceil(progress);
|
|
const progressPercentage = progress + "%";
|
|
|
|
return (
|
|
<React.Fragment>
|
|
<div className="sui-progress-block">
|
|
<div className="sui-progress">
|
|
<span className="sui-progress-icon" aria-hidden="true">
|
|
<span className="sui-icon-loader sui-loading"/>
|
|
</span>
|
|
|
|
<div className="sui-progress-text">{progressPercentage}</div>
|
|
|
|
<div className="sui-progress-bar">
|
|
<span
|
|
style={{
|
|
transition: progress === 0 ? false : "transform 0.4s linear 0s",
|
|
transformOrigin: "left center",
|
|
transform: `translateX(${progress - 100}%)`,
|
|
}}
|
|
/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div className="sui-progress-state">{stateMessage}</div>
|
|
</React.Fragment>
|
|
);
|
|
}
|