import React from 'react' import ReactDOM from 'react-dom' import { Dropdown } from 'react-bootstrap' import { useEditorContext } from '../../../shared/context/editor-context' import { useFileTreeMainContext } from '../contexts/file-tree-main' import FileTreeItemMenuItems from './file-tree-item/file-tree-item-menu-items' function FileTreeContextMenu() { const { permissionsLevel } = useEditorContext() const { contextMenuCoords, setContextMenuCoords } = useFileTreeMainContext() if (permissionsLevel === 'readOnly' || !contextMenuCoords) return null function close() { // reset context menu setContextMenuCoords(null) } function handleToggle(wantOpen: boolean) { if (!wantOpen) close() } function handleClick() { handleToggle(false) } return ReactDOM.createPortal( , document.body ) } // fake component required as Dropdowns require a Toggle, even tho we don't want // one for the context menu const FakeDropDownToggle = React.forwardRef( ({ bsRole }, ref) => { return null } ) FakeDropDownToggle.displayName = 'FakeDropDownToggle' export default FileTreeContextMenu