From 70d48d547207d0cd611ea2683731fe7676a1a0fc Mon Sep 17 00:00:00 2001 From: barnabasmolnar Date: Fri, 21 Apr 2023 15:58:04 +0200 Subject: [PATCH] Make main menu full width on mobile again. --- src/components/dropdownMenu/DropdownMenu.scss | 14 +++++--------- .../dropdownMenu/DropdownMenuContent.tsx | 3 +++ .../dropdownMenu/DropdownMenuSubContent.tsx | 7 ++++++- src/components/main-menu/MainMenu.tsx | 9 ++++++--- src/packages/excalidraw/example/App.tsx | 4 ++-- 5 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/components/dropdownMenu/DropdownMenu.scss b/src/components/dropdownMenu/DropdownMenu.scss index cbdefa366..1a683ab42 100644 --- a/src/components/dropdownMenu/DropdownMenu.scss +++ b/src/components/dropdownMenu/DropdownMenu.scss @@ -3,6 +3,11 @@ .excalidraw { [data-radix-popper-content-wrapper] { z-index: 1 !important; + + @include isMobile { + width: 100%; + max-width: var(--radix-popper-available-width); + } } .dropdown-menu { @@ -30,15 +35,6 @@ &--mobile { max-width: none; - // bottom: 55px; - // top: auto; - // left: 0; - // // TODO barnabasmolnar/mainmenu-radix - // // double check rendering/styling on mobile - // // width: 100%; - // display: flex; - // flex-direction: column; - // row-gap: 0.75rem; .dropdown-menu-container { padding: 8px 8px; diff --git a/src/components/dropdownMenu/DropdownMenuContent.tsx b/src/components/dropdownMenu/DropdownMenuContent.tsx index d60ddd97e..ceac898db 100644 --- a/src/components/dropdownMenu/DropdownMenuContent.tsx +++ b/src/components/dropdownMenu/DropdownMenuContent.tsx @@ -16,6 +16,7 @@ const MenuContent = ({ onSelect, style, sideOffset, + collisionBoundary, }: { children?: React.ReactNode; onClickOutside?: () => void; @@ -26,6 +27,7 @@ const MenuContent = ({ onSelect?: (event: Event) => void; style?: React.CSSProperties; sideOffset?: number; + collisionBoundary?: Element | Element[] | null | undefined; }) => { const device = useDevice(); const menuRef = useOutsideClickHook(() => { @@ -39,6 +41,7 @@ const MenuContent = ({ return ( { const device = useDevice(); @@ -18,7 +20,10 @@ const DropdownMenuSubContent = ({ }).trim(); return ( - + {device.isMobile ? ( {children} ) : ( diff --git a/src/components/main-menu/MainMenu.tsx b/src/components/main-menu/MainMenu.tsx index d8ccf5856..efad1ced3 100644 --- a/src/components/main-menu/MainMenu.tsx +++ b/src/components/main-menu/MainMenu.tsx @@ -33,9 +33,7 @@ const MainMenu = Object.assign( const device = useDevice(); const appState = useExcalidrawAppState(); const setAppState = useExcalidrawSetAppState(); - const onClickOutside = device.isMobile - ? undefined - : () => setAppState({ openMenu: null }); + const onClickOutside = () => setAppState({ openMenu: null }); return ( @@ -50,6 +48,11 @@ const MainMenu = Object.assign( {HamburgerMenuIcon} - Trigger me - + Trigger me with offset + Trigger me inside