From cd73e767126ee55f999451d314f2d13cb53076d7 Mon Sep 17 00:00:00 2001 From: scarqin Date: Tue, 24 Dec 2024 15:41:14 +0800 Subject: [PATCH] feat: use translateExtent to limit scroll area --- .../core/src/pages/aiSetting/AIFlowChart.tsx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/frontend/packages/core/src/pages/aiSetting/AIFlowChart.tsx b/frontend/packages/core/src/pages/aiSetting/AIFlowChart.tsx index 12df284c..519dd343 100644 --- a/frontend/packages/core/src/pages/aiSetting/AIFlowChart.tsx +++ b/frontend/packages/core/src/pages/aiSetting/AIFlowChart.tsx @@ -5,6 +5,7 @@ import { addEdge, Connection, ConnectionMode, + CoordinateExtent, Edge, EdgeTypes, Node, @@ -148,6 +149,17 @@ const AIFlowChart = () => { setEdges(newEdges) }, [modelData]) + const calculateExtent = useCallback(() => { + const minX = LAYOUT.SERVICE_NODE_X - 50 // Add some padding + const maxX = LAYOUT.KEY_NODE_X + 300 // Add space for key node width + const minY = 0 + const maxY = (modelData.length + 1) * LAYOUT.NODE_GAP // Add extra space at bottom + return [ + [minX, minY], + [maxX, maxY] + ] as CoordinateExtent + }, [modelData.length]) + const onConnect = useCallback((params: Connection) => setEdges((eds) => addEdge(params, eds)), [setEdges]) const onNodeDrag: any = useCallback( @@ -236,6 +248,7 @@ const AIFlowChart = () => { type: 'custom' }} connectionMode={ConnectionMode.Loose} + translateExtent={calculateExtent()} /> )