From bb6cb6e33521d3396151acb00539dacbe7988f81 Mon Sep 17 00:00:00 2001 From: npeter83 Date: Sat, 29 Aug 2026 05:29:19 +0200 Subject: [PATCH] style(downloads): bump library-row meta text + action buttons a step (E7 S1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enlarge every non-title text on the card (channel, status/format/size/date meta, source-ref line, progress readout) one step (xs→sm) plus their inline icons, and grow the row action buttons (padding + icon) via the actions wrapper so the shared IconBtn stays smaller in the modals. Buttons keep the title's line — the wrapper is shrink-0/no-wrap, so the text column shrinks instead. --- frontend/src/components/downloadRow.tsx | 29 +++++++++++++++---------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/frontend/src/components/downloadRow.tsx b/frontend/src/components/downloadRow.tsx index 45a918f7..14b3dcca 100644 --- a/frontend/src/components/downloadRow.tsx +++ b/frontend/src/components/downloadRow.tsx @@ -43,12 +43,12 @@ export function StatusPill({ job }: { job: DownloadJob }) { // confused by the bar resetting between the separate video and audio streams. if (job.status === "running" && job.phase && PHASE_KEYS.includes(job.phase)) { return ( - {t(`downloads.phase.${job.phase}`)} + {t(`downloads.phase.${job.phase}`)} ); } const key = job.expired ? "expired" : job.status; return ( - + {t(`downloads.status.${key}`)} ); @@ -145,8 +145,8 @@ function SourceRef({ url }: { url: string }) { } }; return ( -
- +
+ - +
); @@ -173,7 +173,7 @@ function ChannelLine({ job }: { job: DownloadJob }) { const { name, url } = jobChannel(job); if (url) { return ( -
+
); } - return
{name}
; + return
{name}
; } export function DownloadRow({ @@ -206,14 +206,14 @@ export function DownloadRow({
{job.job_kind === "edit" && ( - + {t("downloads.clipBadge")} )} {jobTitle(job)}
-
+
{job.asset?.container ? ( // Concrete container (mp4 / m4a / webm …) — reads as the file format, and its audio-vs-video @@ -231,7 +231,7 @@ export function DownloadRow({ className="text-muted inline-flex items-center gap-1" title={new Date(job.created_at).toLocaleString()} > - · {relativeTime(job.created_at)} + · {relativeTime(job.created_at)} ) : null} {job.status === "error" ? ( @@ -264,7 +264,7 @@ export function DownloadRow({ style={{ width: `${job.progress}%` }} />
-
+
{job.progress}% {job.speed_bps ? {formatSpeed(job.speed_bps)} : null} {job.eta_s ? {formatEta(job.eta_s)} : null} @@ -274,7 +274,12 @@ export function DownloadRow({
)}
-
{children}
+ {/* Row action buttons: grown a step here (bigger tap target + icon) without touching the shared + IconBtn — scoped so the same primitive stays smaller in the modals. `shrink-0` + no wrap keeps + them on the title's line; the text column shrinks instead. */} +
+ {children} +
); }