"use client"; import Link from "next/link"; import type { WidgetActionablePayload } from "yt-dlp-transcript-common/views/widgetActionable"; import { InlineActionButton } from "../actions/InlineActionButton"; const LIMIT = 10; // Live "needs work" list: the channels with videos to download or transcribe, // echoing the ↓ (download) / ✎ (transcribe) verbs used across the app, each row // carrying the same per-channel Download/Transcribe actions as the operation // pages. export function NeedsWorkPanel({ data, }: { data: WidgetActionablePayload | null; }) { const channels = data?.channels ?? []; const shown = channels.slice(0, LIMIT); const overflow = channels.length - shown.length; return (

Needs work

{channels.length} {channels.length === 1 ? "channel" : "channels"}
{channels.length === 0 ? (

Everything's handled.

) : ( )}
); }