refactor(workflow): simplify edge configuration

This commit is contained in:
Xin Wang
2026-08-03 15:17:01 +08:00
parent dd40bfb90a
commit 8064bb7152
10 changed files with 53 additions and 205 deletions

View File

@@ -53,6 +53,7 @@ import {
type NodeSpecMap,
type RuntimeNodeSpec,
type WorkflowGraph,
type WorkflowEdgeData,
type WorkflowNodeData,
type WorkflowNodeType,
} from "./specs";
@@ -396,7 +397,7 @@ export function WorkflowCanvas({
const updateEdgeData = useCallback(
(
id: string,
patch: WorkflowGraph["edges"][number]["data"],
patch: Partial<WorkflowEdgeData>,
) => {
setEdges((es) =>
es.map((e) => {
@@ -535,6 +536,7 @@ export function WorkflowCanvas({
const editingNode = nodes.find((n) => n.id === editingNodeId);
const editingSpec = editingNode ? specsByType[editingNode.type as string] : null;
const editingEdge = edges.find((e) => e.id === editingEdgeId);
const editingEdgeData = editingEdge?.data as WorkflowEdgeData | undefined;
const addableSpecs = Object.values(specsByType).filter((s) => s.addable);
const canAddSpec = useCallback(
(spec: RuntimeNodeSpec) => {
@@ -683,7 +685,27 @@ export function WorkflowCanvas({
: settingsOpen
? "工作流设置"
: editingEdge
? "编辑连接条件"
? (
<EditableTitle
value={editingEdgeData?.label ?? ""}
placeholder={
editingEdgeData?.mode === "llm"
? "大模型判断"
: editingEdgeData?.mode === "expression"
? "表达式"
: "默认路径"
}
editLabel="连接名称"
variant="panel"
allowEmpty
maxLength={64}
onChange={(label) =>
updateEdgeData(editingEdge.id, {
label: label || undefined,
})
}
/>
)
: editingNode && editingSpec
? (
<EditableTitle