"use client"; import type { ReactNode } from "react"; import type { AutoQueueKind } from "yt-dlp-transcript-common/jobs/autoQueueState"; import type { AutoQueueStatusPayload } from "yt-dlp-transcript-common/views/autoQueueStatus"; // Type-only: syncRow.ts is a server module. See OperationRail. import type { SyncRowView } from "../syncRow"; import FocusBanner from "../../channels/components/FocusBanner"; import EndFocusButton from "../../channels/components/EndFocusButton"; import { HowPriorityWorks } from "./HowPriorityWorks"; import { OperationRail } from "./OperationRail"; import { RunnerOperationView } from "./RunnerOperationView"; import { railStates } from "./railStates"; import { useHydrated, useOperationsStatus } from "./useOperationsStatus"; import { RUNNER_TITLE, type Channel } from "./dispatch"; import { StateBand } from "../../components/pipelines/StateBand"; import { RunningJobsList } from "../../jobs/components/RunningJobsList"; import type { JobRowView } from "yt-dlp-transcript-common/views/jobRowView"; // ONE OPERATION, IN FULL. // // THE RAIL IS STILL AT THE TOP, and that is not decoration either: on this // corpus the normal case is that a lane is idle BECAUSE another one is, so the // answer to "why is this operation not moving" is usually on a different row. // It was the switcher's context when the switcher was a