An upload progress indicator with linear bar, circular ring, and minimal percentage variants in three sizes.
"use client"; import { UploadThingProgress } from "@/components/ui/uploadthing-progress"; import { useEffect, useState } from "react"; export default function Default() { const [progress, setProgress] = useState(0); useEffect(() => { const interval = setInterval(() => { setProgress((prev) => (prev >= 100 ? 0 : prev + 4)); }, 200); return () => clearInterval(interval); }, []); return ( <div className="flex w-full max-w-sm flex-col items-center gap-8 rounded-xl border bg-background p-8"> <div className="w-full"> <UploadThingProgress progress={progress} variant="bar" /> </div> <UploadThingProgress progress={progress} variant="ring" size="lg" /> <div className="w-full"> <UploadThingProgress progress={progress} variant="minimal" /> </div> </div> ); }