import React from "react"; import PropTypes from "prop-types"; import { prettySize, upperCaseFirst } from "../../../utils"; export const Progress = ({ torrent }) => { const downloading = torrent.status.state === "downloading"; let progressBarClass = torrent.status.is_finished ? "progress-bar bg-success" : "progress-bar bg-info"; if (torrent.status.state === "downloading") { progressBarClass += " progress-bar-striped progress-bar-animated"; } var percentDone = torrent.status.percent_done; const started = percentDone !== 0; if (started) { percentDone = Number(percentDone).toFixed(1) + "%"; } // Pretty sizes const downloadedSize = prettySize(torrent.status.downloaded_size); const totalSize = prettySize(torrent.status.total_size); const downloadRate = prettySize(torrent.status.download_rate) + "/s"; return (
{downloading && (

{downloadedSize} / {totalSize} - {percentDone} - {downloadRate}

)} {!downloading && (

{upperCaseFirst(torrent.status.state)}

)}
); }; Progress.propTypes = { torrent: PropTypes.object.isRequired, };