import { ListGroupItem } from 'react-bootstrap' import { ToolbarButtonMenu } from './button-menu' import Icon from '../../../../shared/components/icon' import { memo, useCallback } from 'react' import { FigureModalSource } from '../figure-modal/figure-modal-context' import { useTranslation } from 'react-i18next' import { emitToolbarEvent } from '../../extensions/toolbar/utils/analytics' import { useCodeMirrorViewContext } from '../codemirror-editor' import { insertFigure } from '../../extensions/toolbar/commands' export const InsertFigureDropdown = memo(function InsertFigureDropdown() { const { t } = useTranslation() const view = useCodeMirrorViewContext() const openFigureModal = useCallback( (source: FigureModalSource, sourceName: string) => { emitToolbarEvent(view, `toolbar-figure-modal-${sourceName}`) window.dispatchEvent( new CustomEvent('figure-modal:open', { detail: source, }) ) }, [view] ) return ( openFigureModal(FigureModalSource.FILE_UPLOAD, 'file-upload') } > Upload from computer openFigureModal(FigureModalSource.FILE_TREE, 'current-project') } > From project files openFigureModal(FigureModalSource.OTHER_PROJECT, 'other-project') } > From another project openFigureModal(FigureModalSource.FROM_URL, 'from-url')} > From URL ) })