| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  | import { memo } from 'react' | 
					
						
							|  |  |  | import type { ConnectionLineComponentProps } from 'reactflow' | 
					
						
							|  |  |  | import { | 
					
						
							|  |  |  |   Position, | 
					
						
							| 
									
										
										
										
											2024-04-15 15:49:40 +08:00
										 |  |  |   getBezierPath, | 
					
						
							| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  | } from 'reactflow' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const CustomConnectionLine = ({ fromX, fromY, toX, toY }: ConnectionLineComponentProps) => { | 
					
						
							|  |  |  |   const [ | 
					
						
							|  |  |  |     edgePath, | 
					
						
							| 
									
										
										
										
											2024-04-15 15:49:40 +08:00
										 |  |  |   ] = getBezierPath({ | 
					
						
							| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  |     sourceX: fromX, | 
					
						
							|  |  |  |     sourceY: fromY, | 
					
						
							|  |  |  |     sourcePosition: Position.Right, | 
					
						
							|  |  |  |     targetX: toX, | 
					
						
							|  |  |  |     targetY: toY, | 
					
						
							|  |  |  |     targetPosition: Position.Left, | 
					
						
							| 
									
										
										
										
											2024-04-15 15:49:40 +08:00
										 |  |  |     curvature: 0.16, | 
					
						
							| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  |   }) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return ( | 
					
						
							|  |  |  |     <g> | 
					
						
							|  |  |  |       <path | 
					
						
							|  |  |  |         fill="none" | 
					
						
							|  |  |  |         stroke='#D0D5DD' | 
					
						
							|  |  |  |         strokeWidth={2} | 
					
						
							|  |  |  |         d={edgePath} | 
					
						
							|  |  |  |       /> | 
					
						
							|  |  |  |       <rect | 
					
						
							|  |  |  |         x={toX} | 
					
						
							|  |  |  |         y={toY - 4} | 
					
						
							|  |  |  |         width={2} | 
					
						
							|  |  |  |         height={8} | 
					
						
							|  |  |  |         fill='#2970FF' | 
					
						
							|  |  |  |       /> | 
					
						
							|  |  |  |     </g> | 
					
						
							|  |  |  |   ) | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export default memo(CustomConnectionLine) |