import { useEffect, useState } from 'react' interface ProgressRingProps { percentage: number size?: number strokeWidth?: number } export default function ProgressRing({ percentage, size = 56, strokeWidth = 4 }: ProgressRingProps) { const [animatedPercentage, setAnimatedPercentage] = useState(0) const radius = (size - strokeWidth) / 2 const circumference = 2 * Math.PI * radius const offset = circumference - (animatedPercentage / 100) * circumference useEffect(() => { const timer = setTimeout(() => setAnimatedPercentage(percentage), 100) return () => clearTimeout(timer) }, [percentage]) return (
{/* Background circle */} {/* Progress circle */} {percentage}%
) }