feat: implement WorkflowPortAdd context and associated components for enhanced node addition

This commit is contained in:
mlogclub
2026-06-28 21:17:25 +08:00
parent 9373e7d517
commit 4a3482f2f0
5 changed files with 196 additions and 52 deletions
@@ -8,9 +8,11 @@ import {
import { useLayoutEffect } from "react"
import { cn } from "@/lib/utils"
import { useWorkflowPortAdd } from "./workflow-port-add-context"
export function FlowgramNodeRenderer(props: WorkflowNodeProps) {
const { selected, node, form } = useNodeRender()
const requestPortAdd = useWorkflowPortAdd()
const nodeType = String(node.flowNodeType ?? "")
useLayoutEffect(() => {
@@ -33,6 +35,13 @@ export function FlowgramNodeRenderer(props: WorkflowNodeProps) {
portPrimaryColor="#2575FC"
portSecondaryColor="#c9cdd4"
portBackgroundColor="#FFFFFF"
onPortClick={(port, event) => {
if (port.portType !== "output" || typeof event === "function") {
return
}
event.stopPropagation()
requestPortAdd?.({ port, event })
}}
>
{form?.render()}
</WorkflowNodeRenderer>