import { ToolbarButtonMenu } from './button-menu'
import Icon from '@/shared/components/icon'
import BootstrapVersionSwitcher from '@/features/ui/components/bootstrap-5/bootstrap-version-switcher'
import MaterialIcon from '@/shared/components/material-icon'
import OLListGroupItem from '@/features/ui/components/ol/ol-list-group-item'
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-context'
import { insertFigure } from '../../extensions/toolbar/commands'
import getMeta from '@/utils/meta'
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]
)
const {
hasLinkedProjectFileFeature,
hasLinkedProjectOutputFileFeature,
hasLinkUrlFeature,
} = getMeta('ol-ExposedSettings')
return (
}
bs5={}
/>
}
altCommand={insertFigure}
>
openFigureModal(FigureModalSource.FILE_UPLOAD, 'file-upload')
}
>
}
bs5={}
/>
{t('upload_from_computer')}
openFigureModal(FigureModalSource.FILE_TREE, 'current-project')
}
>
}
bs5={}
/>
{t('from_project_files')}
{(hasLinkedProjectFileFeature || hasLinkedProjectOutputFileFeature) && (
openFigureModal(FigureModalSource.OTHER_PROJECT, 'other-project')
}
>
}
bs5={}
/>
{t('from_another_project')}
)}
{hasLinkUrlFeature && (
openFigureModal(FigureModalSource.FROM_URL, 'from-url')
}
>
}
bs5={}
/>
{t('from_url')}
)}
)
})