diff --git a/services/web/frontend/js/features/chat/components/message-dropdown.tsx b/services/web/frontend/js/features/chat/components/message-dropdown.tsx index 505d84922b..4393202bee 100644 --- a/services/web/frontend/js/features/chat/components/message-dropdown.tsx +++ b/services/web/frontend/js/features/chat/components/message-dropdown.tsx @@ -1,9 +1,9 @@ import { - Dropdown, - DropdownItem, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownItem, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import MaterialIcon from '@/shared/components/material-icon' import { useTranslation } from 'react-i18next' import DropdownListItem from '@/shared/components/dropdown/dropdown-list-item' @@ -32,11 +32,11 @@ export default function MessageDropdown({ message }: { message: Message }) { }, [message.id, startedEditingMessage]) return ( - - + + - - + - + {t('edit')} - - + + {t('delete')} - + - - + + ) } diff --git a/services/web/frontend/js/features/editor-navigation-toolbar/components/online-users-widget.tsx b/services/web/frontend/js/features/editor-navigation-toolbar/components/online-users-widget.tsx index fef467abef..e36f70ddff 100644 --- a/services/web/frontend/js/features/editor-navigation-toolbar/components/online-users-widget.tsx +++ b/services/web/frontend/js/features/editor-navigation-toolbar/components/online-users-widget.tsx @@ -1,11 +1,11 @@ import { OnlineUser } from '@/features/ide-react/context/online-users-context' import { - Dropdown, - DropdownHeader, - DropdownItem, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownHeader, + OLDropdownItem, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import OLTooltip from '@/shared/components/ol/ol-tooltip' import { getBackgroundColorForUserId, @@ -116,8 +116,8 @@ const OnlineUserOverflow = ({ }) => { const { t } = useTranslation() return ( - - + + +{users.length} - - - + {users.map((user, index) => (
  • - goToUser(user)} > {user.name} - +
  • ))} -
    -
    + + ) } diff --git a/services/web/frontend/js/features/file-tree/components/file-tree-context-menu.tsx b/services/web/frontend/js/features/file-tree/components/file-tree-context-menu.tsx index debc2bd083..f8d4e5ee74 100644 --- a/services/web/frontend/js/features/file-tree/components/file-tree-context-menu.tsx +++ b/services/web/frontend/js/features/file-tree/components/file-tree-context-menu.tsx @@ -1,9 +1,9 @@ import React, { useCallback, useEffect, useRef } from 'react' import ReactDOM from 'react-dom' import { - Dropdown, - DropdownMenu, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownMenu, +} from '@/shared/components/ol/ol-dropdown-menu' import { useFileTreeData } from '@/shared/context/file-tree-data-context' import { useFileTreeMainContext } from '../contexts/file-tree-main' @@ -96,13 +96,13 @@ function FileTreeContextMenu() { return ReactDOM.createPortal(
    - - - - + +
    , document.body ) diff --git a/services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-menu-items.tsx b/services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-menu-items.tsx index 3ffdbe7642..fe4a65b244 100644 --- a/services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-menu-items.tsx +++ b/services/web/frontend/js/features/file-tree/components/file-tree-item/file-tree-item-menu-items.tsx @@ -4,9 +4,9 @@ import * as eventTracking from '../../../../infrastructure/event-tracking' import { useProjectContext } from '@/shared/context/project-context' import { - DropdownDivider, - DropdownItem, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdownDivider, + OLDropdownItem, +} from '@/shared/components/ol/ol-dropdown-menu' import { useFileTreeActionable } from '../../contexts/file-tree-actionable' function FileTreeItemMenuItems() { @@ -51,55 +51,57 @@ function FileTreeItemMenuItems() { <> {canRename ? (
  • - {t('rename')} + {t('rename')}
  • ) : null} {downloadPath ? (
  • - {t('download')} - +
  • ) : null} {canSetRootDocId ? ( <> - +
  • - + {t('set_as_main_document')} - +
  • ) : null} {canDelete ? ( <> - +
  • - {t('delete')} + + {t('delete')} +
  • ) : null} {canCreate ? ( <> - +
  • - + {t('new_file')} - +
  • - + {t('new_folder')} - +
  • - + {t('upload')} - +
  • ) : null} diff --git a/services/web/frontend/js/features/group-management/components/members-table/dropdown-button.tsx b/services/web/frontend/js/features/group-management/components/members-table/dropdown-button.tsx index 5b03a2ce6c..26949031a0 100644 --- a/services/web/frontend/js/features/group-management/components/members-table/dropdown-button.tsx +++ b/services/web/frontend/js/features/group-management/components/members-table/dropdown-button.tsx @@ -6,11 +6,11 @@ import { } from 'react' import { useTranslation } from 'react-i18next' import { - Dropdown, - DropdownItem, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownItem, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import { User } from '../../../../../../types/group-management/user' import useAsync from '@/shared/hooks/use-async' import { type FetchError, postJSON } from '@/infrastructure/fetch-json' @@ -318,30 +318,30 @@ export default function DropdownButton({ if (buttons.length === 0) { buttons.push( - {t('no_actions')} - + ) } return ( - - + - - + + {buttons} - - + + ) } @@ -349,7 +349,7 @@ type MenuItemButtonProps = { isLoading?: boolean 'data-testid'?: string } & Pick, 'children' | 'onClick' | 'className'> & - Pick, 'variant'> + Pick, 'variant'> function MenuItemButton({ children, @@ -360,7 +360,7 @@ function MenuItemButton({ }: MenuItemButtonProps) { return ( - {children} - + ) } diff --git a/services/web/frontend/js/features/history/components/change-list/dropdown/actions-dropdown.tsx b/services/web/frontend/js/features/history/components/change-list/dropdown/actions-dropdown.tsx index 750bae7fa0..62a824c1f2 100644 --- a/services/web/frontend/js/features/history/components/change-list/dropdown/actions-dropdown.tsx +++ b/services/web/frontend/js/features/history/components/change-list/dropdown/actions-dropdown.tsx @@ -1,9 +1,9 @@ import React, { ReactNode } from 'react' import { - Dropdown, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import OLTooltip from '@/shared/components/ol/ol-tooltip' type ActionDropdownProps = { @@ -19,7 +19,7 @@ function ActionsDropdown(props: ActionDropdownProps) { const { id, children, isOpened, iconTag, setIsOpened, tooltipDescription } = props return ( - {/* OverlayTrigger won't fire unless the child is a non-react html element (e.g div, span) */} - {iconTag} - + - + {children} - - + + ) } diff --git a/services/web/frontend/js/features/ide-react/components/rail/rail-action-element.tsx b/services/web/frontend/js/features/ide-react/components/rail/rail-action-element.tsx index 14d959ab0d..c3e8f62ec2 100644 --- a/services/web/frontend/js/features/ide-react/components/rail/rail-action-element.tsx +++ b/services/web/frontend/js/features/ide-react/components/rail/rail-action-element.tsx @@ -3,11 +3,11 @@ import MaterialIcon, { } from '@/shared/components/material-icon' import { forwardRef, ReactElement, useCallback } from 'react' import { - Dropdown, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import OLTooltip from '@/shared/components/ol/ol-tooltip' -import { DropdownToggle as BS5DropdownToggle } from 'react-bootstrap' +import { DropdownToggle } from 'react-bootstrap' type RailActionButton = { key: string @@ -45,15 +45,15 @@ const RailActionElement = forwardRef( if ('dropdown' in action) { return ( - + - } + } id={`rail-dropdown-btn-${action.key}`} className="ide-rail-tab-link ide-rail-tab-button ide-rail-tab-dropdown" as="button" @@ -63,11 +63,11 @@ const RailActionElement = forwardRef( type={action.icon} indicator={action.indicator} /> - + {action.dropdown} - + ) } else { return ( diff --git a/services/web/frontend/js/features/ide-react/components/rail/rail-help-dropdown.tsx b/services/web/frontend/js/features/ide-react/components/rail/rail-help-dropdown.tsx index 654d29f858..7b70d33408 100644 --- a/services/web/frontend/js/features/ide-react/components/rail/rail-help-dropdown.tsx +++ b/services/web/frontend/js/features/ide-react/components/rail/rail-help-dropdown.tsx @@ -3,10 +3,10 @@ import { useTranslation } from 'react-i18next' import { useRailContext } from '@/features/ide-react/context/rail-context' import { useCallback } from 'react' import { - DropdownDivider, - DropdownItem, - DropdownMenu, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdownDivider, + OLDropdownItem, + OLDropdownMenu, +} from '@/shared/components/ol/ol-dropdown-menu' export default function RailHelpDropdown() { const showSupport = getMeta('ol-showSupport') @@ -21,28 +21,28 @@ export default function RailHelpDropdown() { }, [setActiveModal]) return ( - - + + {t('keyboard_shortcuts')} - + {showDocumentation && ( - {t('documentation')} - + )} {showSupport && ( <> - - + + {t('contact_us')} - + )} - + ) } diff --git a/services/web/frontend/js/features/ide-react/components/rail/rail-overflow-dropdown.tsx b/services/web/frontend/js/features/ide-react/components/rail/rail-overflow-dropdown.tsx index 642b91497f..c8d88fa3b0 100644 --- a/services/web/frontend/js/features/ide-react/components/rail/rail-overflow-dropdown.tsx +++ b/services/web/frontend/js/features/ide-react/components/rail/rail-overflow-dropdown.tsx @@ -1,4 +1,4 @@ -import { DropdownMenu } from '@/shared/components/dropdown/dropdown-menu' +import { OLDropdownMenu } from '@/shared/components/ol/ol-dropdown-menu' import { RailTabKey } from '@/features/ide-react/context/rail-context' import { RailElement } from '@/features/ide-react/util/rail-types' import RailTab from './rail-tab' @@ -14,7 +14,7 @@ export default function RailOverflowDropdown({ selectedTab: RailTabKey }) { return ( - + {tabs .filter(shouldIncludeElement) .map(({ icon, key, indicator, title, disabled }) => ( @@ -28,6 +28,6 @@ export default function RailOverflowDropdown({ disabled={disabled} /> ))} - + ) } diff --git a/services/web/frontend/js/features/ide-react/components/toolbar/change-layout-button.tsx b/services/web/frontend/js/features/ide-react/components/toolbar/change-layout-button.tsx index 4ec702a6b7..debe5ed0da 100644 --- a/services/web/frontend/js/features/ide-react/components/toolbar/change-layout-button.tsx +++ b/services/web/frontend/js/features/ide-react/components/toolbar/change-layout-button.tsx @@ -1,10 +1,10 @@ import { useTranslation } from 'react-i18next' import classNames from 'classnames' import { - Dropdown, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import ChangeLayoutOptions from './change-layout-options' import MaterialIcon from '@/shared/components/material-icon' import OLTooltip from '@/shared/components/ol/ol-tooltip' @@ -19,26 +19,26 @@ export default function ChangeLayoutButton() { return (
    - + - - + - + - - + +
    ) } diff --git a/services/web/frontend/js/features/ide-react/components/toolbar/change-layout-options.tsx b/services/web/frontend/js/features/ide-react/components/toolbar/change-layout-options.tsx index 15b307a27d..d324be7770 100644 --- a/services/web/frontend/js/features/ide-react/components/toolbar/change-layout-options.tsx +++ b/services/web/frontend/js/features/ide-react/components/toolbar/change-layout-options.tsx @@ -1,8 +1,8 @@ import { - DropdownItem, - DropdownHeader, - DropdownDivider, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdownItem, + OLDropdownHeader, + OLDropdownDivider, +} from '@/shared/components/ol/ol-dropdown-menu' import { IdeLayout, IdeView, @@ -81,7 +81,7 @@ const LayoutDropdownItem = ({ } return ( - {children} - + ) } @@ -139,7 +139,7 @@ export default function ChangeLayoutOptions() { return ( <> - {t('layout_options')} + {t('layout_options')} handleChangeLayout('sideBySide')} active={activeLayoutOption === 'sideBySide'} @@ -184,7 +184,7 @@ export default function ChangeLayoutOptions() { {focusModeEnabled && ( <> - + { setFocusMode(!focusMode) diff --git a/services/web/frontend/js/features/ide-react/components/toolbar/command-dropdown.tsx b/services/web/frontend/js/features/ide-react/components/toolbar/command-dropdown.tsx index e0457b8217..be92aadce1 100644 --- a/services/web/frontend/js/features/ide-react/components/toolbar/command-dropdown.tsx +++ b/services/web/frontend/js/features/ide-react/components/toolbar/command-dropdown.tsx @@ -5,9 +5,9 @@ import { useCommandRegistry, } from '@/features/ide-react/context/command-registry-context' import { - DropdownDivider, - DropdownHeader, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdownDivider, + OLDropdownHeader, +} from '@/shared/components/ol/ol-dropdown-menu' import { MenuBarDropdown, NestedMenuBarDropdown, @@ -101,8 +101,8 @@ function CommandSectionContent({ } return ( <> - {includeDivider && } - {section.title && {section.title}} + {includeDivider && } + {section.title && {section.title}} {section.children.map(child => ( ))} diff --git a/services/web/frontend/js/features/ide-react/components/toolbar/menu-bar.tsx b/services/web/frontend/js/features/ide-react/components/toolbar/menu-bar.tsx index 413d3e715a..40a3cfc4d1 100644 --- a/services/web/frontend/js/features/ide-react/components/toolbar/menu-bar.tsx +++ b/services/web/frontend/js/features/ide-react/components/toolbar/menu-bar.tsx @@ -1,8 +1,8 @@ import { - DropdownDivider, - DropdownHeader, - DropdownItem, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdownDivider, + OLDropdownHeader, + OLDropdownItem, +} from '@/shared/components/ol/ol-dropdown-menu' import { MenuBar } from '@/shared/components/menu-bar/menu-bar' import { MenuBarDropdown } from '@/shared/components/menu-bar/menu-bar-dropdown' import { MenuBarOption } from '@/shared/components/menu-bar/menu-bar-option' @@ -270,13 +270,13 @@ export const ToolbarMenuBar = () => { > - - {t('editor_settings')} + + {t('editor_settings')} + breadcrumbs ? 'check' : } onClick={toggleBreadcrumbs} /> @@ -285,7 +285,7 @@ export const ToolbarMenuBar = () => { eventKey="show_editor_tabs" title={t('show_editor_tabs')} leadingIcon={ - editorTabs ? 'check' : + editorTabs ? 'check' : } onClick={toggleEditorTabs} /> @@ -294,7 +294,7 @@ export const ToolbarMenuBar = () => { eventKey="show_equation_preview" title={t('show_equation_preview')} leadingIcon={ - mathPreview ? 'check' : + mathPreview ? 'check' : } onClick={toggleMathPreview} /> @@ -329,7 +329,7 @@ export const ToolbarMenuBar = () => { )} {showSupport && ( <> - + { } return ( - - + { {name} - - + + {shouldDisplaySubmitButton && !cobranding && ( <> - + )} @@ -97,7 +97,7 @@ export const ToolbarProjectTitle = () => { label={t('export_as_html')} menuBarId="export-as-html" /> - + { @@ -107,7 +107,7 @@ export const ToolbarProjectTitle = () => { > {t('rename')} - - + + ) } diff --git a/services/web/frontend/js/features/ide-react/components/toolbar/review-mode-options.tsx b/services/web/frontend/js/features/ide-react/components/toolbar/review-mode-options.tsx index 98fcf95859..8e2b592acd 100644 --- a/services/web/frontend/js/features/ide-react/components/toolbar/review-mode-options.tsx +++ b/services/web/frontend/js/features/ide-react/components/toolbar/review-mode-options.tsx @@ -1,4 +1,4 @@ -import { DropdownDivider } from '@/shared/components/dropdown/dropdown-menu' +import { OLDropdownDivider } from '@/shared/components/ol/ol-dropdown-menu' import { useTranslation } from 'react-i18next' import { useEditorPropertiesContext } from '../../context/editor-properties-context' import DropdownMenuItem from '@/shared/components/dropdown/dropdown-menu-item' @@ -41,7 +41,7 @@ const ReviewModeOptions: React.FC = () => { return ( <> - + + - - - {t('auto_compile')} + + {t('auto_compile')}
  • - sendEventAndSet(true, setAutoCompile, 'auto-compile') @@ -175,10 +175,10 @@ function PdfCompileButton() { trailingIcon={autoCompile ? 'check' : null} > {t('on')} - +
  • - sendEventAndSet(false, setAutoCompile, 'auto-compile') @@ -186,44 +186,44 @@ function PdfCompileButton() { trailingIcon={!autoCompile ? 'check' : null} > {t('off')} - +
  • - - {t('compile_mode')} + + {t('compile_mode')}
  • - setCompileMode('normal')} trailingIcon={!draft && !png2pdf ? 'check' : null} > {t('normal')} - +
  • {png2pdfEnabled && (
  • - setCompileMode('png2pdf')} trailingIcon={png2pdf ? 'check' : null} > {t('fast')}  [optimize images] - +
  • )}
  • - setCompileMode('draft')} trailingIcon={draft ? 'check' : null} > {t('fast')} [draft] - +
  • - - {t('syntax_checks')} + + {t('syntax_checks')}
  • - sendEventAndSet(true, setStopOnValidationError, 'syntax-check') @@ -231,10 +231,10 @@ function PdfCompileButton() { trailingIcon={stopOnValidationError ? 'check' : null} > {t('stop_on_validation_error')} - +
  • - sendEventAndSet(false, setStopOnValidationError, 'syntax-check') @@ -242,51 +242,51 @@ function PdfCompileButton() { trailingIcon={!stopOnValidationError ? 'check' : null} > {t('ignore_validation_errors')} - +
  • - - {t('compile_error_handling')} + + {t('compile_error_handling')}
  • - {t('stop_on_first_error')} - +
  • - {t('try_to_compile_despite_errors')} - +
  • - +
  • - stopCompile()} disabled={!compiling} aria-disabled={!compiling} > {t('stop_compile')} - +
  • - {t('recompile_from_scratch')} - +
  • -
    - + +
    ) } diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-download-files-button.tsx b/services/web/frontend/js/features/pdf-preview/components/pdf-download-files-button.tsx index 31e6f0cae6..b7b0646260 100644 --- a/services/web/frontend/js/features/pdf-preview/components/pdf-download-files-button.tsx +++ b/services/web/frontend/js/features/pdf-preview/components/pdf-download-files-button.tsx @@ -1,8 +1,8 @@ import { - Dropdown, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import PdfFileList from './pdf-file-list' import { memo } from 'react' import { useTranslation } from 'react-i18next' @@ -18,19 +18,19 @@ function PdfDownloadFilesButton() { } return ( - - + {t('other_logs_and_files')} - - + + - - + + ) } diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-file-list.tsx b/services/web/frontend/js/features/pdf-preview/components/pdf-file-list.tsx index f2ddcc05fc..efa0e46e42 100644 --- a/services/web/frontend/js/features/pdf-preview/components/pdf-file-list.tsx +++ b/services/web/frontend/js/features/pdf-preview/components/pdf-file-list.tsx @@ -1,10 +1,10 @@ import { useTranslation } from 'react-i18next' import { memo } from 'react' import { - DropdownDivider, - DropdownHeader, - DropdownItem, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdownDivider, + OLDropdownHeader, + OLDropdownItem, +} from '@/shared/components/ol/ol-dropdown-menu' import { PdfFileData, PdfFileDataList } from '../util/types' function PdfFileList({ fileList }: { fileList: PdfFileDataList }) { @@ -20,46 +20,46 @@ function PdfFileList({ fileList }: { fileList: PdfFileDataList }) { return ( <> - {t('other_output_files')} + {t('other_output_files')} {fileList.top.map(file => (
  • - {file.path} - +
  • ))} {fileList.other.length > 0 && fileList.top.length > 0 && ( - + )} {fileList.other.map(file => (
  • - {file.path} - +
  • ))} {fileList.archive?.fileCount !== undefined && fileList.archive?.fileCount > 0 && (
  • - {t('download_all')} ({fileList.archive.fileCount}) - +
  • )} diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-zoom-dropdown.tsx b/services/web/frontend/js/features/pdf-preview/components/pdf-zoom-dropdown.tsx index 950dd73f5e..1cc7b2f1fc 100644 --- a/services/web/frontend/js/features/pdf-preview/components/pdf-zoom-dropdown.tsx +++ b/services/web/frontend/js/features/pdf-preview/components/pdf-zoom-dropdown.tsx @@ -1,13 +1,13 @@ import { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import { - Dropdown, - DropdownDivider, - DropdownHeader, - DropdownItem, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownDivider, + OLDropdownHeader, + OLDropdownItem, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import OLFormControl from '@/shared/components/ol/ol-form-control' import { isMac } from '@/shared/utils/os' import { Shortcut } from '@/shared/components/shortcut' @@ -56,7 +56,7 @@ function PdfZoomDropdown({ const showPresentOption = document.fullscreenEnabled return ( - { if (eventKey === 'custom-zoom') { return @@ -71,17 +71,17 @@ function PdfZoomDropdown({ }} align="end" > - {rawScaleToPercentage(rawScale)} - - + +
  • - - +
  • - +
  • - } > {t('zoom_in')} - +
  • - } > {t('zoom_out')} - +
  • - } > {t('fit_to_width')} - +
  • - } > {t('fit_to_height')} - +
  • - {showPresentOption && } + {showPresentOption && } {showPresentOption && (
  • - + {t('presentation_mode')} - +
  • )} - - + + {zoomValues.map(value => (
  • - + {rawScaleToPercentage(Number(value))} - +
  • ))} -
    -
    + + ) } diff --git a/services/web/frontend/js/features/project-list/components/dropdown/actions-dropdown.tsx b/services/web/frontend/js/features/project-list/components/dropdown/actions-dropdown.tsx index c6f13e8e2c..a1bd0c3a09 100644 --- a/services/web/frontend/js/features/project-list/components/dropdown/actions-dropdown.tsx +++ b/services/web/frontend/js/features/project-list/components/dropdown/actions-dropdown.tsx @@ -1,10 +1,10 @@ import { useTranslation } from 'react-i18next' import { - Dropdown, - DropdownItem, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownItem, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import CopyProjectButton from '../table/cells/action-buttons/copy-project-button' import DownloadProjectButton from '../table/cells/action-buttons/download-project-button' import ArchiveProjectButton from '../table/cells/action-buttons/archive-project-button' @@ -27,60 +27,60 @@ function ActionsDropdown({ project }: ActionDropdownProps) { const { t } = useTranslation() return ( - - + - - + + {(text, handleOpenModal) => (
  • - {text} - +
  • )}
    {(text, handleOpenModal) => (
  • - {text} - +
  • )}
    {(text, downloadProject) => (
  • - {text} - +
  • )}
    {(text, pendingCompile, downloadProject) => (
  • - { @@ -99,96 +99,96 @@ function ActionsDropdown({ project }: ActionDropdownProps) { } > {text} - +
  • )}
    {(text, handleOpenModal) => (
  • - {text} - +
  • )}
    {(text, handleOpenModal) => (
  • - {text} - +
  • )}
    {(text, unarchiveProject) => (
  • - {text} - +
  • )}
    {(text, untrashProject) => (
  • - {text} - +
  • )}
    {(text, handleOpenModal) => (
  • - {text} - +
  • )}
    {(text, handleOpenModal) => (
  • - {text} - +
  • )}
    -
    -
    + + ) } diff --git a/services/web/frontend/js/features/project-list/components/dropdown/mobile-page-switcher-items.tsx b/services/web/frontend/js/features/project-list/components/dropdown/mobile-page-switcher-items.tsx index 959822ae64..0c42b4fc7d 100644 --- a/services/web/frontend/js/features/project-list/components/dropdown/mobile-page-switcher-items.tsx +++ b/services/web/frontend/js/features/project-list/components/dropdown/mobile-page-switcher-items.tsx @@ -1,5 +1,5 @@ import { useTranslation } from 'react-i18next' -import { DropdownItem } from '@/shared/components/dropdown/dropdown-menu' +import { OLDropdownItem } from '@/shared/components/ol/ol-dropdown-menu' type Props = { activePage: 'library' | 'projects' @@ -12,13 +12,13 @@ function MobilePageSwitcherItems({ activePage, onProjectsClick }: Props) { return ( <>
  • - + {t('library')} - +
  • {onProjectsClick ? ( - {t('projects')} - + ) : ( - + {t('projects')} - + )}
  • diff --git a/services/web/frontend/js/features/project-list/components/dropdown/projects-dropdown.tsx b/services/web/frontend/js/features/project-list/components/dropdown/projects-dropdown.tsx index 571eb1dab3..f1d7cab3d6 100644 --- a/services/web/frontend/js/features/project-list/components/dropdown/projects-dropdown.tsx +++ b/services/web/frontend/js/features/project-list/components/dropdown/projects-dropdown.tsx @@ -6,12 +6,12 @@ import { useProjectListContext, } from '../../context/project-list-context' import { - Dropdown, - DropdownHeader, - DropdownItem, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownHeader, + OLDropdownItem, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import MaterialIcon from '@/shared/components/material-icon' import { isSplitTestEnabled } from '@/utils/splitTestUtils' import ProjectsFilterMenu from '../projects-filter-menu' @@ -34,7 +34,7 @@ export function Item({ filter, text, onClick }: ItemProps) { return ( {isActive => ( - {text} - + )} ) @@ -95,13 +95,15 @@ function ProjectsDropdown() {
  • - {t('tags')}: + + {t('tags')}: + ) return ( - { @@ -112,7 +114,7 @@ function ProjectsDropdown() { : undefined } > - {title} - - + + {!isLibraryEnabled && submenuItems} {isLibraryEnabled && view === 'submenu' && ( <>
  • - } @@ -138,7 +140,7 @@ function ProjectsDropdown() { }} > {t('projects')} - +
  • {submenuItems} @@ -149,8 +151,8 @@ function ProjectsDropdown() { onProjectsClick={() => setView('submenu')} /> )} -
    -
    + + ) } diff --git a/services/web/frontend/js/features/project-list/components/dropdown/sort-by-dropdown.tsx b/services/web/frontend/js/features/project-list/components/dropdown/sort-by-dropdown.tsx index 52876b3309..1d1c7bc183 100644 --- a/services/web/frontend/js/features/project-list/components/dropdown/sort-by-dropdown.tsx +++ b/services/web/frontend/js/features/project-list/components/dropdown/sort-by-dropdown.tsx @@ -5,23 +5,23 @@ import withContent, { SortBtnProps } from '../sort/with-content' import { useProjectListContext } from '../../context/project-list-context' import { Sort } from '../../../../../../types/project/dashboard/api' import { - Dropdown, - DropdownHeader, - DropdownItem, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownHeader, + OLDropdownItem, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' function Item({ onClick, text, iconType }: SortBtnProps) { return ( - {text} - + ) } @@ -48,8 +48,8 @@ function SortByDropdown() { }, [sort.by]) return ( - - + {title} - - - + + + {t('sort_by')}: - + handleClick('lastUpdated')} /> - - + + ) } diff --git a/services/web/frontend/js/features/project-list/components/new-project-button.tsx b/services/web/frontend/js/features/project-list/components/new-project-button.tsx index 2fc07f17b7..56803027df 100644 --- a/services/web/frontend/js/features/project-list/components/new-project-button.tsx +++ b/services/web/frontend/js/features/project-list/components/new-project-button.tsx @@ -10,14 +10,14 @@ import { Nullable } from '../../../../../types/utils' import { sendMB } from '../../../infrastructure/event-tracking' import importOverleafModules from '../../../../macros/import-overleaf-module.macro' import { - Dropdown, - DropdownDivider, - DropdownHeader, - DropdownItem, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' -import type { DropdownProps } from '@/shared/components/types/dropdown-menu-props' + OLDropdown, + OLDropdownDivider, + OLDropdownHeader, + OLDropdownItem, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' +import type { OLDropdownProps } from '@/shared/components/types/dropdown-menu-props' import { useSendProjectListMB } from '@/features/project-list/components/project-list-events' import type { PortalTemplate } from '../../../../../types/portal-template' import { useFeatureFlag } from '@/shared/context/split-test-context' @@ -46,7 +46,7 @@ type NewProjectButtonProps = { className?: string trackingKey?: string showAddAffiliationWidget?: boolean - align?: DropdownProps['align'] + align?: OLDropdownProps['align'] } function NewProjectButton({ @@ -176,7 +176,7 @@ function NewProjectButton({ return ( <> - - {buttonText || t('new_project')} - - + +
  • - handleModalMenuClick(e, { modalVariant: 'blank_project', @@ -202,10 +202,10 @@ function NewProjectButton({ } > {t('blank_project')} - +
  • - handleModalMenuClick(e, { modalVariant: 'example_project', @@ -214,10 +214,10 @@ function NewProjectButton({ } > {t('example_project')} - +
  • - handleModalMenuClick(e, { modalVariant: 'upload_project', @@ -226,11 +226,11 @@ function NewProjectButton({ } > {t('upload_project')} - +
  • {docxImportEnabled && (
  • - handleModalMenuClick(e, { modalVariant: 'import_docx', @@ -240,12 +240,12 @@ function NewProjectButton({ trailingIcon={} > {t('import_word_document')} - +
  • )} {markdownImportEnabled && (
  • - handleModalMenuClick(e, { modalVariant: 'import_markdown', @@ -255,7 +255,7 @@ function NewProjectButton({ trailingIcon={} > {t('import_markdown_file')} - +
  • )}
  • @@ -272,20 +272,20 @@ function NewProjectButton({
  • {portalTemplates.length > 0 ? ( <> - - + {portalTemplates.map((portalTemplate, index) => (
  • - handlePortalTemplateClick(e, portalTemplate)} aria-label={`${portalTemplate.name} ${t('template')}`} > {portalTemplate.name} - +
  • ))} @@ -293,15 +293,15 @@ function NewProjectButton({ {templateLinks && templateLinks.length > 0 && ( <> - - + )} {templateLinks?.map((templateLink, index) => (
  • - handleStaticTemplateClick(e, templateLink)} aria-label={`${templateLink.name} ${t('template')}`} @@ -309,19 +309,19 @@ function NewProjectButton({ {templateLink.name === 'view_all' ? t('view_all') : templateLink.name} - +
  • ))} {showAddAffiliationWidget && enableAddAffiliationWidget ? ( <> - +
  • ) : null} -
    -
    + + setModal(null)} diff --git a/services/web/frontend/js/features/project-list/components/sidebar/tags-list.tsx b/services/web/frontend/js/features/project-list/components/sidebar/tags-list.tsx index 94f5488073..bd101e322a 100644 --- a/services/web/frontend/js/features/project-list/components/sidebar/tags-list.tsx +++ b/services/web/frontend/js/features/project-list/components/sidebar/tags-list.tsx @@ -8,11 +8,11 @@ import { import useTag from '../../hooks/use-tag' import { getTagColor } from '../../util/tag' import { - Dropdown, - DropdownItem, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownItem, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' export default function TagsList() { const { t } = useTranslation() @@ -77,31 +77,31 @@ export default function TagsList() { - - + - - - + + handleEditTag(e, tag._id)} > {t('edit')} - - + handleDeleteTag(e, tag._id)} > {t('delete')} - - - + + + ) })} diff --git a/services/web/frontend/js/features/project-list/components/table/project-tools/buttons/project-tools-more-dropdown-button.tsx b/services/web/frontend/js/features/project-list/components/table/project-tools/buttons/project-tools-more-dropdown-button.tsx index 656637b290..c44397685d 100644 --- a/services/web/frontend/js/features/project-list/components/table/project-tools/buttons/project-tools-more-dropdown-button.tsx +++ b/services/web/frontend/js/features/project-list/components/table/project-tools/buttons/project-tools-more-dropdown-button.tsx @@ -3,24 +3,27 @@ import { useTranslation } from 'react-i18next' import CopyProjectMenuItem from '../menu-items/copy-project-menu-item' import RenameProjectMenuItem from '../menu-items/rename-project-menu-item' import { - Dropdown, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' function ProjectToolsMoreDropdownButton() { const { t } = useTranslation() return ( - - + + {t('more')} - - + + - - + + ) } diff --git a/services/web/frontend/js/features/project-list/components/table/project-tools/buttons/tags-dropdown.tsx b/services/web/frontend/js/features/project-list/components/table/project-tools/buttons/tags-dropdown.tsx index b590c16dbd..fe0d363f17 100644 --- a/services/web/frontend/js/features/project-list/components/table/project-tools/buttons/tags-dropdown.tsx +++ b/services/web/frontend/js/features/project-list/components/table/project-tools/buttons/tags-dropdown.tsx @@ -7,13 +7,13 @@ import useTag from '../../../../hooks/use-tag' import { addProjectsToTag, removeProjectsFromTag } from '../../../../util/api' import { getTagColor } from '../../../../util/tag' import { - Dropdown, - DropdownDivider, - DropdownHeader, - DropdownItem, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownDivider, + OLDropdownHeader, + OLDropdownItem, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import { Tag } from '../../../../../../../../app/src/Features/Tags/types' function TagsDropdown() { @@ -78,22 +78,22 @@ function TagsDropdown() { return ( <> - - + - - + - {t('add_to_tag')} + {t('add_to_tag')} {sortBy(tags, tag => tag.name?.toLowerCase()).map(tag => (
  • - containsAllSelectedProjects(tag) ? handleRemoveTagFromSelectedProjects(e, tag._id) @@ -108,7 +108,7 @@ function TagsDropdown() { containsAllSelectedProjects(tag) ? ( 'check' ) : ( - + ) } translate="no" @@ -122,21 +122,21 @@ function TagsDropdown() { {tag.name} - +
  • ))} - +
  • - {t('create_new_tag')} - +
  • -
    -
    + + ) diff --git a/services/web/frontend/js/features/project-list/components/tags-list.tsx b/services/web/frontend/js/features/project-list/components/tags-list.tsx index 1129bc4a21..a59d56e2eb 100644 --- a/services/web/frontend/js/features/project-list/components/tags-list.tsx +++ b/services/web/frontend/js/features/project-list/components/tags-list.tsx @@ -8,7 +8,7 @@ import { import useTag from '../hooks/use-tag' import { sortBy } from 'lodash' import { Tag } from '../../../../../app/src/Features/Tags/types' -import { DropdownItem } from '@/shared/components/dropdown/dropdown-menu' +import { OLDropdownItem } from '@/shared/components/ol/ol-dropdown-menu' type TagsListProps = { onTagClick?: () => void @@ -37,7 +37,7 @@ function TagsList({ onTagClick }: TagsListProps) { <> {sortBy(tags, ['name']).map((tag, index) => (
  • - handleClick(e as unknown as React.MouseEvent, tag)} @@ -52,8 +52,8 @@ function TagsList({ onTagClick }: TagsListProps) { {tag.name} ({tag.project_ids?.length}) - - + - +
  • ))}
  • - selectTag(UNCATEGORIZED_KEY)} @@ -78,17 +78,17 @@ function TagsList({ onTagClick }: TagsListProps) { active={selectedTagId === UNCATEGORIZED_KEY} > {t('uncategorized')} ({untaggedProjectsCount}) - +
  • - {t('new_tag')} - +
  • diff --git a/services/web/frontend/js/features/project-list/components/welcome-message-new/welcome-message-create-new-project-dropdown.tsx b/services/web/frontend/js/features/project-list/components/welcome-message-new/welcome-message-create-new-project-dropdown.tsx index 7c3b0e9573..8c206680bb 100644 --- a/services/web/frontend/js/features/project-list/components/welcome-message-new/welcome-message-create-new-project-dropdown.tsx +++ b/services/web/frontend/js/features/project-list/components/welcome-message-new/welcome-message-create-new-project-dropdown.tsx @@ -4,13 +4,13 @@ import { sendMB } from '../../../../infrastructure/event-tracking' import getMeta from '../../../../utils/meta' import { NewProjectButtonModalVariant } from '../new-project-button/new-project-button-modal' import { - Dropdown, - DropdownDivider, - DropdownHeader, - DropdownItem, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownDivider, + OLDropdownHeader, + OLDropdownItem, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import createNewProjectImage from '../../images/create-a-new-project.svg' import { useFeatureFlag } from '@/shared/context/split-test-context' import MaterialIcon from '@/shared/components/material-icon' @@ -103,14 +103,14 @@ function WelcomeMessageCreateNewProjectDropdown({ ) return ( - - + - +
  • - handleDropdownItemClick(e, 'blank_project', 'blank-project') @@ -118,10 +118,10 @@ function WelcomeMessageCreateNewProjectDropdown({ tabIndex={-1} > {t('blank_project')} - +
  • - handleDropdownItemClick(e, 'example_project', 'example-project') @@ -129,10 +129,10 @@ function WelcomeMessageCreateNewProjectDropdown({ tabIndex={-1} > {t('example_project')} - +
  • - handleDropdownItemClick(e, 'upload_project', 'upload-project') @@ -140,11 +140,11 @@ function WelcomeMessageCreateNewProjectDropdown({ tabIndex={-1} > {t('upload_project')} - +
  • {docxImportEnabled && (
  • - handleDropdownItemClick(e, 'import_docx', 'import-docx') @@ -153,12 +153,12 @@ function WelcomeMessageCreateNewProjectDropdown({ trailingIcon={} > {t('import_word_document')} - +
  • )} {markdownImportEnabled && (
  • - handleDropdownItemClick(e, 'import_markdown', 'import-markdown') @@ -167,12 +167,12 @@ function WelcomeMessageCreateNewProjectDropdown({ trailingIcon={} > {t('import_markdown_file')} - +
  • )} {isOverleaf && (
  • - handleDropdownItemClick( @@ -184,28 +184,28 @@ function WelcomeMessageCreateNewProjectDropdown({ tabIndex={-1} > {t('import_from_github')} - +
  • )} {(portalTemplates?.length ?? 0) > 0 ? ( <> - - + {portalTemplates?.map((portalTemplate, index) => ( - handlePortalTemplateClick(e, portalTemplate.name)} href={`${portalTemplate.url}#templates`} > {portalTemplate.name} - + ))} ) : null} -
    -
    + + ) } diff --git a/services/web/frontend/js/features/review-panel/components/review-mode-switcher.tsx b/services/web/frontend/js/features/review-panel/components/review-mode-switcher.tsx index b0e0593703..20fc49ca93 100644 --- a/services/web/frontend/js/features/review-panel/components/review-mode-switcher.tsx +++ b/services/web/frontend/js/features/review-panel/components/review-mode-switcher.tsx @@ -1,9 +1,9 @@ import { forwardRef, memo, MouseEventHandler } from 'react' import { - Dropdown, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import DropdownMenuItem from '@/shared/components/dropdown/dropdown-menu-item' import MaterialIcon from '@/shared/components/material-icon' import classNames from 'classnames' @@ -114,12 +114,12 @@ function ReviewModeSwitcher() { if (isToolbarMigration) { return ( - - + - - - + + ) } @@ -137,15 +137,15 @@ function ReviewModeSwitcher() { // over the editor at top-right of the scroll area. return (
    - - + - + - - + +
    ) } diff --git a/services/web/frontend/js/features/review-panel/components/review-panel-comment-options.tsx b/services/web/frontend/js/features/review-panel/components/review-panel-comment-options.tsx index 70fea96628..bba96e9ad2 100644 --- a/services/web/frontend/js/features/review-panel/components/review-panel-comment-options.tsx +++ b/services/web/frontend/js/features/review-panel/components/review-panel-comment-options.tsx @@ -2,11 +2,11 @@ import MaterialIcon from '@/shared/components/material-icon' import { FC, memo, forwardRef } from 'react' import { useTranslation } from 'react-i18next' import { - Dropdown, - DropdownItem, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownItem, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import classnames from 'classnames' const ReviewPanelCommentDropdownToggleButton = forwardRef< @@ -32,8 +32,8 @@ const ReviewPanelCommentOptions: FC<{ } return ( - - + - - + + {canEdit && (
  • - + {t('edit')} - +
  • )} {canDelete && (
  • - + {t('delete')} - +
  • )} -
    -
    + + ) } diff --git a/services/web/frontend/js/features/settings/components/emails/add-email/country-input.tsx b/services/web/frontend/js/features/settings/components/emails/add-email/country-input.tsx index 88596e696c..105e104747 100644 --- a/services/web/frontend/js/features/settings/components/emails/add-email/country-input.tsx +++ b/services/web/frontend/js/features/settings/components/emails/add-email/country-input.tsx @@ -4,7 +4,7 @@ import { useCombobox } from 'downshift' import classnames from 'classnames' import countries, { CountryCode } from '../../../data/countries-list' import OLFormControl from '@/shared/components/ol/ol-form-control' -import { DropdownItem } from '@/shared/components/dropdown/dropdown-menu' +import { OLDropdownItem } from '@/shared/components/ol/ol-dropdown-menu' type CountryInputProps = { setValue: React.Dispatch> @@ -74,7 +74,7 @@ function Downshift({ setValue, inputRef }: CountryInputProps) { {...getItemProps({ item, index })} aria-selected={selectedItem?.name === item.name} > - {item.name} - + ))} diff --git a/services/web/frontend/js/features/settings/components/emails/downshift-input.tsx b/services/web/frontend/js/features/settings/components/emails/downshift-input.tsx index ab032fe3a2..b4042f3e40 100644 --- a/services/web/frontend/js/features/settings/components/emails/downshift-input.tsx +++ b/services/web/frontend/js/features/settings/components/emails/downshift-input.tsx @@ -3,7 +3,7 @@ import { useCombobox } from 'downshift' import classnames from 'classnames' import { escapeRegExp } from 'lodash' import OLFormControl from '@/shared/components/ol/ol-form-control' -import { DropdownItem } from '@/shared/components/dropdown/dropdown-menu' +import { OLDropdownItem } from '@/shared/components/ol/ol-dropdown-menu' import OLFormLabel from '@/shared/components/ol/ol-form-label' import DSFormLabel from '@/shared/components/ds/ds-form-label' import DSFormControl from '@/shared/components/ds/ds-form-control' @@ -97,9 +97,9 @@ function Downshift({ > {showSuggestedText && inputItems.length > 0 && (
  • - + {itemsTitle} - +
  • )} {inputItems.map((item, index) => ( @@ -109,7 +109,7 @@ function Downshift({ {...getItemProps({ item, index })} aria-selected={selectedItem === item} > - {highlightMatchedCharacters(item, inputValue)} - + ))} diff --git a/services/web/frontend/js/features/share-project-modal/components/edit-member.tsx b/services/web/frontend/js/features/share-project-modal/components/edit-member.tsx index 8623f19d3b..111a42b686 100644 --- a/services/web/frontend/js/features/share-project-modal/components/edit-member.tsx +++ b/services/web/frontend/js/features/share-project-modal/components/edit-member.tsx @@ -17,10 +17,10 @@ import { useUserContext } from '@/shared/context/user-context' import { upgradePlan } from '@/main/account-upgrade' import ShareProjectModalRow from '@/features/share-project-modal/components/share-project-modal-row' import { - Dropdown, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import DropdownMenuItem from '@/shared/components/dropdown/dropdown-menu-item' import { useFeatureFlag } from '@/shared/context/split-test-context' import classnames from 'classnames' @@ -247,7 +247,7 @@ export default function EditMember({
    - { if (eventKey) { @@ -259,15 +259,15 @@ export default function EditMember({ {hasBeenDowngraded && !confirmRemoval && ( )} - {getDropdownLabel()} - +
    - + {t('remove_access')} - - + + {confirmRemoval && (
    { diff --git a/services/web/frontend/js/features/share-project-modal/components/invite.tsx b/services/web/frontend/js/features/share-project-modal/components/invite.tsx index f4f19b64f8..9a0e1d9122 100644 --- a/services/web/frontend/js/features/share-project-modal/components/invite.tsx +++ b/services/web/frontend/js/features/share-project-modal/components/invite.tsx @@ -12,10 +12,10 @@ import OLButton from '@/shared/components/ol/ol-button' import OLBadge from '@/shared/components/ol/ol-badge' import DropdownMenuItem from '@/shared/components/dropdown/dropdown-menu-item' import { - Dropdown, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import ShareProjectModalRow from '@/features/share-project-modal/components/share-project-modal-row' import MaterialIcon from '@/shared/components/material-icon' import { ProjectMember } from '@/shared/context/types/project-metadata' @@ -41,19 +41,19 @@ export default function Invite({ {isProjectOwner ? ( - {}}> - {}}> + - - + + - - + + ) : (
    diff --git a/services/web/frontend/js/features/share-project-modal/components/project-access.tsx b/services/web/frontend/js/features/share-project-modal/components/project-access.tsx index ba210e1c60..15bb24ea66 100644 --- a/services/web/frontend/js/features/share-project-modal/components/project-access.tsx +++ b/services/web/frontend/js/features/share-project-modal/components/project-access.tsx @@ -5,12 +5,12 @@ import MaterialIcon from '@/shared/components/material-icon' import OLButton from '@/shared/components/ol/ol-button' import DropdownMenuItem from '@/shared/components/dropdown/dropdown-menu-item' import { - Dropdown, - DropdownDivider, - DropdownItem, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownDivider, + OLDropdownItem, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import DropdownListItem from '@/shared/components/dropdown/dropdown-list-item' import LinkSharing from '@/features/share-project-modal/components/link-sharing' import { useEditorContext } from '@/shared/context/editor-context' @@ -214,19 +214,19 @@ function ProjectAccess({ {projectAccess === 'anyoneWithTheLink' && ( )} - - + {getProjectAccessDropdownToggleText()} - - + + {projectAccess === 'legacyLinkSharing' && ( <> - } @@ -238,13 +238,13 @@ function ProjectAccess({ active={projectAccess === 'legacyLinkSharing'} > {t('via_sharing_links_legacy')} - + - + )} - } @@ -256,7 +256,7 @@ function ProjectAccess({ active={projectAccess === 'onlyInvitedPeople'} > {t('only_invited_people')} - + {groupSharingEnabled && activeProfessionalGroupSubscriptions && @@ -265,7 +265,7 @@ function ProjectAccess({ className="d-flex align-items-center" key={subscription._id} > - } @@ -283,11 +283,11 @@ function ProjectAccess({ {t('anyone_in_x_with_the_link', { groupName: subscription.teamName || 'your group', })} - + ))} - } @@ -299,10 +299,10 @@ function ProjectAccess({ active={projectAccess === 'anyoneWithTheLink'} > {t('anyone_with_the_link')} - + - - + + {pendingAccess && ( {projectAccess !== 'legacyLinkSharing' && privileges && ( - - + - - + + {t('viewer')} - - + + )} )} diff --git a/services/web/frontend/js/features/share-project-modal/components/select-collaborators.tsx b/services/web/frontend/js/features/share-project-modal/components/select-collaborators.tsx index 7bdb1465fd..b5f797382e 100644 --- a/services/web/frontend/js/features/share-project-modal/components/select-collaborators.tsx +++ b/services/web/frontend/js/features/share-project-modal/components/select-collaborators.tsx @@ -5,7 +5,7 @@ import { useCombobox, UseMultipleSelectionReturnValue } from 'downshift' import classnames from 'classnames' import MaterialIcon from '@/shared/components/material-icon' -import { DropdownItem } from '@/shared/components/dropdown/dropdown-menu' +import { OLDropdownItem } from '@/shared/components/ol/ol-dropdown-menu' import { Contact } from '../utils/types' import OLFormLabel from '@/shared/components/ol/ol-form-label' import OLSpinner from '@/shared/components/ol/ol-spinner' @@ -446,7 +446,7 @@ function Option({ const isSharingUpdatesEnabled = useFeatureFlag('sharing-updates') return (
  • - {item.display} - +
  • ) } diff --git a/services/web/frontend/js/features/source-editor/components/editor-context-menu-feedback.tsx b/services/web/frontend/js/features/source-editor/components/editor-context-menu-feedback.tsx index d65eabefa9..51473d242f 100644 --- a/services/web/frontend/js/features/source-editor/components/editor-context-menu-feedback.tsx +++ b/services/web/frontend/js/features/source-editor/components/editor-context-menu-feedback.tsx @@ -1,9 +1,9 @@ import { FC, memo } from 'react' import { useTranslation } from 'react-i18next' import { - DropdownItem, - DropdownDivider, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdownItem, + OLDropdownDivider, +} from '@/shared/components/ol/ol-dropdown-menu' import DropdownListItem from '@/shared/components/dropdown/dropdown-list-item' import SplitTestBadge from '@/shared/components/split-test-badge' import { sendContextMenuEvent } from '../utils/context-menu-analytics' @@ -24,9 +24,9 @@ export const EditorContextMenuFeedback: FC = memo( return ( <> - + - {t('give_feedback')} - + ) diff --git a/services/web/frontend/js/features/source-editor/components/editor-context-menu.tsx b/services/web/frontend/js/features/source-editor/components/editor-context-menu.tsx index ce6b5e3f4c..7e3783771e 100644 --- a/services/web/frontend/js/features/source-editor/components/editor-context-menu.tsx +++ b/services/web/frontend/js/features/source-editor/components/editor-context-menu.tsx @@ -2,11 +2,11 @@ import { FC, Fragment, memo, useEffect, useRef } from 'react' import ReactDOM from 'react-dom' import { getTooltip } from '@codemirror/view' import { - Dropdown, - DropdownMenu, - DropdownItem, - DropdownDivider, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownMenu, + OLDropdownItem, + OLDropdownDivider, +} from '@/shared/components/ol/ol-dropdown-menu' import { useCodeMirrorStateContext, useCodeMirrorViewContext, @@ -48,9 +48,9 @@ const EditorContextMenuContent: FC = memo(function EditorContextMenuContent() { }, []) return ( - +
    event.preventDefault()}> - {menuItems.map((menuItem, index) => ( - {menuItem.separatorAbove && } + {menuItem.separatorAbove && } - menuItem.handler()} disabled={menuItem.disabled} @@ -80,14 +80,14 @@ const EditorContextMenuContent: FC = memo(function EditorContextMenuContent() { } > {menuItem.label} - + ))} - +
    -
    + ) }) diff --git a/services/web/frontend/js/features/source-editor/components/math-preview-tooltip.tsx b/services/web/frontend/js/features/source-editor/components/math-preview-tooltip.tsx index 2afa88d1d0..51371addc4 100644 --- a/services/web/frontend/js/features/source-editor/components/math-preview-tooltip.tsx +++ b/services/web/frontend/js/features/source-editor/components/math-preview-tooltip.tsx @@ -1,9 +1,9 @@ import { useProjectSettingsContext } from '@/features/ide-settings/context/project-settings-context' import { - Dropdown, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import OLButton from '@/shared/components/ol/ol-button' import { OLModal, @@ -81,8 +81,8 @@ const MathPreviewTooltipMenu: FC = () => { return ( <> - - + { type="more_vert" accessibilityLabel={t('more_options')} /> - - + + { > {t('disable')} - - + + {showDisableModal && ( diff --git a/services/web/frontend/js/features/source-editor/components/tabs/tabs-context-menu.tsx b/services/web/frontend/js/features/source-editor/components/tabs/tabs-context-menu.tsx index c06e728dc8..8b915181cf 100644 --- a/services/web/frontend/js/features/source-editor/components/tabs/tabs-context-menu.tsx +++ b/services/web/frontend/js/features/source-editor/components/tabs/tabs-context-menu.tsx @@ -2,11 +2,11 @@ import { useEffect, useRef } from 'react' import ReactDOM from 'react-dom' import { useTranslation } from 'react-i18next' import { - Dropdown, - DropdownDivider, - DropdownItem, - DropdownMenu, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownDivider, + OLDropdownItem, + OLDropdownMenu, +} from '@/shared/components/ol/ol-dropdown-menu' import { useTabsContext } from '@/features/ide-react/context/tabs-context' export function TabsContextMenu() { @@ -75,14 +75,14 @@ export function TabsContextMenu() { style={{ top: contextMenuTarget.top, left: contextMenuTarget.left }} className="context-menu" > - - - + { @@ -91,8 +91,8 @@ export function TabsContextMenu() { }} > {t('close')} - - + { @@ -101,8 +101,8 @@ export function TabsContextMenu() { }} > {t('close_other_tabs')} - - + { @@ -111,9 +111,9 @@ export function TabsContextMenu() { }} > {t('close_tabs_to_the_right')} - - - + + { window.dispatchEvent( @@ -130,9 +130,9 @@ export function TabsContextMenu() { leadingIcon="settings" > {t('tab_settings')} - - - + + +
    , document.body ) diff --git a/services/web/frontend/js/features/source-editor/components/toolbar/math-dropdown.tsx b/services/web/frontend/js/features/source-editor/components/toolbar/math-dropdown.tsx index 3c07f5166d..df408a5004 100644 --- a/services/web/frontend/js/features/source-editor/components/toolbar/math-dropdown.tsx +++ b/services/web/frontend/js/features/source-editor/components/toolbar/math-dropdown.tsx @@ -1,4 +1,4 @@ -import { DropdownHeader } from '@/shared/components/dropdown/dropdown-menu' +import { OLDropdownHeader } from '@/shared/components/ol/ol-dropdown-menu' import { ToolbarButtonMenu } from './button-menu' import { emitToolbarEvent } from '../../extensions/toolbar/utils/analytics' import MaterialIcon from '../../../../shared/components/material-icon' @@ -31,9 +31,9 @@ export const MathDropdown = memo(function MathDropdown() { > {renderAIButton && ( <> - + {t('toolbar_insert_math_lowercase')} - + } > - + {t('toolbar_table_insert_table_lowercase')} - + - {language.name} - + ) diff --git a/services/web/frontend/js/features/source-editor/extensions/spelling/spelling-suggestions.tsx b/services/web/frontend/js/features/source-editor/extensions/spelling/spelling-suggestions.tsx index eaba8b768f..6c6060ae00 100644 --- a/services/web/frontend/js/features/source-editor/extensions/spelling/spelling-suggestions.tsx +++ b/services/web/frontend/js/features/source-editor/extensions/spelling/spelling-suggestions.tsx @@ -16,11 +16,11 @@ import { captureException } from '@/infrastructure/error-reporter' import { debugConsole } from '@/utils/debugging' import { SpellCheckLanguage } from '../../../../../../types/project-settings' import { - Dropdown, - DropdownDivider, - DropdownItem, - DropdownMenu, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownDivider, + OLDropdownItem, + OLDropdownMenu, +} from '@/shared/components/ol/ol-dropdown-menu' import DropdownListItem from '@/shared/components/dropdown/dropdown-list-item' const ITEMS_TO_SHOW = 8 @@ -124,8 +124,8 @@ const B5SpellingSuggestions: FC = ({ }, [waiting]) return ( - - + = ({ }} /> ))} - {suggestions?.length > 0 && } + {suggestions?.length > 0 && } { @@ -162,13 +162,13 @@ const B5SpellingSuggestions: FC = ({ }} /> - + - - + + ) } @@ -177,6 +177,6 @@ const SpellingListItem: FC<{ handleClick: MouseEventHandler }> = ({ content, handleClick }) => ( - {content} + {content} ) diff --git a/services/web/frontend/js/features/subscription/components/dashboard/states/active/add-ons.tsx b/services/web/frontend/js/features/subscription/components/dashboard/states/active/add-ons.tsx index 04013ee7b4..4e9be6bc04 100644 --- a/services/web/frontend/js/features/subscription/components/dashboard/states/active/add-ons.tsx +++ b/services/web/frontend/js/features/subscription/components/dashboard/states/active/add-ons.tsx @@ -1,7 +1,11 @@ import { useState } from 'react' import { useTranslation } from 'react-i18next' import getMeta from '@/utils/meta' -import { Dropdown, DropdownMenu, DropdownToggle } from 'react-bootstrap' +import { + OLDropdown, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import { postJSON } from '@/infrastructure/fetch-json' import { debugConsole } from '@/utils/debugging' import DropdownMenuItem from '@/shared/components/dropdown/dropdown-menu-item' @@ -106,8 +110,8 @@ function AddOn({
    {reactivateState !== 'reactivating' && (
    - - + - - + + {pendingCancellation ? ( handleReactivateClick(addOnCode)} @@ -136,8 +140,8 @@ function AddOn({ {t('cancel')} )} - - + +
    )} diff --git a/services/web/frontend/js/features/subscription/components/dashboard/states/active/change-plan/modals/writefull-bundle-management-modal.tsx b/services/web/frontend/js/features/subscription/components/dashboard/states/active/change-plan/modals/writefull-bundle-management-modal.tsx index cc4c8e7cc1..24c1f99990 100644 --- a/services/web/frontend/js/features/subscription/components/dashboard/states/active/change-plan/modals/writefull-bundle-management-modal.tsx +++ b/services/web/frontend/js/features/subscription/components/dashboard/states/active/change-plan/modals/writefull-bundle-management-modal.tsx @@ -10,7 +10,11 @@ import { } from '@/shared/components/ol/ol-modal' import OLButton from '@/shared/components/ol/ol-button' import sparkle from '@/shared/svgs/sparkle.svg' -import { Dropdown, DropdownMenu, DropdownToggle } from 'react-bootstrap' +import { + OLDropdown, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import DropdownMenuItem from '@/shared/components/dropdown/dropdown-menu-item' import MaterialIcon from '@/shared/components/material-icon' import { ADD_ON_NAME } from '@/features/subscription/data/add-on-codes' @@ -90,8 +94,8 @@ function WritefullGrantedAddOn({
    - - + - - + + {t('manage_subscription')} - - + +
    ) diff --git a/services/web/frontend/js/shared/components/dropdown/dropdown-menu-item.tsx b/services/web/frontend/js/shared/components/dropdown/dropdown-menu-item.tsx index 3c0a5697d7..2043d1a271 100644 --- a/services/web/frontend/js/shared/components/dropdown/dropdown-menu-item.tsx +++ b/services/web/frontend/js/shared/components/dropdown/dropdown-menu-item.tsx @@ -1,12 +1,12 @@ -import { DropdownItem } from '@/shared/components/dropdown/dropdown-menu' -import { DropdownItemProps } from '@/shared/components/types/dropdown-menu-props' +import { OLDropdownItem } from '@/shared/components/ol/ol-dropdown-menu' +import { OLDropdownItemProps } from '@/shared/components/types/dropdown-menu-props' import DropdownListItem from '@/shared/components/dropdown/dropdown-list-item' // This represents a menu item. It wraps the item within an
  • element. -function DropdownMenuItem(props: DropdownItemProps) { +function DropdownMenuItem(props: OLDropdownItemProps) { return ( - + ) } diff --git a/services/web/frontend/js/shared/components/language-picker.tsx b/services/web/frontend/js/shared/components/language-picker.tsx index bfd7c948e2..1e544e4c7f 100644 --- a/services/web/frontend/js/shared/components/language-picker.tsx +++ b/services/web/frontend/js/shared/components/language-picker.tsx @@ -1,11 +1,11 @@ import React from 'react' import { - Dropdown, - DropdownItem, - DropdownMenu, - DropdownToggle, - DropdownHeader, -} from './dropdown/dropdown-menu' + OLDropdown, + OLDropdownItem, + OLDropdownMenu, + OLDropdownToggle, + OLDropdownHeader, +} from './ol/ol-dropdown-menu' import { useTranslation } from 'react-i18next' import getMeta from '@/utils/meta' import MaterialIcon from '@/shared/components/material-icon' @@ -19,8 +19,8 @@ function LanguagePicker({ showHeader } = { showHeader: false }) { const currentUrlWithQueryParams = window.location.pathname return ( - - + {translatedLanguages?.[currentLangCode]} - + - - {showHeader ? {t('language')} : null} + {showHeader ? ( + {t('language')} + ) : null} {subdomainLang && Object.entries(subdomainLang).map(([subdomain, subdomainDetails]) => { if ( @@ -50,19 +52,19 @@ function LanguagePicker({ showHeader } = { showHeader: false }) { const isActive = subdomainDetails.lngCode === currentLangCode return (
  • - {translatedLanguages?.[subdomainDetails.lngCode]} - +
  • ) })} - - + + ) } diff --git a/services/web/frontend/js/shared/components/menu-bar/menu-bar-dropdown.tsx b/services/web/frontend/js/shared/components/menu-bar/menu-bar-dropdown.tsx index 798b028ad7..2af20d07a7 100644 --- a/services/web/frontend/js/shared/components/menu-bar/menu-bar-dropdown.tsx +++ b/services/web/frontend/js/shared/components/menu-bar/menu-bar-dropdown.tsx @@ -1,15 +1,15 @@ import { - Dropdown, - DropdownMenu, - DropdownToggle, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdown, + OLDropdownMenu, + OLDropdownToggle, +} from '@/shared/components/ol/ol-dropdown-menu' import { FC, forwardRef, useCallback } from 'react' import classNames from 'classnames' import { useNestableDropdown } from '@/shared/hooks/use-nestable-dropdown' import { NestableDropdownContextProvider } from '@/shared/context/nestable-dropdown-context' import { AnchorProps } from 'react-bootstrap' import MaterialIcon from '../material-icon' -import { DropdownMenuProps } from '@/shared/components/types/dropdown-menu-props' +import { OLDropdownMenuProps } from '@/shared/components/types/dropdown-menu-props' type MenuBarDropdownProps = { title: string @@ -41,33 +41,33 @@ export const MenuBarDropdown: FC< const active = selected === id return ( - - + {title} - + {active && ( {children} )} - + ) } const NestableDropdownMenu: FC< - React.PropsWithChildren + React.PropsWithChildren > = ({ children, id, ...props }) => { return ( - + {children} - + ) } @@ -118,7 +118,7 @@ export const NestedMenuBarDropdown: FC< ) const active = selected === id return ( - - {title} - + {active && ( {children} )} - + ) } diff --git a/services/web/frontend/js/shared/components/menu-bar/menu-bar-option.tsx b/services/web/frontend/js/shared/components/menu-bar/menu-bar-option.tsx index 0ba95ed29e..6c0a4024db 100644 --- a/services/web/frontend/js/shared/components/menu-bar/menu-bar-option.tsx +++ b/services/web/frontend/js/shared/components/menu-bar/menu-bar-option.tsx @@ -1,5 +1,5 @@ import DropdownListItem from '@/shared/components/dropdown/dropdown-list-item' -import { DropdownItem } from '@/shared/components/dropdown/dropdown-menu' +import { OLDropdownItem } from '@/shared/components/ol/ol-dropdown-menu' import { useEditorAnalytics } from '@/shared/hooks/use-editor-analytics' import { useNestableDropdown } from '@/shared/hooks/use-nestable-dropdown' import { MouseEventHandler, ReactNode, useCallback } from 'react' @@ -40,7 +40,7 @@ export const MenuBarOption = ({ ) return ( - setSelected(null)} onClick={onClick} disabled={disabled} @@ -51,7 +51,7 @@ export const MenuBarOption = ({ target={target} > {title} - + ) } diff --git a/services/web/frontend/js/shared/components/navbar/account-menu-items.tsx b/services/web/frontend/js/shared/components/navbar/account-menu-items.tsx index 9cff9d8dd3..48fa642d99 100644 --- a/services/web/frontend/js/shared/components/navbar/account-menu-items.tsx +++ b/services/web/frontend/js/shared/components/navbar/account-menu-items.tsx @@ -1,4 +1,4 @@ -import { Dropdown } from 'react-bootstrap' +import { OLDropdownItem } from '@/shared/components/ol/ol-dropdown-menu' import { useTranslation } from 'react-i18next' import getMeta from '@/utils/meta' import type { NavbarSessionUser } from '@/shared/components/types/navbar' @@ -25,9 +25,9 @@ export function AccountMenuItems({ return ( <> - + {sessionUser.email} - + {t('account_settings')} @@ -51,7 +51,7 @@ export function AccountMenuItems({ // inside the form, screen readers will not count it in the total // number of menu items } - {t('log_out')} {dsNavStyle && } - + diff --git a/services/web/frontend/js/shared/components/navbar/contact-us-item.tsx b/services/web/frontend/js/shared/components/navbar/contact-us-item.tsx index 325f755f38..c18e8209af 100644 --- a/services/web/frontend/js/shared/components/navbar/contact-us-item.tsx +++ b/services/web/frontend/js/shared/components/navbar/contact-us-item.tsx @@ -1,5 +1,5 @@ import { useTranslation } from 'react-i18next' -import { DropdownItem } from 'react-bootstrap' +import { OLDropdownItem } from '@/shared/components/ol/ol-dropdown-menu' import DropdownListItem from '@/shared/components/dropdown/dropdown-list-item' import { type ExtraSegmentations, @@ -18,7 +18,7 @@ export default function ContactUsItem({ return ( - { @@ -27,7 +27,7 @@ export default function ContactUsItem({ }} > {t('contact_us')} - + ) } diff --git a/services/web/frontend/js/shared/components/navbar/nav-dropdown-divider.tsx b/services/web/frontend/js/shared/components/navbar/nav-dropdown-divider.tsx index e2e2e6955d..099e769d3d 100644 --- a/services/web/frontend/js/shared/components/navbar/nav-dropdown-divider.tsx +++ b/services/web/frontend/js/shared/components/navbar/nav-dropdown-divider.tsx @@ -1,5 +1,5 @@ -import { DropdownDivider } from '@/shared/components/dropdown/dropdown-menu' +import { OLDropdownDivider } from '@/shared/components/ol/ol-dropdown-menu' export default function NavDropdownDivider() { - return + return } diff --git a/services/web/frontend/js/shared/components/navbar/nav-dropdown-link-item.tsx b/services/web/frontend/js/shared/components/navbar/nav-dropdown-link-item.tsx index 0b9c54b5b9..6b4e9145db 100644 --- a/services/web/frontend/js/shared/components/navbar/nav-dropdown-link-item.tsx +++ b/services/web/frontend/js/shared/components/navbar/nav-dropdown-link-item.tsx @@ -1,7 +1,7 @@ import { ReactNode } from 'react' import DropdownListItem from '@/shared/components/dropdown/dropdown-list-item' -import { DropdownItem } from 'react-bootstrap' -import { DropdownItemProps } from 'react-bootstrap/DropdownItem' +import { OLDropdownItem } from '@/shared/components/ol/ol-dropdown-menu' +import { OLDropdownItemProps } from '@/shared/components/types/dropdown-menu-props' export default function NavDropdownLinkItem({ href, @@ -10,7 +10,7 @@ export default function NavDropdownLinkItem({ children, }: { href: string - onClick?: DropdownItemProps['onClick'] + onClick?: OLDropdownItemProps['onClick'] openInNewWindow?: boolean children: ReactNode }) { @@ -19,14 +19,14 @@ export default function NavDropdownLinkItem({ : {} return ( - {children} - + ) } diff --git a/services/web/frontend/js/shared/components/navbar/nav-dropdown-menu.tsx b/services/web/frontend/js/shared/components/navbar/nav-dropdown-menu.tsx index 9b962238c1..8a802037f9 100644 --- a/services/web/frontend/js/shared/components/navbar/nav-dropdown-menu.tsx +++ b/services/web/frontend/js/shared/components/navbar/nav-dropdown-menu.tsx @@ -1,5 +1,9 @@ import { type ReactNode, useState } from 'react' -import { Dropdown } from 'react-bootstrap' +import { + OLDropdown, + OLDropdownToggle, + OLDropdownMenu, +} from '@/shared/components/ol/ol-dropdown-menu' import { CaretUp, CaretDown } from '@phosphor-icons/react' import { useDsNavStyle } from '@/features/project-list/components/use-is-ds-nav' @@ -20,22 +24,21 @@ export default function NavDropdownMenu({ // a
      element using NavDropdown const Caret = show ? CaretUp : CaretDown return ( - { setShow(nextShow) onToggle?.(nextShow) }} > - + {title} {dsNavStyle && } - - - {children} - - + + {children} + ) } diff --git a/services/web/frontend/js/shared/components/ol/ol-autocomplete.tsx b/services/web/frontend/js/shared/components/ol/ol-autocomplete.tsx index 93a822bf5f..d6efd94545 100644 --- a/services/web/frontend/js/shared/components/ol/ol-autocomplete.tsx +++ b/services/web/frontend/js/shared/components/ol/ol-autocomplete.tsx @@ -7,9 +7,9 @@ import OLButton from '@/shared/components/ol/ol-button' import OLFormControl from '@/shared/components/ol/ol-form-control' import OLFormLabel from '@/shared/components/ol/ol-form-label' import { - DropdownHeader, - DropdownItem, -} from '@/shared/components/dropdown/dropdown-menu' + OLDropdownHeader, + OLDropdownItem, +} from '@/shared/components/ol/ol-dropdown-menu' import MaterialIcon from '@/shared/components/material-icon' const FUZZY_SEARCH_THRESHOLD = 0.5 @@ -289,7 +289,9 @@ function OLAutocompleteInternal({ )} {hasGroupHeader && (
    • - {item.group} + + {item.group} +
    • )}
    • - {item.label} - +
    • ) @@ -335,7 +337,7 @@ function OLAutocompleteInternal({ key={`${item.value}${index}`} {...getItemProps({ item, index })} > - {item.label} - + ) }) diff --git a/services/web/frontend/js/shared/components/dropdown/dropdown-menu.tsx b/services/web/frontend/js/shared/components/ol/ol-dropdown-menu.tsx similarity index 66% rename from services/web/frontend/js/shared/components/dropdown/dropdown-menu.tsx rename to services/web/frontend/js/shared/components/ol/ol-dropdown-menu.tsx index c978085ff0..cb851ab933 100644 --- a/services/web/frontend/js/shared/components/dropdown/dropdown-menu.tsx +++ b/services/web/frontend/js/shared/components/ol/ol-dropdown-menu.tsx @@ -8,28 +8,28 @@ import React, { useState, } from 'react' import { - Dropdown as BS5Dropdown, - DropdownToggle as BS5DropdownToggle, - DropdownMenu as BS5DropdownMenu, - DropdownItem as BS5DropdownItem, - DropdownDivider as BS5DropdownDivider, - DropdownHeader as BS5DropdownHeader, - Button as BS5Button, + Dropdown, + DropdownToggle, + DropdownMenu, + DropdownItem, + DropdownDivider, + DropdownHeader, + Button, } from 'react-bootstrap' import type { - DropdownProps, - DropdownItemProps, - DropdownToggleProps, - DropdownMenuProps, - DropdownDividerProps, - DropdownHeaderProps, + OLDropdownProps, + OLDropdownItemProps, + OLDropdownToggleProps, + OLDropdownMenuProps, + OLDropdownDividerProps, + OLDropdownHeaderProps, } from '@/shared/components/types/dropdown-menu-props' import MaterialIcon from '@/shared/components/material-icon' import { fixedForwardRef } from '@/utils/react' import classnames from 'classnames' -// Lets DropdownToggle register its presence with the parent Dropdown so that -// DropdownMenu can know whether a toggle exists (and therefore whether Popper +// Lets OLDropdownToggle register its presence with the parent OLDropdown so that +// OLDropdownMenu can know whether a toggle exists (and therefore whether Popper // will run to position the menu). type DropdownInternalContextValue = { registerToggle: () => () => void @@ -38,7 +38,7 @@ type DropdownInternalContextValue = { const DropdownInternalContext = createContext(null) -export function Dropdown({ children, ...props }: DropdownProps) { +export function OLDropdown({ children, ...props }: OLDropdownProps) { const [toggleCount, setToggleCount] = useState(0) const registerToggle = useCallback(() => { @@ -53,12 +53,12 @@ export function Dropdown({ children, ...props }: DropdownProps) { return ( - {children} + {children} ) } -function DropdownItem( +function OLDropdownItem( { active, children, @@ -67,8 +67,8 @@ function DropdownItem( leadingIcon, trailingIcon, ...props - }: DropdownItemProps, - ref: React.ForwardedRef + }: OLDropdownItemProps, + ref: React.ForwardedRef ) { let leadingIconComponent = null if (leadingIcon) { @@ -109,7 +109,7 @@ function DropdownItem( } return ( - + ) } @@ -134,47 +134,47 @@ function EmptyLeadingIcon() { return } -const ForwardReferredDropdownItem = fixedForwardRef(DropdownItem, { +const ForwardReferredOLDropdownItem = fixedForwardRef(OLDropdownItem, { EmptyLeadingIcon, }) -export { ForwardReferredDropdownItem as DropdownItem } +export { ForwardReferredOLDropdownItem as OLDropdownItem } -export const DropdownToggleCustom = forwardRef< +export const OLDropdownToggleCustom = forwardRef< HTMLButtonElement, - React.ComponentProps + React.ComponentProps >(({ children, className, ...props }, ref) => ( - {children} - + )) -DropdownToggleCustom.displayName = 'DropdownToggleCustom' +OLDropdownToggleCustom.displayName = 'OLDropdownToggleCustom' -export const DropdownToggle = forwardRef< - typeof BS5DropdownToggle, - DropdownToggleProps +export const OLDropdownToggle = forwardRef< + typeof DropdownToggle, + OLDropdownToggleProps >((props, ref) => { const registerToggle = useContext(DropdownInternalContext)?.registerToggle useLayoutEffect(() => registerToggle?.(), [registerToggle]) - return + return }) -DropdownToggle.displayName = 'DropdownToggle' +OLDropdownToggle.displayName = 'OLDropdownToggle' -export const DropdownMenu = forwardRef< - typeof BS5DropdownMenu, - DropdownMenuProps +export const OLDropdownMenu = forwardRef< + typeof DropdownMenu, + OLDropdownMenuProps >(({ as = 'ul', className, ...props }, ref) => { const context = useContext(DropdownInternalContext) return ( - ) }) -DropdownMenu.displayName = 'DropdownMenu' +OLDropdownMenu.displayName = 'OLDropdownMenu' -export function DropdownDivider({ as = 'li', ...props }: DropdownDividerProps) { - return +export function OLDropdownDivider({ + as = 'li', + ...props +}: OLDropdownDividerProps) { + return } -export function DropdownHeader({ as = 'li', ...props }: DropdownHeaderProps) { - return +export function OLDropdownHeader({ + as = 'li', + ...props +}: OLDropdownHeaderProps) { + return } diff --git a/services/web/frontend/js/shared/components/select.tsx b/services/web/frontend/js/shared/components/select.tsx index 8c9277568f..cfa6dfd3f8 100644 --- a/services/web/frontend/js/shared/components/select.tsx +++ b/services/web/frontend/js/shared/components/select.tsx @@ -14,13 +14,13 @@ import { Form, OverlayProps } from 'react-bootstrap' import OLFormControl from '@/shared/components/ol/ol-form-control' import MaterialIcon from '@/shared/components/material-icon' import { CaretUp, CaretDown, Check } from '@phosphor-icons/react' -import { DropdownItem } from '@/shared/components/dropdown/dropdown-menu' +import { OLDropdownItem } from '@/shared/components/ol/ol-dropdown-menu' import OLOverlay from '@/shared/components/ol/ol-overlay' import OLSpinner from './ol/ol-spinner' import DSFormLabel from '@/shared/components/ds/ds-form-label' import DSFormGroup from '@/shared/components/ds/ds-form-group' import DSFormControl from '@/shared/components/ds/ds-form-control' -import { DropdownItemProps } from '@/shared/components/types/dropdown-menu-props' +import { OLDropdownItemProps } from '@/shared/components/types/dropdown-menu-props' function SelectMenuPopover({ show, @@ -82,7 +82,7 @@ export type SelectProps = { // Maps an item to a leading icon. itemToLeadingIcon?: ( item: T | null | undefined - ) => DropdownItemProps['leadingIcon'] + ) => OLDropdownItemProps['leadingIcon'] // Callback invoked after the selected item is updated. onSelectedItemChanged?: (item: T | null | undefined) => void // Optionally directly control the selected item. @@ -235,7 +235,7 @@ export const Select = ({ }) return (
    • - ({ disabled={disabled} > {itemToString(item)} - +
    • ) })} diff --git a/services/web/frontend/js/shared/components/sidebar/sidebar-lower-section.tsx b/services/web/frontend/js/shared/components/sidebar/sidebar-lower-section.tsx index f4af6b98af..50953e8f8e 100644 --- a/services/web/frontend/js/shared/components/sidebar/sidebar-lower-section.tsx +++ b/services/web/frontend/js/shared/components/sidebar/sidebar-lower-section.tsx @@ -1,7 +1,11 @@ import { type Ref, useState } from 'react' import { useTranslation } from 'react-i18next' import { Question, User } from '@phosphor-icons/react' -import { Dropdown } from 'react-bootstrap' +import { + OLDropdown, + OLDropdownToggle, + OLDropdownMenu, +} from '@/shared/components/ol/ol-dropdown-menu' import getMeta from '@/utils/meta' import OLTooltip from '@/shared/components/ol/ol-tooltip' import { NavDropdownMenuItems } from '@/shared/components/navbar/nav-dropdown-from-data' @@ -42,8 +46,9 @@ export function SidebarLowerSection({ aria-label={t('account_help')} > {helpItem && ( - { setShowHelpDropdown(show) if (show) { @@ -52,7 +57,7 @@ export function SidebarLowerSection({ }} role="menu" > - + - - + - - + + )} {sessionUser && ( - { setShowAccountDropdown(show) if (show) { @@ -97,7 +100,7 @@ export function SidebarLowerSection({ }} role="menu" > - + - - + - - + + )}
      diff --git a/services/web/frontend/js/shared/components/types/dropdown-menu-props.ts b/services/web/frontend/js/shared/components/types/dropdown-menu-props.ts index 31d5d7348f..05367a1f85 100644 --- a/services/web/frontend/js/shared/components/types/dropdown-menu-props.ts +++ b/services/web/frontend/js/shared/components/types/dropdown-menu-props.ts @@ -1,13 +1,13 @@ import type { ElementType, ReactNode, PropsWithChildren, AriaRole } from 'react' import type { ButtonProps } from '@/shared/components/types/button-props' -import type { DropdownMenuProps as BS5DropdownMenuProps } from 'react-bootstrap' +import type { DropdownMenuProps } from 'react-bootstrap' type SplitButtonVariants = Extract< ButtonProps['variant'], 'primary' | 'secondary' | 'danger' | 'link' | 'ghost' > -export type DropdownProps = { +export type OLDropdownProps = { align?: | 'start' | 'end' @@ -29,61 +29,68 @@ export type DropdownProps = { role?: AriaRole } -export type DropdownItemProps = PropsWithChildren<{ - active?: boolean - as?: ElementType - type?: string - description?: ReactNode - disabled?: boolean - eventKey?: string | number - href?: string - leadingIcon?: string | React.ReactNode - onClick?: React.MouseEventHandler - onMouseEnter?: React.MouseEventHandler - trailingIcon?: string | React.ReactNode - variant?: 'default' | 'danger' - className?: string - role?: string - tabIndex?: number - target?: string - download?: boolean | string - rel?: string - translate?: React.HTMLAttributes['translate'] -}> +export type OLDropdownItemProps = PropsWithChildren< + { + active?: boolean + as?: ElementType + type?: string + description?: ReactNode + disabled?: boolean + eventKey?: string | number + href?: string + leadingIcon?: string | React.ReactNode + onClick?: React.MouseEventHandler + onMouseEnter?: React.MouseEventHandler + trailingIcon?: string | React.ReactNode + variant?: 'default' | 'danger' + className?: string + role?: string + form?: string + tabIndex?: number + target?: string + download?: boolean | string + rel?: string + translate?: React.HTMLAttributes['translate'] + } & React.AriaAttributes & { [key: `data-${string}`]: unknown } +> -export type DropdownToggleProps = PropsWithChildren<{ - bsPrefix?: string - className?: string - disabled?: boolean - split?: boolean - id?: string // necessary for assistive technologies - variant?: SplitButtonVariants - as?: ElementType - size?: 'sm' | 'lg' | undefined - tabIndex?: number - 'aria-label'?: string - onMouseEnter?: React.MouseEventHandler -}> +export type OLDropdownToggleProps = PropsWithChildren< + { + bsPrefix?: string + className?: string + disabled?: boolean + split?: boolean + id?: string // necessary for assistive technologies + variant?: SplitButtonVariants + as?: ElementType + size?: 'sm' | 'lg' | undefined + tabIndex?: number + role?: string + onMouseEnter?: React.MouseEventHandler + } & React.AriaAttributes & { [key: `data-${string}`]: unknown } +> -export type DropdownMenuProps = PropsWithChildren<{ - as?: ElementType - disabled?: boolean - show?: boolean - className?: string - flip?: boolean - id?: string - renderOnMount?: boolean - popperConfig?: BS5DropdownMenuProps['popperConfig'] - tabIndex?: number - onKeyDown?: (event: React.KeyboardEvent) => void -}> +export type OLDropdownMenuProps = PropsWithChildren< + { + as?: ElementType + disabled?: boolean + show?: boolean + className?: string + flip?: boolean + id?: string + renderOnMount?: boolean + popperConfig?: DropdownMenuProps['popperConfig'] + tabIndex?: number + onKeyDown?: (event: React.KeyboardEvent) => void + } & React.AriaAttributes +> -export type DropdownDividerProps = PropsWithChildren<{ +export type OLDropdownDividerProps = PropsWithChildren<{ as?: ElementType className?: string }> -export type DropdownHeaderProps = PropsWithChildren<{ +export type OLDropdownHeaderProps = PropsWithChildren<{ as?: ElementType className?: string }>