| 4 | |
| 5 | // Interface definitions |
| 6 | export interface NodeDisplayProps { |
| 7 | node: SnippetNode; |
| 8 | nodes: SnippetNode[]; |
| 9 | forceUpdate: number; |
| 10 | hasMoved: boolean; |
| 11 | connectingFrom: string | null; |
| 12 | onNodeClick: (node: SnippetNode, event: React.MouseEvent<SVGGElement, MouseEvent>, type: 'none' | 'text' | 'audio') => void; |
| 13 | onStartDragging: (nodeId: string, e: React.MouseEvent, x: number, y: number) => void; |
| 14 | onDeleteNode: (nodeId: string) => void; |
| 15 | onStartConnection: (nodeId: string) => void; |
| 16 | onCompleteConnection: (nodeId: string) => void; |
| 17 | onDuplicateNode: (node: SnippetNode) => void; |
| 18 | activeContextMenuNode: string | null; |
| 19 | onContextMenuOpen: (nodeId: string) => void; |
| 20 | isFocused: boolean; |
| 21 | draggingNode: string | null; |
| 22 | scale: number; |
| 23 | playingNodeId?: string | null; |
| 24 | emojiStates?: Record<string, string>; // Add this line |
| 25 | } |
| 26 | |
| 27 | // Dropdown option interface |
| 28 | interface DropdownOption { |
nothing calls this directly
no outgoing calls
no test coverage detected