diff --git a/excalidraw-app/tests/MobileMenu.test.tsx b/excalidraw-app/tests/MobileMenu.test.tsx index 3b05e7296..400b625ec 100644 --- a/excalidraw-app/tests/MobileMenu.test.tsx +++ b/excalidraw-app/tests/MobileMenu.test.tsx @@ -36,7 +36,7 @@ describe("Test MobileMenu", () => { }, "isTouchScreen": false, "viewport": { - "isLandscape": false, + "isLandscape": true, "isMobile": true, }, } diff --git a/packages/common/src/constants.ts b/packages/common/src/constants.ts index 0366e0910..b41fb1a37 100644 --- a/packages/common/src/constants.ts +++ b/packages/common/src/constants.ts @@ -347,15 +347,12 @@ export const DEFAULT_UI_OPTIONS: AppProps["UIOptions"] = { // breakpoints // ----------------------------------------------------------------------------- -// md screen -export const MQ_MAX_WIDTH_LANDSCAPE = 1000; -export const MQ_MAX_HEIGHT_LANDSCAPE = 500; // mobile: up to 699px -export const MQ_MAX_WIDTH_MOBILE = 699; +export const MQ_MAX_MOBILE = 599; // tablets -export const MQ_MIN_TABLET = 600; // lower bound (excludes phones) +export const MQ_MIN_TABLET = MQ_MAX_MOBILE + 1; // lower bound (excludes phones) export const MQ_MAX_TABLET = 1400; // upper bound (excludes laptops/desktops) // desktop/laptop diff --git a/packages/excalidraw/components/App.tsx b/packages/excalidraw/components/App.tsx index 3bbfdca6e..dbd23afe5 100644 --- a/packages/excalidraw/components/App.tsx +++ b/packages/excalidraw/components/App.tsx @@ -100,9 +100,7 @@ import { MINIMUM_ARROW_SIZE, DOUBLE_TAP_POSITION_THRESHOLD, isMobileOrTablet, - MQ_MAX_WIDTH_MOBILE, - MQ_MAX_HEIGHT_LANDSCAPE, - MQ_MAX_WIDTH_LANDSCAPE, + MQ_MAX_MOBILE, MQ_MIN_TABLET, MQ_MAX_TABLET, } from "@excalidraw/common"; @@ -2423,10 +2421,8 @@ class App extends React.Component { }; private isMobileBreakpoint = (width: number, height: number) => { - return ( - width <= MQ_MAX_WIDTH_MOBILE || - (height < MQ_MAX_HEIGHT_LANDSCAPE && width < MQ_MAX_WIDTH_LANDSCAPE) - ); + const minSide = Math.min(width, height); + return minSide <= MQ_MAX_MOBILE; }; private isTabletBreakpoint = (editorWidth: number, editorHeight: number) => { @@ -2442,14 +2438,14 @@ class App extends React.Component { return; } - const { clientWidth: viewportWidth, clientHeight: viewportHeight } = - document.body; + const { width: editorWidth, height: editorHeight } = + container.getBoundingClientRect(); const prevViewportState = this.device.viewport; const nextViewportState = updateObject(prevViewportState, { - isLandscape: viewportWidth > viewportHeight, - isMobile: this.isMobileBreakpoint(viewportWidth, viewportHeight), + isLandscape: editorWidth > editorHeight, + isMobile: this.isMobileBreakpoint(editorWidth, editorHeight), }); if (prevViewportState !== nextViewportState) {