diff --git a/web/app/dashboard/ai-workflows/_components/workflow-editor.tsx b/web/app/dashboard/ai-workflows/_components/workflow-editor.tsx index 0e921db..e5738ee 100644 --- a/web/app/dashboard/ai-workflows/_components/workflow-editor.tsx +++ b/web/app/dashboard/ai-workflows/_components/workflow-editor.tsx @@ -25,6 +25,7 @@ import { CheckCircle2Icon, PanelLeftCloseIcon, PanelLeftOpenIcon, + PlusIcon, } from "lucide-react" import { useCallback, useEffect, useMemo, useRef, useState } from "react" @@ -855,6 +856,13 @@ function WorkflowCanvasNode({ data, selected }: NodeProps) { const missingInputs = data.missingInputs ?? [] const hasIssue = missingInputs.length > 0 const isConditionNode = data.nodeType === "condition" + const handleClassName = cn( + "!size-4 !rounded-full !border-0 !bg-primary !text-primary-foreground !shadow-md", + "flex items-center justify-center opacity-0 transition-all duration-150", + selected + ? "pointer-events-auto opacity-100" + : "pointer-events-none group-hover/node:pointer-events-auto group-hover/node:opacity-100" + ) if (isConditionNode) { return (
@@ -868,8 +876,10 @@ function WorkflowCanvasNode({ data, selected }: NodeProps) { + className={cn("!left-0", handleClassName)} + > + +
{hasIssue ? ( @@ -882,8 +892,10 @@ function WorkflowCanvasNode({ data, selected }: NodeProps) { + className={cn("!right-0", handleClassName)} + > + +
) } @@ -898,8 +910,10 @@ function WorkflowCanvasNode({ data, selected }: NodeProps) { + className={cn("!-left-2.5", handleClassName)} + > + +
{hasIssue ? ( @@ -929,8 +943,10 @@ function WorkflowCanvasNode({ data, selected }: NodeProps) { + className={cn("!-right-2.5", handleClassName)} + > + +
) }