From 72936b7c6b5350a6a41dc4a0fb39f152e8757f79 Mon Sep 17 00:00:00 2001 From: Sucukdeluxe Date: Sat, 7 Mar 2026 02:35:23 +0100 Subject: [PATCH] Compact provider labels in package account column Multiple accounts from the same provider are now merged: "Debrid-Link (#3), Debrid-Link (#4)" becomes "Debrid-Link (#3 + #4)" Co-Authored-By: Claude Opus 4.6 --- src/renderer/App.tsx | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx index fc300d1..6c6ed20 100644 --- a/src/renderer/App.tsx +++ b/src/renderer/App.tsx @@ -784,6 +784,24 @@ function providerLabelWithMode(provider: DebridProvider, settings: AppSettings): return opt?.modeLabel ? `${base} (${opt.modeLabel})` : base; } +function compactProviderLabels(labels: string[]): string { + const unique = [...new Set(labels)]; + const groups = new Map(); + for (const label of unique) { + const m = label.match(/^(.+?)\s*\((.+)\)$/); + if (m) { + const arr = groups.get(m[1]) || []; + arr.push(m[2]); + groups.set(m[1], arr); + } else { + groups.set(label, []); + } + } + return [...groups.entries()].map(([base, details]) => + details.length === 0 ? base : `${base} (${details.join(" + ")})` + ).join(", "); +} + function formatDateTime(ts: number): string { if (!ts) return ""; const d = new Date(ts); @@ -5161,7 +5179,7 @@ const PackageCard = memo(function PackageCard({ pkg, items, packageSpeed, isFirs return {hosterText}; } case "account": { - const accountText = [...new Set(items.map((item) => item.providerLabel || (item.provider ? providerLabels[item.provider] : null)).filter(Boolean))].join(", "); + const accountText = compactProviderLabels(items.map((item) => item.providerLabel || (item.provider ? providerLabels[item.provider] : "")).filter(Boolean)); return {accountText}; } case "prio": return (