|
"use client" |
|
|
|
import { CircularProgressbar, buildStyles } from "react-circular-progressbar" |
|
import "react-circular-progressbar/dist/styles.css" |
|
|
|
export function ProgressBar ({ |
|
className, |
|
progressPercentage, |
|
text |
|
}: { |
|
className?: string |
|
progressPercentage?: number |
|
text?: string |
|
}) { |
|
return ( |
|
<div className={className}> |
|
<CircularProgressbar |
|
// doc: https://www.npmjs.com/package/react-circular-progressbar |
|
|
|
value={progressPercentage || 0} |
|
|
|
// Text to display inside progressbar. Default: ''. |
|
text={text || ""} |
|
|
|
// Width of circular line relative to total width of component, a value from 0-100. Default: 8. |
|
strokeWidth={8} |
|
|
|
|
|
// As a convenience, you can use buildStyles to configure the most common style changes: |
|
|
|
styles={buildStyles({ |
|
// Rotation of path and trail, in number of turns (0-1) |
|
rotation: 0, |
|
|
|
// Whether to use rounded or flat corners on the ends - can use 'butt' or 'round' |
|
strokeLinecap: 'round', |
|
|
|
// Text size |
|
textSize: '20px', |
|
|
|
// How long animation takes to go from one percentage to another, in seconds |
|
pathTransitionDuration: 0.1, |
|
|
|
// Can specify path transition in more detail, or remove it entirely |
|
// pathTransition: 'none', |
|
|
|
// Colors |
|
// pathColor: `rgba(62, 152, 199, ${percentage / 100})`, |
|
textColor: '#f88', |
|
trailColor: '#d6d6d6', |
|
backgroundColor: '#3e98c7', |
|
})} |
|
|
|
/> |
|
</div> |
|
) |
|
} |