From 5e3f36def2832f181298b18cca8ef6f00da9d87e Mon Sep 17 00:00:00 2001 From: Bernhard Owen Josephus Date: Tue, 29 Oct 2024 21:18:18 +0800 Subject: [PATCH 1/2] only close active modal if the debug modal will be shown --- src/libs/Navigation/AppNavigator/AuthScreens.tsx | 2 +- src/libs/actions/TestTool.ts | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/libs/Navigation/AppNavigator/AuthScreens.tsx b/src/libs/Navigation/AppNavigator/AuthScreens.tsx index 3d4d9295cd6b..5b851b721366 100644 --- a/src/libs/Navigation/AppNavigator/AuthScreens.tsx +++ b/src/libs/Navigation/AppNavigator/AuthScreens.tsx @@ -382,7 +382,7 @@ function AuthScreens({session, lastOpenedPublicRoomID, initialLastUpdateIDApplie const unsubscribeDebugShortcut = KeyboardShortcut.subscribe( debugShortcutConfig.shortcutKey, - () => Modal.close(toggleTestToolsModal), + () => toggleTestToolsModal(), debugShortcutConfig.descriptionKey, debugShortcutConfig.modifiers, true, diff --git a/src/libs/actions/TestTool.ts b/src/libs/actions/TestTool.ts index dc7b371bfe12..dee0ae30354d 100644 --- a/src/libs/actions/TestTool.ts +++ b/src/libs/actions/TestTool.ts @@ -1,5 +1,6 @@ import throttle from 'lodash/throttle'; import Onyx from 'react-native-onyx'; +import * as Modal from '@userActions/Modal'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -14,7 +15,13 @@ Onyx.connect({ * Throttle the toggle to make the modal stay open if you accidentally tap an extra time, which is easy to do. */ function toggleTestToolsModal() { - const toggle = () => Onyx.set(ONYXKEYS.IS_TEST_TOOLS_MODAL_OPEN, !isTestToolsModalOpen); + const toggle = () => { + if (!isTestToolsModalOpen) { + Modal.close(() => Onyx.set(ONYXKEYS.IS_TEST_TOOLS_MODAL_OPEN, !isTestToolsModalOpen)); + return; + } + Onyx.set(ONYXKEYS.IS_TEST_TOOLS_MODAL_OPEN, !isTestToolsModalOpen); + }; const throttledToggle = throttle(toggle, CONST.TIMING.TEST_TOOLS_MODAL_THROTTLE_TIME); throttledToggle(); } From 35d7811359883bd48a31413ec626cf9a3bbcc950 Mon Sep 17 00:00:00 2001 From: Bernhard Owen Josephus Date: Tue, 29 Oct 2024 21:37:35 +0800 Subject: [PATCH 2/2] lint --- src/libs/actions/TestTool.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/libs/actions/TestTool.ts b/src/libs/actions/TestTool.ts index dee0ae30354d..eb686a6d265c 100644 --- a/src/libs/actions/TestTool.ts +++ b/src/libs/actions/TestTool.ts @@ -1,8 +1,8 @@ import throttle from 'lodash/throttle'; import Onyx from 'react-native-onyx'; -import * as Modal from '@userActions/Modal'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; +import * as Modal from './Modal'; let isTestToolsModalOpen = false; Onyx.connect({ @@ -16,11 +16,14 @@ Onyx.connect({ */ function toggleTestToolsModal() { const toggle = () => { + const toggleIsTestToolsModalOpen = () => { + Onyx.set(ONYXKEYS.IS_TEST_TOOLS_MODAL_OPEN, !isTestToolsModalOpen); + }; if (!isTestToolsModalOpen) { - Modal.close(() => Onyx.set(ONYXKEYS.IS_TEST_TOOLS_MODAL_OPEN, !isTestToolsModalOpen)); + Modal.close(toggleIsTestToolsModalOpen); return; } - Onyx.set(ONYXKEYS.IS_TEST_TOOLS_MODAL_OPEN, !isTestToolsModalOpen); + toggleIsTestToolsModalOpen(); }; const throttledToggle = throttle(toggle, CONST.TIMING.TEST_TOOLS_MODAL_THROTTLE_TIME); throttledToggle();