import { FeaturesController } from '@/Controllers/FeaturesController' import { FilesController } from '@/Controllers/FilesController' import { LinkingController } from '@/Controllers/LinkingController' import { observer } from 'mobx-react-lite' import { useRef, useCallback } from 'react' import { useApplication } from '../ApplicationProvider' import RoundIconButton from '../Button/RoundIconButton' import Popover from '../Popover/Popover' import StyledTooltip from '../StyledTooltip/StyledTooltip' import LinkedItemsPanel from './LinkedItemsPanel' type Props = { linkingController: LinkingController onClickPreprocessing?: () => Promise filesController: FilesController featuresController: FeaturesController } const LinkedItemsButton = ({ linkingController, filesController, onClickPreprocessing, featuresController }: Props) => { const application = useApplication() const activeItem = application.itemControllerGroup.activeItemViewController?.item const { isLinkingPanelOpen, setIsLinkingPanelOpen } = linkingController const buttonRef = useRef(null) const toggleMenu = useCallback(async () => { const willMenuOpen = !isLinkingPanelOpen if (willMenuOpen && onClickPreprocessing) { await onClickPreprocessing() } setIsLinkingPanelOpen(willMenuOpen) }, [isLinkingPanelOpen, onClickPreprocessing, setIsLinkingPanelOpen]) if (!activeItem) { return null } return ( <> ) } export default observer(LinkedItemsButton)