import { WorkflowNode, WorkflowNodeType } from "@/domain/workflow"; import AddNode from "./AddNode"; import { useWorkflowStore, WorkflowState } from "@/providers/workflow"; import { useShallow } from "zustand/shallow"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../ui/dropdown-menu"; import { Ellipsis, Trash2 } from "lucide-react"; import { usePanel } from "./PanelProvider"; import PanelBody from "./PanelBody"; type NodeProps = { data: WorkflowNode; }; const selectState = (state: WorkflowState) => ({ updateNode: state.updateNode, removeNode: state.removeNode, }); const Node = ({ data }: NodeProps) => { const { updateNode, removeNode } = useWorkflowStore(useShallow(selectState)); const handleNameBlur = (e: React.FocusEvent) => { updateNode({ ...data, name: e.target.innerText }); }; const { showPanel } = usePanel(); const handleNodeSettingClick = () => { showPanel({ name: data.name, children: , }); }; return ( <>
{data.type != WorkflowNodeType.Start && ( <> { removeNode(data.id); }} >
删除节点
)}
{data.name}
设置节点
); }; export default Node;