feat(web): end node support right port
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
* @Author: ZhaoYing
|
* @Author: ZhaoYing
|
||||||
* @Date: 2026-02-09 18:30:28
|
* @Date: 2026-02-09 18:30:28
|
||||||
* @Last Modified by: ZhaoYing
|
* @Last Modified by: ZhaoYing
|
||||||
* @Last Modified time: 2026-03-20 11:24:26
|
* @Last Modified time: 2026-03-24 11:11:56
|
||||||
*/
|
*/
|
||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import { Popover } from 'antd';
|
import { Popover } from 'antd';
|
||||||
@@ -234,10 +234,6 @@ const PortClickHandler: React.FC<PortClickHandlerProps> = ({ graph }) => {
|
|||||||
const sourceNodeData = sourceNode?.getData();
|
const sourceNodeData = sourceNode?.getData();
|
||||||
const isChildOfLoop = sourceNodeData?.cycle && graph?.getNodes().find((n: any) => n.getData()?.id === sourceNodeData.cycle && n.getData()?.type === 'loop');
|
const isChildOfLoop = sourceNodeData?.cycle && graph?.getNodes().find((n: any) => n.getData()?.id === sourceNodeData.cycle && n.getData()?.type === 'loop');
|
||||||
const isChildOfIteration = sourceNodeData?.cycle && graph?.getNodes().find((n: any) => n.getData()?.id === sourceNodeData.cycle && n.getData()?.type === 'iteration');
|
const isChildOfIteration = sourceNodeData?.cycle && graph?.getNodes().find((n: any) => n.getData()?.id === sourceNodeData.cycle && n.getData()?.type === 'iteration');
|
||||||
|
|
||||||
const sourcePortInfo = sourceNode?.getPorts().find((p: any) => p.id === sourcePort);
|
|
||||||
const sourcePortGroup = sourcePortInfo?.group || sourcePort;
|
|
||||||
const isLeftPort = sourcePortGroup === 'left';
|
|
||||||
|
|
||||||
let filteredNodes;
|
let filteredNodes;
|
||||||
if (isChildOfLoop) {
|
if (isChildOfLoop) {
|
||||||
@@ -252,10 +248,6 @@ const PortClickHandler: React.FC<PortClickHandlerProps> = ({ graph }) => {
|
|||||||
nodeType.type !== 'start' && nodeType.type !== 'cycle-start' && nodeType.type !== 'break'
|
nodeType.type !== 'start' && nodeType.type !== 'cycle-start' && nodeType.type !== 'break'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isLeftPort) {
|
|
||||||
filteredNodes = filteredNodes.filter(nodeType => nodeType.type !== 'end');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (filteredNodes.length === 0) return null;
|
if (filteredNodes.length === 0) return null;
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* @Author: ZhaoYing
|
* @Author: ZhaoYing
|
||||||
* @Date: 2026-02-03 15:06:18
|
* @Date: 2026-02-03 15:06:18
|
||||||
* @Last Modified by: ZhaoYing
|
* @Last Modified by: ZhaoYing
|
||||||
* @Last Modified time: 2026-03-20 11:23:17
|
* @Last Modified time: 2026-03-24 11:11:46
|
||||||
*/
|
*/
|
||||||
import LoopNode from './components/Nodes/LoopNode';
|
import LoopNode from './components/Nodes/LoopNode';
|
||||||
import NormalNode from './components/Nodes/NormalNode';
|
import NormalNode from './components/Nodes/NormalNode';
|
||||||
@@ -773,15 +773,6 @@ export const graphNodeLibrary: Record<string, NodeConfig> = {
|
|||||||
items: [defaultPortItems[1]],
|
items: [defaultPortItems[1]],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
end: {
|
|
||||||
width: nodeWidth,
|
|
||||||
height: 76,
|
|
||||||
shape: 'normal-node',
|
|
||||||
ports: {
|
|
||||||
groups: { left: defaultPortGroup},
|
|
||||||
items: [defaultPortItems[0]],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
'cycle-start': {
|
'cycle-start': {
|
||||||
width: 36,
|
width: 36,
|
||||||
height: 36,
|
height: 36,
|
||||||
|
|||||||
@@ -821,16 +821,12 @@ export const useWorkflowGraph = ({
|
|||||||
|
|
||||||
// Node cannot connect to itself
|
// Node cannot connect to itself
|
||||||
if (sourceCell?.id === targetCell?.id) return false;
|
if (sourceCell?.id === targetCell?.id) return false;
|
||||||
|
|
||||||
const sourceType = sourceCell?.getData()?.type;
|
|
||||||
const targetType = targetCell?.getData()?.type;
|
const targetType = targetCell?.getData()?.type;
|
||||||
|
|
||||||
// Start node cannot be connection target
|
// Start node cannot be connection target
|
||||||
if (targetType === 'start') return false;
|
if (targetType === 'start') return false;
|
||||||
|
|
||||||
// End node cannot be connection source
|
|
||||||
if (sourceType === 'end') return false;
|
|
||||||
|
|
||||||
// Get source node and target node parent IDs
|
// Get source node and target node parent IDs
|
||||||
const sourceParentId = sourceCell?.getData()?.cycle;
|
const sourceParentId = sourceCell?.getData()?.cycle;
|
||||||
const targetParentId = targetCell?.getData()?.cycle;
|
const targetParentId = targetCell?.getData()?.cycle;
|
||||||
|
|||||||
Reference in New Issue
Block a user