Merge improvement/deep-queue-chip-clarity: clearer deep-backfill status

- improvement(channels): distinct "full history coming" label when another user
  queued a channel's full history (vs your own "full history queued")
- improvement(sync): header shows an active "fetching history" state during deep
  backfill instead of a misleading "all synced"
This commit is contained in:
npeter83 2026-06-15 04:31:56 +02:00
commit cf2b49a179
8 changed files with 18 additions and 4 deletions

View file

@ -444,7 +444,7 @@ function ChannelRow({
<Tooltip hint={t("channels.row.queuedByOtherHint")}>
<span className="inline-flex items-center gap-1 text-[10px] px-1.5 py-0.5 rounded-full border border-accent/40 text-accent">
<History className="w-3 h-3" />
{t("channels.row.fullHistoryQueued")}
{t("channels.row.fullHistoryComing")}
</span>
</Tooltip>
) : (

View file

@ -57,6 +57,13 @@ export default function SyncStatus({
<Loader2 className="w-3.5 h-3.5 animate-spin" />
{t("header.sync.syncing", { count: syncing })}
</span>
) : notFull > 0 ? (
// Recent uploads are in, but the scheduler is still backfilling full history —
// so "all synced" would be misleading. Reflect the deep work as active.
<span className="flex items-center gap-1">
<Loader2 className="w-3.5 h-3.5 animate-spin" />
{t("header.sync.backfillingHistory")}
</span>
) : (
<span>{t("header.sync.allSynced")}</span>
)}
@ -74,9 +81,10 @@ export default function SyncStatus({
</Tooltip>
</>
)}
{/* Pause only makes sense when there's work to pause; Resume must always show
while paused so it can be lifted. Hidden entirely when idle and not paused. */}
{isAdmin && (data.paused || syncing > 0) && (
{/* Pause only makes sense when there's work to pause (recent OR deep backfill);
Resume must always show while paused so it can be lifted. Hidden entirely when
idle and not paused. */}
{isAdmin && (data.paused || syncing > 0 || notFull > 0) && (
<button
onClick={() => toggle.mutate()}
disabled={toggle.isPending}

View file

@ -45,6 +45,7 @@
"full": "vollständig",
"fullHint": "Vollständiger Verlauf geladen.",
"fullHistoryQueued": "vollständiger Verlauf in Warteschlange",
"fullHistoryComing": "vollständiger Verlauf unterwegs",
"queuedRequestedHint": "Vollständiger Verlauf angefordert — der gesamte Katalog dieses Kanals wird nachgeladen, soweit das gemeinsame Kontingent es zulässt. Klicke, um deine Anforderung abzubrechen.",
"queuedByOtherHint": "Ein anderer Abonnent hat den vollständigen Verlauf dieses Kanals bereits angefordert, sein gesamter Katalog ist also für alle unterwegs — hier gibt es nichts zu tun.",
"getFullHistory": "vollständigen Verlauf laden",

View file

@ -25,6 +25,7 @@
"countTooltip": "Videos aus deinen Abos im Vergleich zur Gesamtzahl im gemeinsamen Katalog, den die Abos aller Nutzer gefüllt haben.",
"paused": "pausiert",
"syncing": "{{count}} werden synchronisiert",
"backfillingHistory": "Verlauf wird geladen",
"allSynced": "alles synchronisiert",
"withoutFullHistory": "{{count}} ohne vollständigen Verlauf",
"fullHistoryTooltip": "Einige deiner Kanäle haben nur ihre neuesten Uploads. Klicke, um die Kanalverwaltung (auf diese gefiltert) zu öffnen und ihren vollständigen Katalog anzufordern.",

View file

@ -45,6 +45,7 @@
"full": "full",
"fullHint": "Full history fetched.",
"fullHistoryQueued": "full history queued",
"fullHistoryComing": "full history coming",
"queuedRequestedHint": "Full history requested — this channel's whole back-catalog will backfill as the shared quota allows. Click to cancel your request.",
"queuedByOtherHint": "Another subscriber already requested this channel's full history, so its whole back-catalog is on its way to everyone — nothing to do here.",
"getFullHistory": "get full history",

View file

@ -25,6 +25,7 @@
"countTooltip": "Videos from your subscriptions, against the total in the shared catalog that every user's subscriptions have pulled in.",
"paused": "paused",
"syncing": "{{count}} syncing",
"backfillingHistory": "fetching history",
"allSynced": "all synced",
"withoutFullHistory": "{{count}} without full history",
"fullHistoryTooltip": "Some of your channels only have their recent uploads. Click to open the channel manager (filtered to these) and request their full back-catalog.",

View file

@ -45,6 +45,7 @@
"full": "teljes",
"fullHint": "Teljes előzmény letöltve.",
"fullHistoryQueued": "teljes előzmény sorban",
"fullHistoryComing": "teljes előzmény úton",
"queuedRequestedHint": "Teljes előzmény kérve — a csatorna teljes archívuma letöltődik, ahogy a megosztott kvóta engedi. Kattints a kérés visszavonásához.",
"queuedByOtherHint": "Egy másik feliratkozó már kérte ennek a csatornának a teljes előzményét, így a teljes archívuma már úton van mindenkihez — itt nincs teendőd.",
"getFullHistory": "teljes előzmény lekérése",

View file

@ -25,6 +25,7 @@
"countTooltip": "A feliratkozásaidból származó videók száma a megosztott katalógus teljes számához képest, amelyet az összes felhasználó feliratkozásai gyűjtöttek össze.",
"paused": "szüneteltetve",
"syncing": "{{count}} szinkronizálás alatt",
"backfillingHistory": "előzmény letöltése",
"allSynced": "minden szinkronban",
"withoutFullHistory": "{{count}} teljes előzmény nélkül",
"fullHistoryTooltip": "Néhány csatornádnak csak a legutóbbi feltöltései vannak meg. Kattints a csatornakezelő megnyitásához (ezekre szűrve), és kérd le a teljes archívumukat.",