From 0b2e26470dcc4933e9981e10f47e0bf790c8dea0 Mon Sep 17 00:00:00 2001 From: Lncvrt Date: Wed, 5 Nov 2025 12:21:42 -0700 Subject: [PATCH] add speed for download --- src-tauri/src/lib.rs | 5 ++++- src/app/layout.tsx | 14 +++++++++++--- src/app/types/DownloadProgress.ts | 1 + 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index f20c109..8ddfe6c 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -168,7 +168,10 @@ async fn download( app.emit( "download-progress", - format!("{}:{:.8}:{}:{:.2}", &name, progress, downloaded, eta_secs), + format!( + "{}:{:.8}:{}:{}:{:.2}", + &name, progress, downloaded, speed, eta_secs + ), ) .unwrap(); } diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 8bb6d60..9dd57fc 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -115,10 +115,11 @@ export default function RootLayout ({ let unlistenUninstalled: (() => void) | null = null listen('download-progress', event => { - const [versionName, progStr, totalSizeStr, etaSecsStr] = + const [versionName, progStr, totalSizeStr, speedStr, etaSecsStr] = event.payload.split(':') const prog = Number(progStr) const progBytes = Number(totalSizeStr) + const speed = Number(speedStr) const etaSecs = Number(etaSecsStr) setDownloadProgress(prev => { const i = prev.findIndex(d => d.version === versionName) @@ -128,6 +129,7 @@ export default function RootLayout ({ ...copy[i], progress: prog, progressBytes: progBytes, + speed, etaSecs } return copy @@ -279,7 +281,7 @@ export default function RootLayout ({ const newDownloads = list.map( version => - new DownloadProgress(version, 0, 0, false, true, false, false, 0) + new DownloadProgress(version, 0, 0, false, true, false, false, 0, 0) ) setDownloadProgress(newDownloads) @@ -696,7 +698,13 @@ export default function RootLayout ({ maximumFractionDigits: 1 } )}{' '} - (ETA: {formatEtaSmart(v.etaSecs)}) + (ETA: {formatEtaSmart(v.etaSecs)}{' '} + • Speed:{' '} + {prettyBytes(v.speed, { + minimumFractionDigits: 1, + maximumFractionDigits: 1 + })} + /s)