diff --git a/frontend/src/agents/AgentPageHeader.tsx b/frontend/src/agents/AgentPageHeader.tsx index 38439801..6d693f58 100644 --- a/frontend/src/agents/AgentPageHeader.tsx +++ b/frontend/src/agents/AgentPageHeader.tsx @@ -90,7 +90,7 @@ export default function AgentPageHeader({ {currentPage === 'overview' ? ( - + {displayName} ) : ( diff --git a/frontend/src/agents/workflow/WorkflowBuilder.tsx b/frontend/src/agents/workflow/WorkflowBuilder.tsx index 8693d62e..d821d9f8 100644 --- a/frontend/src/agents/workflow/WorkflowBuilder.tsx +++ b/frontend/src/agents/workflow/WorkflowBuilder.tsx @@ -100,6 +100,7 @@ import { import WorkflowPreview from './WorkflowPreview'; import type { Model } from '../../models/types'; +import { useOutsideAlerter } from '@/hooks'; const PRIMARY_ACTION_SPINNER_DELAY_MS = 180; @@ -774,26 +775,22 @@ function WorkflowBuilderInner() { showPreview, ]); - const handlePanelBackdropClick = useCallback(() => { + const handlePaneClick = useCallback(() => { setShowNodeConfig(false); setSelectedNode(null); + setShowWorkflowSettings(false); }, []); - useEffect(() => { - const handleClickOutside = (e: MouseEvent) => { - if ( - workflowSettingsRef.current && - !workflowSettingsRef.current.contains(e.target as HTMLElement) - ) { - setShowWorkflowSettings(false); - } - }; - if (showWorkflowSettings) { - document.addEventListener('mousedown', handleClickOutside); - return () => - document.removeEventListener('mousedown', handleClickOutside); - } - }, [showWorkflowSettings]); + const handleCloseWorkflowSettings = useCallback(() => { + setShowWorkflowSettings(false); + }, []); + + useOutsideAlerter( + workflowSettingsRef, + handleCloseWorkflowSettings, + [], + false, + ); useEffect(() => { const loadModelsAndTools = async () => { @@ -1940,6 +1937,7 @@ function WorkflowBuilderInner() { onDrop={onDrop} onDragOver={onDragOver} onNodeClick={handleNodeClick} + onPaneClick={handlePaneClick} onNodeDragStart={snapshotBeforeCanvasChange} onSelectionDragStart={snapshotBeforeCanvasChange} nodeTypes={nodeTypes} @@ -1979,10 +1977,6 @@ function WorkflowBuilderInner() { {showNodeConfig && selectedNode && ( <> -