From 5505fb3f476511affcc41665d00348e4e6b8cf64 Mon Sep 17 00:00:00 2001
From: SergeyEzhin <ezhin@mail.ru>
Date: Fri, 2 Sep 2022 15:16:02 +0300
Subject: [PATCH] [DE mobile] Fix Bug 58759

---
 .../mobile/src/controller/Toolbar.jsx              |  1 -
 .../mobile/src/controller/settings/Settings.jsx    | 14 +++++---------
 apps/documenteditor/mobile/src/view/Toolbar.jsx    | 10 ++++++----
 .../mobile/src/view/settings/Settings.jsx          |  9 +++++----
 4 files changed, 16 insertions(+), 18 deletions(-)

diff --git a/apps/documenteditor/mobile/src/controller/Toolbar.jsx b/apps/documenteditor/mobile/src/controller/Toolbar.jsx
index 633b318bf..69056e834 100644
--- a/apps/documenteditor/mobile/src/controller/Toolbar.jsx
+++ b/apps/documenteditor/mobile/src/controller/Toolbar.jsx
@@ -168,7 +168,6 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeReview', 'sto
                      onEditDocument={onEditDocument}
                      isDisconnected={isDisconnected}
                      isViewer={isViewer}
-                     // turnOffViewerMode={turnOffViewerMode}
                      turnOnViewerMode={turnOnViewerMode}
                      isMobileView={isMobileView}
                      changeMobileView={changeMobileView}
diff --git a/apps/documenteditor/mobile/src/controller/settings/Settings.jsx b/apps/documenteditor/mobile/src/controller/settings/Settings.jsx
index 556638d85..809bd1e28 100644
--- a/apps/documenteditor/mobile/src/controller/settings/Settings.jsx
+++ b/apps/documenteditor/mobile/src/controller/settings/Settings.jsx
@@ -82,19 +82,15 @@ const Settings = props => {
         }, 0);
     };
 
-    const onChangeMobileView = async () => {
+    const onChangeMobileView = () => {
         const api = Common.EditorApi.get();
         const appOptions = props.storeAppOptions;
         const isMobileView = appOptions.isMobileView;
 
-        await LocalStorage.setBool('mobile-view', !isMobileView);
-        await appOptions.changeMobileView();
-        await api.ChangeReaderMode();
-
-        if(Device.phone) {
-            await closeModal();
-        }
-    }
+        LocalStorage.setBool('mobile-view', !isMobileView);
+        appOptions.changeMobileView();
+        api.ChangeReaderMode();
+    };
 
     return <SettingsView usePopover={!Device.phone}
                          openOptions={props.openOptions}
diff --git a/apps/documenteditor/mobile/src/view/Toolbar.jsx b/apps/documenteditor/mobile/src/view/Toolbar.jsx
index 208b99cb4..a4f4f557a 100644
--- a/apps/documenteditor/mobile/src/view/Toolbar.jsx
+++ b/apps/documenteditor/mobile/src/view/Toolbar.jsx
@@ -46,12 +46,14 @@ const ToolbarView = props => {
                     onUndoClick: props.onUndo,
                     onRedoClick: props.onRedo
                 })}
-                {(isViewer || !Device.phone) && isAvailableExt && <Link className={props.disabledControls ? 'disabled' : ''} icon={isMobileView ? 'icon-standard-view' : 'icon-mobile-view'} href={false} onClick={() => {
-                    props.changeMobileView();
-                    props.openOptions('snackbar');
+                {(isViewer || !Device.phone) && isAvailableExt && <Link className={props.disabledControls ? 'disabled' : ''} icon={isMobileView ? 'icon-standard-view' : 'icon-mobile-view'} href={false} onClick={async e => {
+                    e.target.closest('.link').classList.add('disabled');
+                    await props.changeMobileView();
+                    await props.openOptions('snackbar');
                     setTimeout(() => {
                         props.closeOptions('snackbar');
-                    },  500);
+                        e.target.closest('.link').classList.remove('disabled');
+                    },  1500);
                 }}></Link>}
                 {(props.showEditDocument && !isViewer) &&
                     <Link className={props.disabledControls ? 'disabled' : ''} icon='icon-edit' href={false} onClick={props.onEditDocument}></Link>
diff --git a/apps/documenteditor/mobile/src/view/settings/Settings.jsx b/apps/documenteditor/mobile/src/view/settings/Settings.jsx
index c26dfa79d..ec29f58c0 100644
--- a/apps/documenteditor/mobile/src/view/settings/Settings.jsx
+++ b/apps/documenteditor/mobile/src/view/settings/Settings.jsx
@@ -163,12 +163,13 @@ const SettingsList = inject("storeAppOptions", "storeReview")(observer(props =>
                     {!isViewer && Device.phone &&
                         <ListItem title={t('Settings.textMobileView')}>
                             <Icon slot="media" icon="icon-mobile-view"></Icon>
-                            <Toggle checked={isMobileView} onToggleChange={() => {
-                                props.onChangeMobileView();
-                                props.openOptions('snackbar');
+                            <Toggle checked={isMobileView} onToggleChange={async () => {
+                                await props.onChangeMobileView();
+                                await closeModal();
+                                await props.openOptions('snackbar');
                                 setTimeout(() => {
                                     props.closeOptions('snackbar');
-                                },  1000);
+                                },  1500);
                             }} />
                         </ListItem>
                     }