diff --git a/web/app/dashboard/ai-workflows/_components/workflow-editor.tsx b/web/app/dashboard/ai-workflows/_components/workflow-editor.tsx index f4c8d73..7d403ed 100644 --- a/web/app/dashboard/ai-workflows/_components/workflow-editor.tsx +++ b/web/app/dashboard/ai-workflows/_components/workflow-editor.tsx @@ -27,7 +27,6 @@ import { PanelLeftOpenIcon, } from "lucide-react" import { useCallback, useEffect, useMemo, useRef, useState } from "react" -import type { PanelImperativeHandle } from "react-resizable-panels" import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" @@ -167,7 +166,6 @@ export function WorkflowEditor({ const [selectedNodeId, setSelectedNodeId] = useState(null) const [nodeLibraryCollapsed, setNodeLibraryCollapsed] = useState(false) const [pendingNodeDrag, setPendingNodeDrag] = useState(null) - const nodeLibraryPanelRef = useRef(null) const canvasRef = useRef(null) const pendingNodeDragRef = useRef(null) const suppressNextClickRef = useRef(false) @@ -256,23 +254,6 @@ export function WorkflowEditor({ }) } - const toggleNodeLibrary = () => { - const panel = nodeLibraryPanelRef.current - if (!panel) { - setNodeLibraryCollapsed((current) => !current) - return - } - - if (panel.isCollapsed()) { - panel.expand() - setNodeLibraryCollapsed(false) - return - } - - panel.collapse() - setNodeLibraryCollapsed(true) - } - const dropNodeOnCanvas = useCallback( (spec: AIWorkflowNodeSpec, x: number, y: number) => { if (!flowInstance || !canvasRef.current) { @@ -357,70 +338,67 @@ export function WorkflowEditor({ return ( + {!nodeLibraryCollapsed ? ( + <> + + + + + + ) : null} { - setNodeLibraryCollapsed(panelSize.asPercentage <= 1) - }} + defaultSize={ + nodeLibraryCollapsed ? (selectedNode ? "74%" : "100%") : selectedNode ? "56%" : "82%" + } + minSize="30%" className="min-h-0" > - {nodeLibraryCollapsed ? null : ( - - )} - - -
setNodeLibraryCollapsed(false)} aria-label="展开节点库" >