[DE mobile] Fix Bug 58655

This commit is contained in:
SergeyEzhin 2022-11-11 19:25:47 +04:00
parent 90c23f6370
commit 73df55f383
2 changed files with 34 additions and 36 deletions

View file

@ -16,39 +16,24 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeReview', 'sto
const stateDisplayMode = displayMode == "final" || displayMode == "original" ? true : false; const stateDisplayMode = displayMode == "final" || displayMode == "original" ? true : false;
const displayCollaboration = props.users.hasEditUsers || appOptions.canViewComments || appOptions.canReview || appOptions.canViewReview; const displayCollaboration = props.users.hasEditUsers || appOptions.canViewComments || appOptions.canReview || appOptions.canViewReview;
const readerMode = appOptions.readerMode; const readerMode = appOptions.readerMode;
const objectLocked = props.storeFocusObjects.objectLocked; const objectLocked = props.storeFocusObjects.objectLocked;
const storeToolbarSettings = props.storeToolbarSettings; const storeToolbarSettings = props.storeToolbarSettings;
const isCanUndo = storeToolbarSettings.isCanUndo; const isCanUndo = storeToolbarSettings.isCanUndo;
const isCanRedo = storeToolbarSettings.isCanRedo; const isCanRedo = storeToolbarSettings.isCanRedo;
const disabledControls = storeToolbarSettings.disabledControls; const disabledControls = storeToolbarSettings.disabledControls;
const disabledEditControls = storeToolbarSettings.disabledEditControls; const disabledEditControls = storeToolbarSettings.disabledEditControls;
const disabledSettings = storeToolbarSettings.disabledSettings; const disabledSettings = storeToolbarSettings.disabledSettings;
const showEditDocument = !appOptions.isEdit && appOptions.canEdit && appOptions.canRequestEditRights; const showEditDocument = !appOptions.isEdit && appOptions.canEdit && appOptions.canRequestEditRights;
const docInfo = props.storeDocumentInfo; const docInfo = props.storeDocumentInfo;
const docExt = docInfo.dataDoc ? docInfo.dataDoc.fileType : ''; const docExt = docInfo.dataDoc ? docInfo.dataDoc.fileType : '';
const docTitle = docInfo.dataDoc ? docInfo.dataDoc.title : ''; const docTitle = docInfo.dataDoc ? docInfo.dataDoc.title : '';
const sensitivity = 20;
let touchStartY = 0;
let touchEndY = 0;
useEffect(() => { useEffect(() => {
const sdk = document.querySelector('#editor_sdk');
Common.Gateway.on('init', loadConfig); Common.Gateway.on('init', loadConfig);
Common.Notifications.on('toolbar:activatecontrols', activateControls); Common.Notifications.on('toolbar:activatecontrols', activateControls);
Common.Notifications.on('toolbar:deactivateeditcontrols', deactivateEditControls); Common.Notifications.on('toolbar:deactivateeditcontrols', deactivateEditControls);
Common.Notifications.on('goback', goBack); Common.Notifications.on('goback', goBack);
if(isViewer) {
sdk.addEventListener('touchstart', handleTouchStart);
sdk.addEventListener('touchend', handleTouchEnd);
}
if (isDisconnected) { if (isDisconnected) {
f7.popover.close(); f7.popover.close();
f7.sheet.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:activatecontrols', activateControls);
Common.Notifications.off('toolbar:deactivateeditcontrols', deactivateEditControls); Common.Notifications.off('toolbar:deactivateeditcontrols', deactivateEditControls);
Common.Notifications.off('goback', goBack); Common.Notifications.off('goback', goBack);
}
}, []);
useEffect(() => {
const api = Common.EditorApi.get();
const onEngineCreated = api => {
if(isViewer) { if(isViewer) {
sdk.removeEventListener('touchstart', handleTouchStart); api.asc_registerCallback('onMobileScrollDelta', scrollHandler);
sdk.removeEventListener('touchend', handleTouchEnd);
} }
};
if (!api) {
Common.Notifications.on('engineCreated', onEngineCreated);
} else {
onEngineCreated(api);
} }
});
// Touch handlers return () => {
const api = Common.EditorApi.get();
const checkDirection = () => { if (api) api.asc_unregisterCallback('onMobileScrollDelta', scrollHandler);
const diff = touchStartY - touchEndY; Common.Notifications.off('engineCreated', onEngineCreated);
if(Math.abs(diff) > sensitivity) {
if(diff > 0) {
// f7.navbar.show('.main-navbar');
} else {
// f7.navbar.hide('.main-navbar');
}
} }
}; }, [isViewer]);
const handleTouchStart = e => { // Scroll handler
touchStartY = e.changedTouches[0].screenY;
};
const handleTouchEnd = e => { const scrollHandler = offset => {
touchEndY = e.changedTouches[0].screenY; const api = Common.EditorApi.get();
checkDirection(); 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 // Back button
const [isShowBack, setShowBack] = useState(appOptions.canBackToFolder); const [isShowBack, setShowBack] = useState(appOptions.canBackToFolder);

View file

@ -118,6 +118,8 @@ class MainPage extends Component {
appOptions.changeViewerMode(); appOptions.changeViewerMode();
api.asc_removeRestriction(Asc.c_oAscRestrictionType.View) api.asc_removeRestriction(Asc.c_oAscRestrictionType.View)
api.asc_addRestriction(Asc.c_oAscRestrictionType.None); api.asc_addRestriction(Asc.c_oAscRestrictionType.None);
f7.navbar.show('.main-navbar');
}; };
render() { render() {