diff --git a/src/renderer/pages/player-page.js b/src/renderer/pages/player-page.js index bdc8f5d8..e269178a 100644 --- a/src/renderer/pages/player-page.js +++ b/src/renderer/pages/player-page.js @@ -322,39 +322,8 @@ function renderCastScreen (state) { backgroundImage: cssBackgroundImagePoster(state) } - function renderDownloadProgress () { - if (!prog.files) return - - const fileProg = prog.files[state.playing.fileIndex] - const fileProgress = fileProg.numPiecesPresent / fileProg.numPieces - const fileLength = state.getPlayingFileSummary().length - - const total = prettyBytes(fileLength) - const downloaded = prettyBytes(fileProgress * fileLength) - - let sizes - if (fileProgress < 1) { - sizes = | {downloaded} / {total} - } else { - sizes = | {downloaded} - } - - return ( - {Math.round(100 * fileProgress)}% downloaded {sizes} - ) - } - - function renderSpeed () { - const downloadSpeed = prettyBytes(prog.downloadSpeed || 0) - const uploadSpeed = prettyBytes(prog.uploadSpeed || 0) - - return (↓ {downloadSpeed}/s ↑ {uploadSpeed}/s) - } - - function renderEta () { - const downloaded = prog.downloaded || 0 - const total = prog.length || 0 - const missing = total - downloaded + function renderEta (total, downloaded) { + const missing = (total || 0) - (downloaded || 0) const downloadSpeed = prog.downloadSpeed || 0 if (downloadSpeed === 0 || missing === 0) return @@ -363,17 +332,44 @@ function renderCastScreen (state) { const minutes = Math.floor(rawEta / 60) % 60 const seconds = Math.floor(rawEta % 60) - // Only display hours and minutes if they are greater than 0 but always - // display minutes if hours is being displayed const hoursStr = hours ? hours + 'h' : '' const minutesStr = (hours || minutes) ? minutes + 'm' : '' const secondsStr = seconds + 's' - return ( | {hoursStr} {minutesStr} {secondsStr} remaining) + return ({hoursStr} {minutesStr} {secondsStr} remaining) } - function renderNumberOfPeers () { - return ({prog.numPeers || 0} peer(s)) + function renderDownloadProgress () { + if (!prog.files) return + + const fileProg = prog.files[state.playing.fileIndex] + const fileProgress = fileProg.numPiecesPresent / fileProg.numPieces + const fileLength = state.getPlayingFileSummary().length + const fileDownloaded = fileProgress * fileLength + + const progress = Math.round(100 * fileProgress) + const total = prettyBytes(fileLength) + const completed = prettyBytes(fileDownloaded) + + const downloadSpeed = prettyBytes(prog.downloadSpeed || 0) + const uploadSpeed = prettyBytes(prog.uploadSpeed || 0) + + let sizes + if (fileProgress < 1) { + sizes = | {completed} / {total} + } else { + sizes = | {completed} + } + + return ( +
+ {progress}% downloaded {sizes} +
+ ↓ {downloadSpeed}/s ↑ {uploadSpeed}/s | {prog.numPeers || 0} peer(s) +
+ {renderEta(fileLength, fileDownloaded)} +
+ ) } return ( @@ -383,13 +379,7 @@ function renderCastScreen (state) {
{castType}
{castStatus}
{fileName}
-
- {renderDownloadProgress()} -
- {renderSpeed() } { renderEta()} -
- {renderNumberOfPeers()} -
+ {renderDownloadProgress()} )