refactor(workflow): simplify edge configuration
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user