"use client"; import { useActionState } from "react"; import { cutReleaseAction, type CutReleaseState, } from "../lib/cutReleaseAction"; import { SeededInput } from "../../components/forms/Field"; import { seedChecked } from "../../lib/formState"; type Props = { workspace: "editor" | "export"; lastVersion: string | null; suggestedVersion: string; hasUnreleased: boolean; }; export function CutReleaseForm({ workspace, lastVersion, suggestedVersion, hasUnreleased, }: Props) { const [state, formAction, pending] = useActionState< CutReleaseState | undefined, FormData >(cutReleaseAction, undefined); return (
{lastVersion ? `Last released: ${lastVersion}` : "No releases yet."}
{hasUnreleased ? "Date stamps to today automatically." : "Nothing pending under [Unreleased] yet."}
{state && !state.ok && (
{state.error}
)} {state && state.ok && (
Cut release {state.version}. {state.committed ? " Committed." : " (not committed)"}
)}
); }