"use client"; import { useState } from "react"; import { StreamActionLog } from "yt-dlp-transcript-common/components/StreamActionLog"; import { cancelPublishRunAction, buildTargetAction } from "../lib/publishActions"; type Props = { // The site whose Publish tab this is — always a real site. siteId: string; siteTitle: string; }; // The site's build stage, forced (a click always builds): the index update // first when it is stale, then compose + next build into the site's own // bundle, `export/.export-builds//out` (release 18). There is no "skip // data" any more: the data is the index stage, shared by every site. export function BuildExportButton({ siteId, siteTitle }: Props) { const [skipArchives, setSkipArchives] = useState(false); return ( buildTargetAction(siteId, { skipArchives })} cancelAction={cancelPublishRunAction} buttonLabel="Build static export" runningLabel="Building static export…" extraControls={

Building {siteTitle} ({siteId}).

Skips generating the downloadable archive zips for this build only. Leave off to keep the site's Downloads page current.

} /> ); }