From cf81524f724b9c5c8314d2dceedced3c50f655e1 Mon Sep 17 00:00:00 2001 From: Jimmy Domagala-Tang Date: Tue, 13 May 2025 08:12:04 -0400 Subject: [PATCH] Merge pull request #25587 from overleaf/dk-select-table-size-fix Prevent "select size" popover in TableDropdown from closing when toolbar is collapsed GitOrigin-RevId: 82f8226e0ff071dfea965c8c991141d90ff72197 --- .../components/toolbar/button-menu.tsx | 20 ++++++++++++++++--- .../components/toolbar/table-dropdown.tsx | 19 ++++++++++-------- 2 files changed, 28 insertions(+), 11 deletions(-) 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 = (