import { useCallback, useRef, useState } from 'react' import { observer } from 'mobx-react-lite' import NotesOptions from './NotesOptions' import { NotesController } from '@/Controllers/NotesController/NotesController' import { NavigationController } from '@/Controllers/Navigation/NavigationController' import { HistoryModalController } from '@/Controllers/NoteHistory/HistoryModalController' import Popover from '../Popover/Popover' import { LinkingController } from '@/Controllers/LinkingController' import RoundIconButton from '../Button/RoundIconButton' import Menu from '../Menu/Menu' type Props = { navigationController: NavigationController notesController: NotesController linkingController: LinkingController historyModalController: HistoryModalController onClickPreprocessing?: () => Promise } const NotesOptionsPanel = ({ navigationController, notesController, linkingController, historyModalController, onClickPreprocessing, }: Props) => { const [isOpen, setIsOpen] = useState(false) const buttonRef = useRef(null) const toggleMenu = useCallback(async () => { const willMenuOpen = !isOpen if (willMenuOpen && onClickPreprocessing) { await onClickPreprocessing() } setIsOpen(willMenuOpen) }, [onClickPreprocessing, isOpen]) const [disableClickOutside, setDisableClickOutside] = useState(false) const handleDisableClickOutsideRequest = useCallback((disabled: boolean) => { setDisableClickOutside(disabled) }, []) return ( <> ) } export default observer(NotesOptionsPanel)