Просмотр исходного кода

Merge pull request #15742 from overleaf/td-ide-page-double-click-divider

React IDE page: make column dividers double clickable

GitOrigin-RevId: 005b03ec5837293a2182d2d30d0955abaadc8e0c
Tim Down 2 лет назад
Родитель
Сommit
80ef96846a

+ 5 - 2
services/web/frontend/js/features/ide-react/components/editor-and-pdf.tsx

@@ -60,12 +60,15 @@ export default function EditorAndPdf({
           {editorContent}
           {editorContent}
         </Panel>
         </Panel>
       ) : null}
       ) : null}
-      <HorizontalResizeHandle resizable={isDualPane}>
+      <HorizontalResizeHandle
+        resizable={isDualPane}
+        onDoubleClick={() => setPdfIsOpen(!pdfIsOpen)}
+      >
         <HorizontalToggler
         <HorizontalToggler
           id="editor-pdf"
           id="editor-pdf"
           togglerType="east"
           togglerType="east"
           isOpen={pdfIsOpen}
           isOpen={pdfIsOpen}
-          setIsOpen={isOpen => setPdfIsOpen(isOpen)}
+          setIsOpen={setPdfIsOpen}
           tooltipWhenOpen={t('tooltip_hide_pdf')}
           tooltipWhenOpen={t('tooltip_hide_pdf')}
           tooltipWhenClosed={t('tooltip_show_pdf')}
           tooltipWhenClosed={t('tooltip_show_pdf')}
         />
         />

+ 2 - 2
services/web/frontend/js/features/ide-react/components/layout/placeholder/placeholder-editor-and-pdf.tsx

@@ -66,12 +66,12 @@ export default function PlaceholderEditorAndPdf({
           ) : null}
           ) : null}
         </PanelGroup>
         </PanelGroup>
       </Panel>
       </Panel>
-      <HorizontalResizeHandle>
+      <HorizontalResizeHandle onDoubleClick={() => setPdfIsOpen(!pdfIsOpen)}>
         <HorizontalToggler
         <HorizontalToggler
           id="editor-pdf"
           id="editor-pdf"
           togglerType="east"
           togglerType="east"
           isOpen={pdfIsOpen}
           isOpen={pdfIsOpen}
-          setIsOpen={pdfIsOpen => setPdfIsOpen(pdfIsOpen)}
+          setIsOpen={setPdfIsOpen}
           tooltipWhenOpen={t('tooltip_hide_pdf')}
           tooltipWhenOpen={t('tooltip_hide_pdf')}
           tooltipWhenClosed={t('tooltip_show_pdf')}
           tooltipWhenClosed={t('tooltip_show_pdf')}
         />
         />

+ 5 - 2
services/web/frontend/js/features/ide-react/components/layout/two-column-main-content.tsx

@@ -64,12 +64,15 @@ export default function TwoColumnMainContent({
       >
       >
         {leftColumnIsOpen ? leftColumnContent : null}
         {leftColumnIsOpen ? leftColumnContent : null}
       </Panel>
       </Panel>
-      <HorizontalResizeHandle>
+      <HorizontalResizeHandle
+        onDoubleClick={() => setLeftColumnIsOpen(!leftColumnIsOpen)}
+        resizable={leftColumnIsOpen}
+      >
         <HorizontalToggler
         <HorizontalToggler
           id={leftColumnId}
           id={leftColumnId}
           togglerType="west"
           togglerType="west"
           isOpen={leftColumnIsOpen}
           isOpen={leftColumnIsOpen}
-          setIsOpen={isOpen => setLeftColumnIsOpen(isOpen)}
+          setIsOpen={setLeftColumnIsOpen}
           tooltipWhenOpen={t('tooltip_hide_filetree')}
           tooltipWhenOpen={t('tooltip_hide_filetree')}
           tooltipWhenClosed={t('tooltip_show_filetree')}
           tooltipWhenClosed={t('tooltip_show_filetree')}
         />
         />

+ 8 - 2
services/web/frontend/js/features/ide-react/components/resize/horizontal-resize-handle.tsx

@@ -4,9 +4,14 @@ import { useTranslation } from 'react-i18next'
 import { PanelResizeHandleProps } from 'react-resizable-panels/dist/declarations/src/PanelResizeHandle'
 import { PanelResizeHandleProps } from 'react-resizable-panels/dist/declarations/src/PanelResizeHandle'
 import classNames from 'classnames'
 import classNames from 'classnames'
 
 
+type HorizontalResizeHandleOwnProps = {
+  resizable?: boolean
+  onDoubleClick?: () => void
+}
+
 export const HorizontalResizeHandle: FC<
 export const HorizontalResizeHandle: FC<
-  { resizable?: boolean } & PanelResizeHandleProps
-> = ({ children, resizable = true, ...props }) => {
+  HorizontalResizeHandleOwnProps & PanelResizeHandleProps
+> = ({ children, resizable = true, onDoubleClick, ...props }) => {
   const { t } = useTranslation()
   const { t } = useTranslation()
 
 
   return (
   return (
@@ -16,6 +21,7 @@ export const HorizontalResizeHandle: FC<
           'horizontal-resize-handle-enabled': resizable,
           'horizontal-resize-handle-enabled': resizable,
         })}
         })}
         title={t('resize')}
         title={t('resize')}
+        onDoubleClick={() => onDoubleClick?.()}
       >
       >
         {children}
         {children}
       </div>
       </div>

+ 1 - 1
services/web/frontend/js/features/ide-react/components/resize/horizontal-toggler.tsx

@@ -6,7 +6,7 @@ type HorizontalTogglerType = 'west' | 'east'
 type HorizontalTogglerProps = {
 type HorizontalTogglerProps = {
   id: string
   id: string
   isOpen: boolean
   isOpen: boolean
-  setIsOpen: (isClosed: boolean) => void
+  setIsOpen: (isOpen: boolean) => void
   togglerType: HorizontalTogglerType
   togglerType: HorizontalTogglerType
   tooltipWhenOpen: string
   tooltipWhenOpen: string
   tooltipWhenClosed: string
   tooltipWhenClosed: string