import { useEffect, useState } from 'react';
import { Button, Progress } from '@peppermint-design/devreadykit';
export default function LoadingProgress() {
const [isLoading, setLoading] = useState(false);
const [progress, setProgress] = useState(0);
useEffect(() => {
if (!isLoading) {
setProgress(0);
return;
}
const timer = window.setInterval(() => {
setProgress((prev) => (prev >= 100 ? 100 : prev + Math.random() * 20));
}, 600);
return () => window.clearInterval(timer);
}, [isLoading]);
return (
<div className="space-y-3">
<Button size="s" onClick={() => setLoading(true)} disabled={isLoading}>
{isLoading ? 'Loading…' : 'Simulate loading'}
</Button>
{isLoading && (
<div className="space-y-2">
<div className="flex justify-between text-sm">
<span>Loading…</span>
<span>{Math.round(progress)}%</span>
</div>
<Progress value={progress} showPercentage={false} />
</div>
)}
</div>
);
}