import { TooltipContent, TooltipNode, TooltipTrigger, } from '@/components/xyflow/tooltip-node'; import { Position } from '@xyflow/react'; import { Copy, Play, Trash2 } from 'lucide-react'; import { HTMLAttributes, MouseEventHandler, PropsWithChildren, useCallback, } from 'react'; import { useDuplicateNode } from '../../hooks'; import useGraphStore from '../../store'; function IconWrapper({ children, ...props }: HTMLAttributes) { return (
{children}
); } type ToolBarProps = { selected?: boolean | undefined; label: string; id: string; showRun?: boolean; } & PropsWithChildren; export function ToolBar({ selected, children, label, id, showRun = true, }: ToolBarProps) { const deleteNodeById = useGraphStore((store) => store.deleteNodeById); const deleteNode: MouseEventHandler = useCallback( (e) => { e.stopPropagation(); deleteNodeById(id); }, [deleteNodeById, id], ); const duplicateNode = useDuplicateNode(); const handleDuplicate: MouseEventHandler = useCallback( (e) => { e.stopPropagation(); duplicateNode(id, label); }, [duplicateNode, id, label], ); return ( {children}
{showRun && ( )}{' '}
); }