From 73df55f383bb67457afc48e65f104c0fdfa3fd14 Mon Sep 17 00:00:00 2001 From: SergeyEzhin Date: Fri, 11 Nov 2022 19:25:47 +0400 Subject: [PATCH] [DE mobile] Fix Bug 58655 --- .../mobile/src/controller/Toolbar.jsx | 68 +++++++++---------- apps/documenteditor/mobile/src/page/main.jsx | 2 + 2 files changed, 34 insertions(+), 36 deletions(-) diff --git a/apps/documenteditor/mobile/src/controller/Toolbar.jsx b/apps/documenteditor/mobile/src/controller/Toolbar.jsx index e896757d8..98565f426 100644 --- a/apps/documenteditor/mobile/src/controller/Toolbar.jsx +++ b/apps/documenteditor/mobile/src/controller/Toolbar.jsx @@ -16,39 +16,24 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeReview', 'sto const stateDisplayMode = displayMode == "final" || displayMode == "original" ? true : false; const displayCollaboration = props.users.hasEditUsers || appOptions.canViewComments || appOptions.canReview || appOptions.canViewReview; const readerMode = appOptions.readerMode; - const objectLocked = props.storeFocusObjects.objectLocked; - const storeToolbarSettings = props.storeToolbarSettings; const isCanUndo = storeToolbarSettings.isCanUndo; const isCanRedo = storeToolbarSettings.isCanRedo; const disabledControls = storeToolbarSettings.disabledControls; const disabledEditControls = storeToolbarSettings.disabledEditControls; const disabledSettings = storeToolbarSettings.disabledSettings; - const showEditDocument = !appOptions.isEdit && appOptions.canEdit && appOptions.canRequestEditRights; - const docInfo = props.storeDocumentInfo; const docExt = docInfo.dataDoc ? docInfo.dataDoc.fileType : ''; const docTitle = docInfo.dataDoc ? docInfo.dataDoc.title : ''; - const sensitivity = 20; - let touchStartY = 0; - let touchEndY = 0; - useEffect(() => { - const sdk = document.querySelector('#editor_sdk'); - Common.Gateway.on('init', loadConfig); Common.Notifications.on('toolbar:activatecontrols', activateControls); Common.Notifications.on('toolbar:deactivateeditcontrols', deactivateEditControls); Common.Notifications.on('goback', goBack); - if(isViewer) { - sdk.addEventListener('touchstart', handleTouchStart); - sdk.addEventListener('touchend', handleTouchEnd); - } - if (isDisconnected) { f7.popover.close(); f7.sheet.close(); @@ -59,36 +44,47 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeReview', 'sto Common.Notifications.off('toolbar:activatecontrols', activateControls); Common.Notifications.off('toolbar:deactivateeditcontrols', deactivateEditControls); Common.Notifications.off('goback', goBack); + } + }, []); + useEffect(() => { + const api = Common.EditorApi.get(); + const onEngineCreated = api => { if(isViewer) { - sdk.removeEventListener('touchstart', handleTouchStart); - sdk.removeEventListener('touchend', handleTouchEnd); + api.asc_registerCallback('onMobileScrollDelta', scrollHandler); } + }; + + if (!api) { + Common.Notifications.on('engineCreated', onEngineCreated); + } else { + onEngineCreated(api); } - }); - // Touch handlers + return () => { + const api = Common.EditorApi.get(); - const checkDirection = () => { - const diff = touchStartY - touchEndY; - - if(Math.abs(diff) > sensitivity) { - if(diff > 0) { - // f7.navbar.show('.main-navbar'); - } else { - // f7.navbar.hide('.main-navbar'); - } + if (api) api.asc_unregisterCallback('onMobileScrollDelta', scrollHandler); + Common.Notifications.off('engineCreated', onEngineCreated); } - }; + }, [isViewer]); - const handleTouchStart = e => { - touchStartY = e.changedTouches[0].screenY; - }; + // Scroll handler - const handleTouchEnd = e => { - touchEndY = e.changedTouches[0].screenY; - checkDirection(); - }; + const scrollHandler = offset => { + const api = Common.EditorApi.get(); + const navbarBgHeight = document.querySelector('.navbar-bg').clientHeight; + const subnavbarHeight = document.querySelector('.subnavbar').clientHeight; + const navbarHeight = navbarBgHeight + subnavbarHeight; + + if(offset > navbarHeight) { + f7.navbar.hide('.main-navbar'); + api.SetMobileTopOffset(undefined, 0); + } else { + f7.navbar.show('.main-navbar'); + api.SetMobileTopOffset(undefined, navbarHeight); + } + } // Back button const [isShowBack, setShowBack] = useState(appOptions.canBackToFolder); diff --git a/apps/documenteditor/mobile/src/page/main.jsx b/apps/documenteditor/mobile/src/page/main.jsx index 3a48f88e1..b9f28198d 100644 --- a/apps/documenteditor/mobile/src/page/main.jsx +++ b/apps/documenteditor/mobile/src/page/main.jsx @@ -118,6 +118,8 @@ class MainPage extends Component { appOptions.changeViewerMode(); api.asc_removeRestriction(Asc.c_oAscRestrictionType.View) api.asc_addRestriction(Asc.c_oAscRestrictionType.None); + + f7.navbar.show('.main-navbar'); }; render() {