import React, { useState, useEffect, useRef } from 'react'; import './index.css' import { CSSTransition } from 'react-transition-group' import { BsPlusLg, BsPlayFill, BsChevronRight, BsArrowLeft, BsArrowBarUp, BsArrowBarDown, BsFillHddRackFill, BsFillDiagram2Fill } from "react-icons/bs"; import Subscribe from './NodeInput/Subscribe'; import Application from './NodeInput/Application'; import Publish from './NodeInput/Publish'; const AddButton = ({ nodes, setNodes }) => { return ( } /> }> ); } function Navbar(props: { children: React.ReactNode }) { return ( ); } function NavItem(props: { icon: React.ReactChild; children?: React.ReactNode }) { const [open, setOpen] = useState(false); return (
  • setOpen(!open)}> {props.icon} {open && props.children}
  • ); } function DropdownMenu({ nodes, setNodes }) { const [activeMenu, setActiveMenu] = useState('main'); const [menuHeight, setMenuHeight] = useState(null); const dropdownRef = useRef(null); useEffect(() => { setMenuHeight(dropdownRef.current?.firstChild.offsetHeight) }, []) function calcHeight(el) { const height = el.offsetHeight; setMenuHeight(height); } function DropdownItem(props) { return (
    props.goToMenu && setActiveMenu(props.goToMenu)} onKeyDown={() => props.goToMenu && setActiveMenu(props.goToMenu)}> {props.leftIcon} {props.children} {props.rightIcon}
    ); } return (
    } >Add Nodes } rightIcon={} goToMenu="application"> Application Node } rightIcon={} goToMenu="publish"> Publish Node } rightIcon={} goToMenu="subscribe"> Subscribe Node
    }>

    Create Application Node

    }>

    Create Publish Node

    }>

    Create Subscribe Node

    ); } export default AddButton