"use client"; import Link from "next/link"; import type { AutoQueueKindStatus } from "yt-dlp-transcript-common/views/autoQueueStatus"; import { type Channel, ORDER_LABEL, formatRecency, leafOrder, leafSentence, } from "./dispatch"; // What the runner would dispatch next, and WHY that one. // // Nothing here needed new machinery: the pick comes from the same // buildChannelWork → buildPendingByLeaf → selectNextWork chain the runner uses, // the rule path is WorkPick.path, and "why not the rule above it" is just the // higher-priority leaves whose pending count is zero. The page simply never // asked. // // A plain
Nothing to dispatch — every rule is empty or capped.
{next.channelSlug ? ( {next.channelSlug}/{next.videoId} ) : ( {next.videoId} )} {recency && ( {recency} )} {at >= 0 && ( rule {at + 1} {leaf ? ` · ${leafSentence(leaf, channels)}` : ""} )}
{skipped.length > 0 ? `${skipped .map((i) => `rule ${i + 1}`) .join(", ")} ${skipped.length === 1 ? "has" : "have"} no pending work` : "highest-priority rule with work"} {order !== "listed" ? ` · ${ORDER_LABEL[order].toLowerCase()}` : ""}
Next up
{children}