Merge: header video-count clarity + idle pause hidden

This commit is contained in:
npeter83 2026-06-14 18:43:11 +02:00
commit 30a45eea30
3 changed files with 18 additions and 3 deletions

View file

@ -34,8 +34,16 @@ export default function SyncStatus({
return (
<div className="hidden lg:flex items-center gap-2 text-xs text-muted">
<Database className="w-3.5 h-3.5" />
<span>{formatViews(data.my_videos)} videos</span>
<Tooltip hint="Videos from your subscriptions, against the total in the shared catalog that every user's subscriptions have pulled in.">
<span className="flex items-center gap-1.5 cursor-default">
<Database className="w-3.5 h-3.5" />
<span>
<span className="text-fg font-medium">{formatViews(data.my_videos)}</span> yours
</span>
<span className="opacity-40">/</span>
<span>{formatViews(data.total_videos)} total</span>
</span>
</Tooltip>
<span className="opacity-40">·</span>
{data.paused ? (
<span className="text-accent font-medium">paused</span>
@ -61,7 +69,9 @@ export default function SyncStatus({
</Tooltip>
</>
)}
{isAdmin && (
{/* 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) && (
<button
onClick={() => toggle.mutate()}
disabled={toggle.isPending}

View file

@ -174,6 +174,7 @@ export interface MyStatus {
deep_pending_count: number;
deep_eta_seconds: number;
my_videos: number;
total_videos: number;
quota_used_today: number;
quota_remaining_today: number;
paused: boolean;