pref(flowEditor): 优化节点添加弹窗的交互

master
钟良源 3 months ago
parent bc76be9f34
commit 11a0f992c0

@ -154,7 +154,8 @@ const FlowEditorMain: React.FC<FlowEditorMainProps> = (props) => {
newSet.delete(appId); newSet.delete(appId);
return newSet; return newSet;
}); });
} else { }
else {
// 隐藏节点 - 添加到隐藏节点集合 // 隐藏节点 - 添加到隐藏节点集合
setHiddenNodes(prev => new Set(prev).add(appId)); setHiddenNodes(prev => new Set(prev).add(appId));
} }
@ -188,7 +189,8 @@ const FlowEditorMain: React.FC<FlowEditorMainProps> = (props) => {
newSet.delete(appId); newSet.delete(appId);
return newSet; return newSet;
}); });
} else { }
else {
// 隐藏节点 - 添加到隐藏节点集合 // 隐藏节点 - 添加到隐藏节点集合
setHiddenNodes(prev => new Set(prev).add(appId)); setHiddenNodes(prev => new Set(prev).add(appId));
} }
@ -238,7 +240,14 @@ const FlowEditorMain: React.FC<FlowEditorMainProps> = (props) => {
return ( return (
<div ref={reactFlowWrapper} style={{ width: '100%', height: '100%', position: 'relative' }} <div ref={reactFlowWrapper} style={{ width: '100%', height: '100%', position: 'relative' }}
onContextMenu={(e) => e.preventDefault()}> onContextMenu={(e) => e.preventDefault()}
// 添加点击事件处理器,用于关闭添加节点菜单
onClick={() => {
if (edgeForNodeAdd || positionForNodeAdd) {
setEdgeForNodeAdd(null);
setPositionForNodeAdd(null);
}
}}>
<ReactFlow <ReactFlow
id={reactFlowId} id={reactFlowId}
nodes={nodes.map(node => { nodes={nodes.map(node => {
@ -517,6 +526,8 @@ const FlowEditorMain: React.FC<FlowEditorMainProps> = (props) => {
zIndex: 1000, zIndex: 1000,
transform: 'none' transform: 'none'
}} }}
// 点击事件冒泡到父级处理,这里阻止默认行为
onClick={(e) => e.stopPropagation()}
> >
<AddNodeMenu <AddNodeMenu
onAddNode={(nodeType, node) => { onAddNode={(nodeType, node) => {

Loading…
Cancel
Save