import { type FormEvent } from "react"; import { ArrowUpFromLine, Loader2Icon } from "lucide-react"; import type { ScriptItem, Visibility } from "../../services/api"; import { scriptIcon } from "../../features/platform/WorkspaceTree"; import { AppFormDialog, dialogPrimaryButtonClass, dialogSecondaryButtonClass, } from "~/components/common/AppFormDialog"; import { Button } from "~/components/ui/button"; import { formFieldClass, formHintClass, formInputClass, formTextareaClass, modalFormClass, } from "./modalUi"; type PublishModalProps = { publishTarget: ScriptItem | null; releaseNote: string; publishVisibility: Visibility; publishing: boolean; onReleaseNoteChange: (note: string) => void; onPublishVisibilityChange: (visibility: Visibility) => void; onSubmit: (event: FormEvent) => void; onClose: () => void; }; export function PublishModal({ publishTarget, releaseNote, publishVisibility, publishing, onReleaseNoteChange, onPublishVisibilityChange, onSubmit, onClose, }: PublishModalProps) { const PublishTargetIcon = publishTarget ? scriptIcon(publishTarget) : null; return ( { if (!nextOpen) onClose(); }} eyebrow="不可变制品" title="发布稳定版本" size="panel" >
{publishTarget && PublishTargetIcon ? (
{publishTarget.script_name} 当前 Workspace 工作副本
) : null}