From 587390d0666b714c67ce79333c09a7a89a9878ea Mon Sep 17 00:00:00 2001 From: Mathias Jakobsen Date: Tue, 13 May 2025 11:06:07 +0100 Subject: [PATCH] Merge pull request #25514 from overleaf/mj-ide-pdf-controls-editor-only [web] Hide PDF controls from menu bar in editor only mode GitOrigin-RevId: 91513e40693e1214c3bdbc56d9dec19e08c74e36 --- .../components/pdf-viewer-controls-toolbar.tsx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-viewer-controls-toolbar.tsx b/services/web/frontend/js/features/pdf-preview/components/pdf-viewer-controls-toolbar.tsx index f11769f4e6..fed34bf3ee 100644 --- a/services/web/frontend/js/features/pdf-preview/components/pdf-viewer-controls-toolbar.tsx +++ b/services/web/frontend/js/features/pdf-preview/components/pdf-viewer-controls-toolbar.tsx @@ -8,6 +8,7 @@ import PdfViewerControlsMenuButton from './pdf-viewer-controls-menu-button' import { useDetachCompileContext as useCompileContext } from '../../../shared/context/detach-compile-context' import { useCommandProvider } from '@/features/ide-react/hooks/use-command-provider' import { useTranslation } from 'react-i18next' +import { useLayoutContext } from '@/shared/context/layout-context' type PdfViewerControlsToolbarProps = { requestPresentationMode: () => void @@ -44,8 +45,15 @@ function PdfViewerControlsToolbar({ const { elementRef: pdfControlsRef } = useResizeObserver(handleResize) - useCommandProvider( - () => [ + const { view: ideView, pdfLayout } = useLayoutContext() + const editorOnly = ideView !== 'pdf' && pdfLayout === 'flat' + + useCommandProvider(() => { + if (editorOnly) { + return + } + + return [ { id: 'view-pdf-presentation-mode', label: t('presentation_mode'), @@ -71,9 +79,8 @@ function PdfViewerControlsToolbar({ label: t('fit_to_height'), handler: () => setZoom('page-height'), }, - ], - [t, requestPresentationMode, setZoom] - ) + ] + }, [t, requestPresentationMode, setZoom, editorOnly]) if (!toolbarControlsElement) { return null