diff --git a/services/web/frontend/js/features/source-editor/components/toolbar/button-menu.tsx b/services/web/frontend/js/features/source-editor/components/toolbar/button-menu.tsx index 12fa52032e..086ecc66e5 100644 --- a/services/web/frontend/js/features/source-editor/components/toolbar/button-menu.tsx +++ b/services/web/frontend/js/features/source-editor/components/toolbar/button-menu.tsx @@ -1,4 +1,4 @@ -import { FC, memo, useRef } from 'react' +import { FC, memo, useEffect, useRef } from 'react' import useDropdown from '../../../../shared/hooks/use-dropdown' import OLListGroup from '@/features/ui/components/ol/ol-list-group' import OLTooltip from '@/features/ui/components/ol/ol-tooltip' @@ -13,13 +13,27 @@ export const ToolbarButtonMenu: FC< id: string label: string icon: React.ReactNode + disablePopover?: boolean altCommand?: (view: EditorView) => void }> -> = memo(function ButtonMenu({ icon, id, label, altCommand, children }) { +> = memo(function ButtonMenu({ + icon, + id, + label, + altCommand, + disablePopover, + children, +}) { const target = useRef(null) const { open, onToggle, ref } = useDropdown() const view = useCodeMirrorViewContext() + useEffect(() => { + if (disablePopover && open) { + onToggle(false) + } + }, [open, disablePopover, onToggle]) + const button = (