From 8da44cb85651937202a8cfc85808ce045d83df55 Mon Sep 17 00:00:00 2001 From: SergeyEzhin Date: Mon, 22 Jul 2024 18:34:57 +0300 Subject: [PATCH] [DE PE SSE mobile] For Bug 68855 --- apps/documenteditor/mobile/src/page/main.jsx | 31 +++++++++++++++++- .../mobile/src/page/main.jsx | 32 ++++++++++++++++++- .../mobile/src/page/main.jsx | 31 +++++++++++++++++- 3 files changed, 91 insertions(+), 3 deletions(-) diff --git a/apps/documenteditor/mobile/src/page/main.jsx b/apps/documenteditor/mobile/src/page/main.jsx index 1e31520c51..0a6715c802 100644 --- a/apps/documenteditor/mobile/src/page/main.jsx +++ b/apps/documenteditor/mobile/src/page/main.jsx @@ -79,12 +79,41 @@ const MainPage = inject('storeDocumentInfo', 'users', 'storeAppOptions', 'storeV } } + const touchMoveHandler = (e) => { + if (e.touches.length > 1 && !e.target.closest('#editor_sdk')) { + e.preventDefault(); + } + } + + const gesturePreventHandler = e => { + e.preventDefault(); + } + useEffect(() => { - if($$('.skl-container').length) { + if ($$('.skl-container').length) { $$('.skl-container').remove(); } + + document.addEventListener('touchmove', touchMoveHandler); + + if (Device.ios) { + document.addEventListener('gesturestart', gesturePreventHandler); + document.addEventListener('gesturechange', gesturePreventHandler); + document.addEventListener('gestureend', gesturePreventHandler); + } + + return () => { + document.removeEventListener('touchmove', touchMoveHandler); + + if (Device.ios) { + document.removeEventListener('gesturestart', gesturePreventHandler); + document.removeEventListener('gesturechange', gesturePreventHandler); + document.removeEventListener('gestureend', gesturePreventHandler); + } + } }, []); + const handleClickToOpenOptions = (opts, showOpts) => { f7.popover.close('.document-menu.modal-in', false); diff --git a/apps/presentationeditor/mobile/src/page/main.jsx b/apps/presentationeditor/mobile/src/page/main.jsx index d093de2cf0..7cbe88e394 100644 --- a/apps/presentationeditor/mobile/src/page/main.jsx +++ b/apps/presentationeditor/mobile/src/page/main.jsx @@ -115,9 +115,39 @@ class MainPage extends Component { } }; + touchMoveHandler (e) { + if (e.touches.length > 1 && !e.target.closest('#editor_sdk')) { + e.preventDefault(); + } + } + + gesturePreventHandler (e) { + e.preventDefault(); + } + componentDidMount () { - if ( $$('.skl-container').length ) + if ($$('.skl-container').length) { $$('.skl-container').remove(); + } + + + document.addEventListener('touchmove', this.touchMoveHandler); + + if (Device.ios) { + document.addEventListener('gesturestart', this.gesturePreventHandler); + document.addEventListener('gesturechange', this.gesturePreventHandler); + document.addEventListener('gestureend', this.gesturePreventHandler); + } + } + + componentWillUnmount() { + document.removeEventListener('touchmove', this.touchMoveHandler); + + if (Device.ios) { + document.removeEventListener('gesturestart', this.gesturePreventHandler); + document.removeEventListener('gesturechange', this.gesturePreventHandler); + document.removeEventListener('gestureend', this.gesturePreventHandler); + } } render() { diff --git a/apps/spreadsheeteditor/mobile/src/page/main.jsx b/apps/spreadsheeteditor/mobile/src/page/main.jsx index 44be2e5fa4..c6f917368e 100644 --- a/apps/spreadsheeteditor/mobile/src/page/main.jsx +++ b/apps/spreadsheeteditor/mobile/src/page/main.jsx @@ -108,9 +108,38 @@ class MainPage extends Component { } }; + touchMoveHandler (e) { + if (e.touches.length > 1 && !e.target.closest('#editor_sdk')) { + e.preventDefault(); + } + } + + gesturePreventHandler (e) { + e.preventDefault(); + } + componentDidMount () { - if($$('.skl-container').length) + if ($$('.skl-container').length) { $$('.skl-container').remove(); + } + + document.addEventListener('touchmove', this.touchMoveHandler); + + if (Device.ios) { + document.addEventListener('gesturestart', this.gesturePreventHandler); + document.addEventListener('gesturechange', this.gesturePreventHandler); + document.addEventListener('gestureend', this.gesturePreventHandler); + } + } + + componentWillUnmount() { + document.removeEventListener('touchmove', this.touchMoveHandler); + + if (Device.ios) { + document.removeEventListener('gesturestart', this.gesturePreventHandler); + document.removeEventListener('gesturechange', this.gesturePreventHandler); + document.removeEventListener('gestureend', this.gesturePreventHandler); + } } render() {