From ef72402df6a09b9197fbc1c4fffdcd600395d297 Mon Sep 17 00:00:00 2001 From: Tim Down <158919+timdown@users.noreply.github.com> Date: Mon, 25 Nov 2024 14:18:12 +0000 Subject: [PATCH] Merge pull request #22089 from overleaf/td-bs5-menu-item-reduce-height Reduce the height of menu items in BS5 to 36px GitOrigin-RevId: 0d6294f1713618bc97562c92ea877aaeac8b9698 --- .../dropdown/menu-item/add-label.tsx | 5 +-- .../menu-item/compare-dropdown-item.tsx | 21 +++++++----- .../dropdown/menu-item/download.tsx | 33 ++++++++++--------- .../dropdown/menu-item/restore-project.tsx | 5 +-- .../bootstrap-5/dropdown-list-item.tsx | 9 +++++ .../bootstrap-5/navbar/contact-us-item.tsx | 6 ++-- .../bootstrap-5/navbar/logged-in-items.tsx | 6 ++-- .../navbar/nav-dropdown-from-data.tsx | 6 ++-- .../bootstrap-5/navbar/nav-dropdown-item.tsx | 5 --- .../navbar/nav-dropdown-link-item.tsx | 6 ++-- .../abstracts/variable-overrides.scss | 2 +- .../bootstrap-5/components/dropdown-menu.scss | 2 +- .../bootstrap-5/pages/editor/history.scss | 13 -------- 13 files changed, 59 insertions(+), 60 deletions(-) create mode 100644 services/web/frontend/js/features/ui/components/bootstrap-5/dropdown-list-item.tsx delete mode 100644 services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-item.tsx diff --git a/services/web/frontend/js/features/history/components/change-list/dropdown/menu-item/add-label.tsx b/services/web/frontend/js/features/history/components/change-list/dropdown/menu-item/add-label.tsx index 882bb9a439..9281b3c391 100644 --- a/services/web/frontend/js/features/history/components/change-list/dropdown/menu-item/add-label.tsx +++ b/services/web/frontend/js/features/history/components/change-list/dropdown/menu-item/add-label.tsx @@ -3,6 +3,7 @@ import { useTranslation } from 'react-i18next' import OLDropdownMenuItem from '@/features/ui/components/ol/ol-dropdown-menu-item' import OLTagIcon from '@/features/ui/components/ol/icons/ol-tag-icon' import AddLabelModal from '../../add-label-modal' +import DropdownListItem from '@/features/ui/components/bootstrap-5/dropdown-list-item' type DownloadProps = { projectId: string @@ -25,7 +26,7 @@ function AddLabel({ } return ( - <> + } @@ -40,7 +41,7 @@ function AddLabel({ setShow={setShowModal} version={version} /> - + ) } diff --git a/services/web/frontend/js/features/history/components/change-list/dropdown/menu-item/compare-dropdown-item.tsx b/services/web/frontend/js/features/history/components/change-list/dropdown/menu-item/compare-dropdown-item.tsx index 5b8d490ff9..91d5507ce0 100644 --- a/services/web/frontend/js/features/history/components/change-list/dropdown/menu-item/compare-dropdown-item.tsx +++ b/services/web/frontend/js/features/history/components/change-list/dropdown/menu-item/compare-dropdown-item.tsx @@ -2,6 +2,7 @@ import { useHistoryContext } from '../../../../context/history-context' import { UpdateRange } from '../../../../services/types/update' import { ReactNode } from 'react' import OLDropdownMenuItem from '@/features/ui/components/ol/ol-dropdown-menu-item' +import DropdownListItem from '@/features/ui/components/bootstrap-5/dropdown-list-item' type CompareProps = { comparisonRange: UpdateRange @@ -32,15 +33,17 @@ function CompareDropDownItem({ } return ( - - {text} - + + + {text} + + ) } diff --git a/services/web/frontend/js/features/history/components/change-list/dropdown/menu-item/download.tsx b/services/web/frontend/js/features/history/components/change-list/dropdown/menu-item/download.tsx index fc3e1a2d5f..0701ee5d07 100644 --- a/services/web/frontend/js/features/history/components/change-list/dropdown/menu-item/download.tsx +++ b/services/web/frontend/js/features/history/components/change-list/dropdown/menu-item/download.tsx @@ -3,6 +3,7 @@ import OLDropdownMenuItem from '@/features/ui/components/ol/ol-dropdown-menu-ite import MaterialIcon from '@/shared/components/material-icon' import BootstrapVersionSwitcher from '@/features/ui/components/bootstrap-5/bootstrap-version-switcher' import Icon from '../../../../../../shared/components/icon' +import DropdownListItem from '@/features/ui/components/bootstrap-5/dropdown-list-item' type DownloadProps = { projectId: string @@ -19,21 +20,23 @@ function Download({ const { t } = useTranslation() return ( - } - bs5={} - /> - } - {...props} - > - {t('history_download_this_version')} - + + } + bs5={} + /> + } + {...props} + > + {t('history_download_this_version')} + + ) } diff --git a/services/web/frontend/js/features/history/components/change-list/dropdown/menu-item/restore-project.tsx b/services/web/frontend/js/features/history/components/change-list/dropdown/menu-item/restore-project.tsx index dad0f47cd0..c491594db1 100644 --- a/services/web/frontend/js/features/history/components/change-list/dropdown/menu-item/restore-project.tsx +++ b/services/web/frontend/js/features/history/components/change-list/dropdown/menu-item/restore-project.tsx @@ -9,6 +9,7 @@ import withErrorBoundary from '@/infrastructure/error-boundary' import { RestoreProjectErrorModal } from '../../../diff-view/modals/restore-project-error-modal' import MaterialIcon from '@/shared/components/material-icon' import BootstrapVersionSwitcher from '@/features/ui/components/bootstrap-5/bootstrap-version-switcher' +import DropdownListItem from '@/features/ui/components/bootstrap-5/dropdown-list-item' type RestoreProjectProps = { projectId: string @@ -45,7 +46,7 @@ const RestoreProject = ({ } return ( - <> + - + ) } diff --git a/services/web/frontend/js/features/ui/components/bootstrap-5/dropdown-list-item.tsx b/services/web/frontend/js/features/ui/components/bootstrap-5/dropdown-list-item.tsx new file mode 100644 index 0000000000..3b492faca3 --- /dev/null +++ b/services/web/frontend/js/features/ui/components/bootstrap-5/dropdown-list-item.tsx @@ -0,0 +1,9 @@ +import { ReactNode } from 'react' + +export default function DropdownListItem({ + children, +}: { + children: ReactNode +}) { + return
  • {children}
  • +} diff --git a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/contact-us-item.tsx b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/contact-us-item.tsx index 180c57b252..85ece25d7d 100644 --- a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/contact-us-item.tsx +++ b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/contact-us-item.tsx @@ -1,7 +1,7 @@ import { sendMB } from '@/infrastructure/event-tracking' import { useTranslation } from 'react-i18next' import { DropdownItem } from 'react-bootstrap-5' -import NavDropdownItem from '@/features/ui/components/bootstrap-5/navbar/nav-dropdown-item' +import DropdownListItem from '@/features/ui/components/bootstrap-5/dropdown-list-item' export default function ContactUsItem({ showModal, @@ -11,7 +11,7 @@ export default function ContactUsItem({ const { t } = useTranslation() return ( - + {t('contact_us')} - + ) } diff --git a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/logged-in-items.tsx b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/logged-in-items.tsx index b108fccce3..b1990b22a8 100644 --- a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/logged-in-items.tsx +++ b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/logged-in-items.tsx @@ -4,7 +4,7 @@ import NavDropdownDivider from '@/features/ui/components/bootstrap-5/navbar/nav- import getMeta from '@/utils/meta' import NavDropdownMenu from '@/features/ui/components/bootstrap-5/navbar/nav-dropdown-menu' import NavDropdownLinkItem from '@/features/ui/components/bootstrap-5/navbar/nav-dropdown-link-item' -import NavDropdownItem from '@/features/ui/components/bootstrap-5/navbar/nav-dropdown-item' +import DropdownListItem from '@/features/ui/components/bootstrap-5/dropdown-list-item' import type { NavbarSessionUser } from '@/features/ui/components/types/navbar' import NavLinkItem from '@/features/ui/components/bootstrap-5/navbar/nav-link-item' @@ -35,7 +35,7 @@ export default function LoggedInItems({ ) : null} - + { // The button is outside the form but still belongs to it via the // form attribute. The reason to do this is that if the button is @@ -53,7 +53,7 @@ export default function LoggedInItems({
    -
    + ) diff --git a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-from-data.tsx b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-from-data.tsx index bfa6af6763..0fc1a211e2 100644 --- a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-from-data.tsx +++ b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-from-data.tsx @@ -3,7 +3,7 @@ import NavDropdownDivider from '@/features/ui/components/bootstrap-5/navbar/nav- import { sendMB } from '@/infrastructure/event-tracking' import { isDropdownLinkItem } from '@/features/ui/components/bootstrap-5/navbar/util' import NavDropdownLinkItem from '@/features/ui/components/bootstrap-5/navbar/nav-dropdown-link-item' -import NavDropdownItem from '@/features/ui/components/bootstrap-5/navbar/nav-dropdown-item' +import DropdownListItem from '@/features/ui/components/bootstrap-5/dropdown-list-item' import NavDropdownMenu from '@/features/ui/components/bootstrap-5/navbar/nav-dropdown-menu' import ContactUsItem from '@/features/ui/components/bootstrap-5/navbar/contact-us-item' @@ -35,9 +35,9 @@ export default function NavDropdownFromData({ ) } else { return ( - + {child.translatedText} - + ) } })} diff --git a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-item.tsx b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-item.tsx deleted file mode 100644 index b23c29cbd7..0000000000 --- a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-item.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { ReactNode } from 'react' - -export default function NavDropdownItem({ children }: { children: ReactNode }) { - return
  • {children}
  • -} diff --git a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-link-item.tsx b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-link-item.tsx index 235a2227e7..5acc808c21 100644 --- a/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-link-item.tsx +++ b/services/web/frontend/js/features/ui/components/bootstrap-5/navbar/nav-dropdown-link-item.tsx @@ -1,5 +1,5 @@ import { ReactNode } from 'react' -import NavDropdownItem from '@/features/ui/components/bootstrap-5/navbar/nav-dropdown-item' +import DropdownListItem from '@/features/ui/components/bootstrap-5/dropdown-list-item' import { DropdownItem } from 'react-bootstrap-5' import { DropdownItemProps } from 'react-bootstrap-5/DropdownItem' @@ -13,10 +13,10 @@ export default function NavDropdownLinkItem({ children: ReactNode }) { return ( - + {children} - + ) } diff --git a/services/web/frontend/stylesheets/bootstrap-5/abstracts/variable-overrides.scss b/services/web/frontend/stylesheets/bootstrap-5/abstracts/variable-overrides.scss index b70df80983..120c8f27da 100644 --- a/services/web/frontend/stylesheets/bootstrap-5/abstracts/variable-overrides.scss +++ b/services/web/frontend/stylesheets/bootstrap-5/abstracts/variable-overrides.scss @@ -257,7 +257,7 @@ $dropdown-border-radius: var(--border-radius-base); $dropdown-padding-x: var(--spacing-02); $dropdown-padding-y: var(--spacing-02); $dropdown-item-padding-x: var(--spacing-04); -$dropdown-item-padding-y: var(--spacing-05); +$dropdown-item-padding-y: var(--spacing-04); $dropdown-header-color: var(--content-secondary); // Offcanvas diff --git a/services/web/frontend/stylesheets/bootstrap-5/components/dropdown-menu.scss b/services/web/frontend/stylesheets/bootstrap-5/components/dropdown-menu.scss index d64e699fd7..ac36298510 100644 --- a/services/web/frontend/stylesheets/bootstrap-5/components/dropdown-menu.scss +++ b/services/web/frontend/stylesheets/bootstrap-5/components/dropdown-menu.scss @@ -55,7 +55,7 @@ display: grid; grid-auto-flow: column; place-content: center start; - min-height: 44px; // a minimum height of 44px to be accessible for touch screens + min-height: 36px; // a minimum height of 36px to be accessible for touch screens position: relative; &:active { diff --git a/services/web/frontend/stylesheets/bootstrap-5/pages/editor/history.scss b/services/web/frontend/stylesheets/bootstrap-5/pages/editor/history.scss index e7afdb672b..b8e206b6ae 100644 --- a/services/web/frontend/stylesheets/bootstrap-5/pages/editor/history.scss +++ b/services/web/frontend/stylesheets/bootstrap-5/pages/editor/history.scss @@ -380,19 +380,6 @@ history-root { } } -.history-version-dropdown-menu { - [role='menuitem'] { - padding: var(--spacing-05); - color: var(--content-primary); - - &:hover, - &:focus { - color: var(--content-primary); - background-color: var(--bg-light-secondary); - } - } -} - .document-diff-container { height: 100%; display: flex;