"use client"; import { useActionState } from "react"; import type { HomepageConfig } from "yt-dlp-transcript-common/lib/homepage"; import { saveHomepageConfigAction, type SaveResult } from "../lib/homepageActions"; import { SeededInput } from "../../components/forms/Field"; import { seedChecked } from "../../lib/formState"; const input = "rounded-md border border-border bg-card px-3 py-1.5 text-sm"; const label = "flex flex-col gap-1 text-sm font-medium"; export function HomepageConfigForm({ config }: { config: HomepageConfig }) { const [state, formAction, pending] = useActionState< SaveResult | undefined, FormData >(saveHomepageConfigAction, undefined); return (

On by default: the hub's transcript viewer offers the transcript as a file and as Markdown, for every archive it federates. Turn off to hide both on the hub; the yt-dlp command for a marked clip stays.

{state && !state.ok && ( {state.error} )} {state && state.ok && ( Saved. )}
); }