| "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> | |
| ) | |
| } |