import { javascript } from "@codemirror/lang-javascript"; import CodeMirror from "@uiw/react-codemirror"; import { Button, Modal } from "antd"; import { useEffect, useState } from "react"; import { PLUGIN_RETURNS, PLUGIN_TEMPLATES, PLUGIN_VARIABLES } from "@/services/api/model-plugin"; import type { ModelCapability } from "@/stores/use-config-store"; const capabilityLabels: Record = { image: "生图", video: "视频", text: "文本", audio: "音频" }; function isDarkMode() { return typeof document !== "undefined" && document.documentElement.classList.contains("dark"); } export function ModelScriptEditor({ open, capability, modelName, value, onSave, onClose }: { open: boolean; capability: ModelCapability; modelName: string; value: string; onSave: (script: string) => void; onClose: () => void }) { const [draft, setDraft] = useState(value); useEffect(() => { if (open) setDraft(value); }, [open, value]); const variables = PLUGIN_VARIABLES.filter((variable) => !variable.capabilities || variable.capabilities.includes(capability)); return (
{capabilityLabels[capability]} {modelName ? ` - ${modelName}` : ""}
脚本是一段异步函数体,直接使用下方变量,最后 return 结果;留空则使用系统默认调用。
} width={1080} centered onCancel={onClose} styles={{ body: { padding: 0 } }} footer={
{PLUGIN_TEMPLATES[capability].map((template) => ( ))}
} >
); }