From a505547e0143ffab21e733dc81387b6c635dbc1b Mon Sep 17 00:00:00 2001 From: pubuzhixing8 Date: Sun, 16 Jun 2024 19:32:50 +0800 Subject: [PATCH] feat(board): disabled use-select for foreign-object- add touchmove listener for board --- apps/react-app/src/styles/core/styles.scss | 4 ++++ packages/react-board/src/hooks/use-board-event.ts | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/apps/react-app/src/styles/core/styles.scss b/apps/react-app/src/styles/core/styles.scss index 073a721..8bc18be 100644 --- a/apps/react-app/src/styles/core/styles.scss +++ b/apps/react-app/src/styles/core/styles.scss @@ -91,5 +91,9 @@ cursor: crosshair; } + foreignObject[class^='foreign-object-'] { + user-select: none; + } + @include mixins.board-background-color(); } diff --git a/packages/react-board/src/hooks/use-board-event.ts b/packages/react-board/src/hooks/use-board-event.ts index b1ac1f3..82a8e63 100644 --- a/packages/react-board/src/hooks/use-board-event.ts +++ b/packages/react-board/src/hooks/use-board-event.ts @@ -5,6 +5,7 @@ import { initializeViewBox, initializeViewportContainer, isFromViewportChange, + isPreventTouchMove, setIsFromViewportChange, updateViewportByScrolling, updateViewportOffset @@ -29,6 +30,16 @@ const useBoardEvent = ( { target: PlaitBoard.getViewportContainer(board) } ); + useEventListener( + 'touchmove', + (event) => { + if (isPreventTouchMove(board)) { + event.preventDefault(); + } + }, + { target: PlaitBoard.getViewportContainer(board), passive: false } + ); + useEventListener( 'wheel', (event) => {