add isTouchMobile to device

This commit is contained in:
Ryan Di
2025-08-25 13:51:40 +10:00
parent 368c0ee69c
commit ea3c2374a1
3 changed files with 13 additions and 1 deletions

View File

@@ -473,10 +473,12 @@ const deviceContextInitialValue = {
viewport: {
isMobile: false,
isLandscape: false,
isTablet: false,
},
editor: {
isMobile: false,
canFitSidebar: false,
isTablet: false,
},
isTouchScreen: false,
};
@@ -2422,6 +2424,12 @@ class App extends React.Component<AppProps, AppState> {
return isMobile || isTouchMobile;
};
private isTablet = (): boolean => {
const { clientWidth: viewportWidth } = document.body;
return this.isMobileOrTablet() && viewportWidth > MQ_MAX_WIDTH_PORTRAIT;
};
private isMobileBreakpoint = (width: number, height: number) => {
return (
width < MQ_MAX_WIDTH_PORTRAIT ||
@@ -2443,6 +2451,7 @@ class App extends React.Component<AppProps, AppState> {
const nextViewportState = updateObject(prevViewportState, {
isLandscape: viewportWidth > viewportHeight,
isMobile: this.isMobileBreakpoint(viewportWidth, viewportHeight),
isTablet: this.isTablet(),
});
if (prevViewportState !== nextViewportState) {
@@ -2471,6 +2480,7 @@ class App extends React.Component<AppProps, AppState> {
const nextEditorState = updateObject(prevEditorState, {
isMobile: this.isMobileBreakpoint(editorWidth, editorHeight),
canFitSidebar: editorWidth > sidebarBreakpoint,
isTablet: this.isTablet(),
});
if (prevEditorState !== nextEditorState) {

View File

@@ -284,7 +284,7 @@ const LayerUI = ({
<Stack.Col gap={6} className={clsx("App-menu_top__left")}>
{renderCanvasActions()}
{shouldRenderSelectedShapeActions &&
renderSelectedShapeActions(device.isTouchScreen)}
renderSelectedShapeActions(device.editor.isTablet)}
</Stack.Col>
{!appState.viewModeEnabled &&
appState.openDialog?.name !== "elementLinkSelector" && (

View File

@@ -879,9 +879,11 @@ export type Device = Readonly<{
viewport: {
isMobile: boolean;
isLandscape: boolean;
isTablet: boolean;
};
editor: {
isMobile: boolean;
isTablet: boolean;
canFitSidebar: boolean;
};
isTouchScreen: boolean;