Jwrockon's picture
Upload 232 files (#1)
5e1b738 verified
raw
history blame contribute delete
683 Bytes
function formatBytes(size) {
const i = size == 0 ? 0 : Math.floor(Math.log(size) / Math.log(1024));
return (
+(size / Math.pow(1024, i)).toFixed(2) * 1 +
["B", "kB", "MB", "GB", "TB"][i]
);
}
export default function Progress({ text, percentage, total }) {
percentage ??= 0;
return (
<div className="w-full bg-gray-100 dark:bg-gray-700 text-left rounded-lg overflow-hidden mb-0.5">
<div
className="bg-blue-400 whitespace-nowrap px-1 text-sm"
style={{ width: `${percentage}%` }}
>
{text} ({percentage.toFixed(2)}%
{isNaN(total) ? "" : ` of ${formatBytes(total)}`})
</div>
</div>
);
}