fix: mobile UI and other fixes (#10177)

* remove legacy openMenu=shape state and unused actions

* close menus/popups in applicable cases when opening a different one

* split ui z-indexes to account prefer different overlap

* make top canvas area clickable on mobile

* make mobile main menu closable by clicking outside and reduce width

* offset picker popups from viewport border on mobile

* reduce items gap in mobile main menu

* show top picks for canvas bg colors in all ui modes

* fix menu separator visibility on mobile

* fix command palette items not being filtered
This commit is contained in:
David Luzar
2025-10-14 16:34:49 +02:00
committed by GitHub
parent 8608d7b2e0
commit 5fffc4743f
19 changed files with 58 additions and 85 deletions
@@ -30,9 +30,6 @@ const MainMenu = Object.assign(
const device = useDevice();
const appState = useUIAppState();
const setAppState = useExcalidrawSetAppState();
const onClickOutside = device.editor.isMobile
? undefined
: () => setAppState({ openMenu: null });
return (
<MainMenuTunnel.In>
@@ -41,6 +38,8 @@ const MainMenu = Object.assign(
onToggle={() => {
setAppState({
openMenu: appState.openMenu === "canvas" ? null : "canvas",
openPopup: null,
openDialog: null,
});
}}
data-testid="main-menu-trigger"
@@ -49,7 +48,7 @@ const MainMenu = Object.assign(
{HamburgerMenuIcon}
</DropdownMenu.Trigger>
<DropdownMenu.Content
onClickOutside={onClickOutside}
onClickOutside={() => setAppState({ openMenu: null })}
onSelect={composeEventHandlers(onSelect, () => {
setAppState({ openMenu: null });
})}