diff --git a/assets/images/simple-illustrations/simple-illustration__lightbulb.svg b/assets/images/simple-illustrations/simple-illustration__lightbulb.svg
new file mode 100644
index 000000000000..1dc359764147
--- /dev/null
+++ b/assets/images/simple-illustrations/simple-illustration__lightbulb.svg
@@ -0,0 +1,33 @@
+
+
+
diff --git a/src/components/Icon/Illustrations.ts b/src/components/Icon/Illustrations.ts
index 9271c417ac33..b639b2efdd26 100644
--- a/src/components/Icon/Illustrations.ts
+++ b/src/components/Icon/Illustrations.ts
@@ -55,6 +55,7 @@ import HotDogStand from '@assets/images/simple-illustrations/simple-illustration
import Hourglass from '@assets/images/simple-illustrations/simple-illustration__hourglass.svg';
import House from '@assets/images/simple-illustrations/simple-illustration__house.svg';
import InvoiceBlue from '@assets/images/simple-illustrations/simple-illustration__invoice.svg';
+import Lightbulb from '@assets/images/simple-illustrations/simple-illustration__lightbulb.svg';
import LockClosed from '@assets/images/simple-illustrations/simple-illustration__lockclosed.svg';
import LockOpen from '@assets/images/simple-illustrations/simple-illustration__lockopen.svg';
import Luggage from '@assets/images/simple-illustrations/simple-illustration__luggage.svg';
@@ -172,4 +173,5 @@ export {
Pencil,
Tag,
CarIce,
+ Lightbulb,
};
diff --git a/src/components/Section/index.tsx b/src/components/Section/index.tsx
index 93a2e91639a6..848761c9e982 100644
--- a/src/components/Section/index.tsx
+++ b/src/components/Section/index.tsx
@@ -70,6 +70,9 @@ type SectionProps = ChildrenProps & {
/** Overlay content to display on top of animation */
overlayContent?: () => ReactNode;
+
+ /** The component to display in the title of the section */
+ renderSubtitle?: () => ReactNode;
};
function Section({
@@ -90,6 +93,7 @@ function Section({
illustrationBackgroundColor,
illustrationStyle,
overlayContent,
+ renderSubtitle,
}: SectionProps) {
const styles = useThemeStyles();
const theme = useTheme();
@@ -139,11 +143,15 @@ function Section({
)}
- {!!subtitle && (
-
- {subtitle}
-
- )}
+ {renderSubtitle
+ ? renderSubtitle?.()
+ : !!subtitle && (
+
+ {subtitle}
+
+ )}
{children}
diff --git a/src/components/TestToolMenu.tsx b/src/components/TestToolMenu.tsx
index 527b92d4d7dc..5efa9592034f 100644
--- a/src/components/TestToolMenu.tsx
+++ b/src/components/TestToolMenu.tsx
@@ -1,6 +1,7 @@
import React from 'react';
import type {OnyxEntry} from 'react-native-onyx';
import {withOnyx} from 'react-native-onyx';
+import useLocalize from '@hooks/useLocalize';
import useThemeStyles from '@hooks/useThemeStyles';
import * as ApiUtils from '@libs/ApiUtils';
import compose from '@libs/compose';
@@ -32,6 +33,7 @@ const USER_DEFAULT: UserOnyx = {shouldUseStagingServer: undefined, isSubscribedT
function TestToolMenu({user = USER_DEFAULT, network}: TestToolMenuProps) {
const shouldUseStagingServer = user?.shouldUseStagingServer ?? ApiUtils.isUsingStagingApi();
const styles = useThemeStyles();
+ const {translate} = useLocalize();
return (
<>
@@ -39,13 +41,13 @@ function TestToolMenu({user = USER_DEFAULT, network}: TestToolMenuProps) {
style={[styles.textLabelSupporting, styles.mb4]}
numberOfLines={1}
>
- Test Preferences
+ {translate('initialSettingsPage.troubleshoot.testingPreferences')}
{/* Option to switch between staging and default api endpoints.
This enables QA, internal testers and external devs to take advantage of sandbox environments for 3rd party services like Plaid and Onfido.
This toggle is not rendered for internal devs as they make environment changes directly to the .env file. */}
{!CONFIG.IS_USING_LOCAL_WEB && (
-
+
+
{/* When toggled all network requests will fail. */}
-
+
{/* Instantly invalidates a user's local authToken. Useful for testing flows related to reauthentication. */}
-
+
{/* Invalidate stored user auto-generated credentials. Useful for manually testing sign out logic. */}
-
+
diff --git a/src/languages/en.ts b/src/languages/en.ts
index 54a7be84829c..7fc9b0b0ad26 100755
--- a/src/languages/en.ts
+++ b/src/languages/en.ts
@@ -896,6 +896,14 @@ export default {
useProfiling: 'Use profiling',
profileTrace: 'Profile trace',
releaseOptions: 'Release options',
+ testingPreferences: 'Testing preferences',
+ useStagingServer: 'Use Staging Server',
+ forceOffline: 'Force offline',
+ simulatFailingNetworkRequests: 'Simulate failing network requests',
+ authenticationStatus: 'Authentication status',
+ deviceCredentials: 'Device credentials',
+ invalidate: 'Invalidate',
+ destroy: 'Destroy',
},
debugConsole: {
saveLog: 'Save log',
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 2a02340ad383..e86e1fc5f62d 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -889,11 +889,19 @@ export default {
submitBug: 'envíe un error',
confirmResetDescription: 'Todos los borradores no enviados se perderán, pero el resto de tus datos estarán a salvo.',
resetAndRefresh: 'Restablecer y actualizar',
- clientSideLogging: 'Logs del cliente',
+ clientSideLogging: 'Registro a nivel cliente',
noLogsToShare: 'No hay logs que compartir',
useProfiling: 'Usar el trazado',
profileTrace: 'Traza de ejecución',
releaseOptions: 'Opciones de publicación',
+ testingPreferences: 'Preferencias para Tests',
+ useStagingServer: 'Usar Servidor “Staging”',
+ forceOffline: 'Forzar desconexión',
+ simulatFailingNetworkRequests: 'Simular fallos en solicitudes de red',
+ authenticationStatus: 'Estado de autenticación',
+ deviceCredentials: 'Credenciales del dispositivo',
+ invalidate: 'Invalidar',
+ destroy: 'Destruir',
},
debugConsole: {
saveLog: 'Guardar registro',
diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx
index b28bee2629bd..7380bf102331 100644
--- a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx
+++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx
@@ -202,7 +202,6 @@ const SettingsModalStackNavigator = createModalStackNavigator require('../../../../pages/settings/Preferences/ThemePage').default as React.ComponentType,
[SCREENS.SETTINGS.CLOSE]: () => require('../../../../pages/settings/Security/CloseAccountPage').default as React.ComponentType,
[SCREENS.SETTINGS.APP_DOWNLOAD_LINKS]: () => require('../../../../pages/settings/AppDownloadLinks').default as React.ComponentType,
- [SCREENS.SETTINGS.TROUBLESHOOT]: () => require('../../../../pages/settings/AboutPage/TroubleshootPage').default as React.ComponentType,
[SCREENS.SETTINGS.CONSOLE]: () => require('../../../../pages/settings/AboutPage/ConsolePage').default as React.ComponentType,
[SCREENS.SETTINGS.SHARE_LOG]: () => require('../../../../pages/settings/AboutPage/ShareLogPage').default as React.ComponentType,
[SCREENS.SETTINGS.WALLET.CARDS_DIGITAL_DETAILS_UPDATE_ADDRESS]: () => require('../../../../pages/settings/Profile/PersonalDetails/AddressPage').default as React.ComponentType,
diff --git a/src/libs/Navigation/AppNavigator/Navigators/CentralPaneNavigator/BaseCentralPaneNavigator.tsx b/src/libs/Navigation/AppNavigator/Navigators/CentralPaneNavigator/BaseCentralPaneNavigator.tsx
index 2b63037a436f..1afad41a6063 100644
--- a/src/libs/Navigation/AppNavigator/Navigators/CentralPaneNavigator/BaseCentralPaneNavigator.tsx
+++ b/src/libs/Navigation/AppNavigator/Navigators/CentralPaneNavigator/BaseCentralPaneNavigator.tsx
@@ -20,6 +20,7 @@ const settingsScreens = {
[SCREENS.SETTINGS.PROFILE.ROOT]: () => require('../../../../../pages/settings/Profile/ProfilePage').default as React.ComponentType,
[SCREENS.SETTINGS.WALLET.ROOT]: () => require('../../../../../pages/settings/Wallet/WalletPage').default as React.ComponentType,
[SCREENS.SETTINGS.ABOUT]: () => require('../../../../../pages/settings/AboutPage/AboutPage').default as React.ComponentType,
+ [SCREENS.SETTINGS.TROUBLESHOOT]: () => require('../../../../../pages/settings/Troubleshoot/TroubleshootPage').default as React.ComponentType,
[SCREENS.SETTINGS.SAVE_THE_WORLD]: () => require('../../../../../pages/TeachersUnite/SaveTheWorldPage').default as React.ComponentType,
} satisfies Screens;
diff --git a/src/libs/Navigation/linkingConfig/CENTRAL_PANE_TO_RHP_MAPPING.ts b/src/libs/Navigation/linkingConfig/CENTRAL_PANE_TO_RHP_MAPPING.ts
index 95233bfed079..ffac214c154d 100755
--- a/src/libs/Navigation/linkingConfig/CENTRAL_PANE_TO_RHP_MAPPING.ts
+++ b/src/libs/Navigation/linkingConfig/CENTRAL_PANE_TO_RHP_MAPPING.ts
@@ -35,7 +35,8 @@ const CENTRAL_PANE_TO_RHP_MAPPING: Partial> =
SCREENS.SETTINGS.WALLET.CARDS_DIGITAL_DETAILS_UPDATE_ADDRESS,
],
[SCREENS.SETTINGS.SECURITY]: [SCREENS.SETTINGS.TWO_FACTOR_AUTH, SCREENS.SETTINGS.CLOSE],
- [SCREENS.SETTINGS.ABOUT]: [SCREENS.SETTINGS.APP_DOWNLOAD_LINKS, SCREENS.SETTINGS.TROUBLESHOOT],
+ [SCREENS.SETTINGS.ABOUT]: [SCREENS.SETTINGS.APP_DOWNLOAD_LINKS],
+ [SCREENS.SETTINGS.TROUBLESHOOT]: [SCREENS.SETTINGS.CONSOLE],
};
export default CENTRAL_PANE_TO_RHP_MAPPING;
diff --git a/src/libs/Navigation/linkingConfig/TAB_TO_CENTRAL_PANE_MAPPING.ts b/src/libs/Navigation/linkingConfig/TAB_TO_CENTRAL_PANE_MAPPING.ts
index 78a644ab4aee..a349a3425e29 100755
--- a/src/libs/Navigation/linkingConfig/TAB_TO_CENTRAL_PANE_MAPPING.ts
+++ b/src/libs/Navigation/linkingConfig/TAB_TO_CENTRAL_PANE_MAPPING.ts
@@ -10,6 +10,7 @@ const TAB_TO_CENTRAL_PANE_MAPPING: Record = {
SCREENS.SETTINGS.WALLET.ROOT,
SCREENS.SETTINGS.ABOUT,
SCREENS.SETTINGS.WORKSPACES,
+ SCREENS.SETTINGS.TROUBLESHOOT,
],
};
diff --git a/src/libs/Navigation/linkingConfig/config.ts b/src/libs/Navigation/linkingConfig/config.ts
index b592dfe10672..6165ccb16fa3 100644
--- a/src/libs/Navigation/linkingConfig/config.ts
+++ b/src/libs/Navigation/linkingConfig/config.ts
@@ -60,6 +60,10 @@ const config: LinkingOptions['config'] = {
path: ROUTES.SETTINGS_ABOUT,
exact: true,
},
+ [SCREENS.SETTINGS.TROUBLESHOOT]: {
+ path: ROUTES.SETTINGS_TROUBLESHOOT,
+ exact: true,
+ },
[SCREENS.SETTINGS.WORKSPACES]: ROUTES.SETTINGS_WORKSPACES,
[SCREENS.SETTINGS.SAVE_THE_WORLD]: ROUTES.SETTINGS_SAVE_THE_WORLD,
},
@@ -203,10 +207,6 @@ const config: LinkingOptions['config'] = {
path: ROUTES.SETTINGS_APP_DOWNLOAD_LINKS,
exact: true,
},
- [SCREENS.SETTINGS.TROUBLESHOOT]: {
- path: ROUTES.SETTINGS_TROUBLESHOOT,
- exact: true,
- },
[SCREENS.SETTINGS.CONSOLE]: {
path: ROUTES.SETTINGS_CONSOLE,
exact: true,
diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts
index c70671e48fde..09591cfd78db 100644
--- a/src/libs/Navigation/types.ts
+++ b/src/libs/Navigation/types.ts
@@ -59,6 +59,7 @@ type CentralPaneNavigatorParamList = {
[SCREENS.SETTINGS.SECURITY]: undefined;
[SCREENS.SETTINGS.WALLET.ROOT]: undefined;
[SCREENS.SETTINGS.ABOUT]: undefined;
+ [SCREENS.SETTINGS.TROUBLESHOOT]: undefined;
[SCREENS.SETTINGS.WORKSPACES]: undefined;
[SCREENS.SETTINGS.SAVE_THE_WORLD]: undefined;
};
@@ -104,6 +105,7 @@ type SettingsNavigatorParamList = {
[SCREENS.SETTINGS.CLOSE]: undefined;
[SCREENS.SETTINGS.SECURITY]: undefined;
[SCREENS.SETTINGS.ABOUT]: undefined;
+ [SCREENS.SETTINGS.TROUBLESHOOT]: undefined;
[SCREENS.SETTINGS.APP_DOWNLOAD_LINKS]: undefined;
[SCREENS.SETTINGS.TROUBLESHOOT]: undefined;
[SCREENS.SETTINGS.CONSOLE]: undefined;
diff --git a/src/pages/settings/AboutPage/AboutPage.tsx b/src/pages/settings/AboutPage/AboutPage.tsx
index 0c087b2c93d6..56336386c46b 100644
--- a/src/pages/settings/AboutPage/AboutPage.tsx
+++ b/src/pages/settings/AboutPage/AboutPage.tsx
@@ -87,11 +87,6 @@ function AboutPage() {
},
link: CONST.UPWORK_URL,
},
- {
- translationKey: 'initialSettingsPage.aboutPage.troubleshoot',
- icon: Expensicons.Lightbulb,
- action: waitForNavigate(() => Navigation.navigate(ROUTES.SETTINGS_TROUBLESHOOT)),
- },
{
translationKey: 'initialSettingsPage.aboutPage.reportABug',
icon: Expensicons.Bug,
diff --git a/src/pages/settings/AboutPage/TroubleshootPage.tsx b/src/pages/settings/AboutPage/TroubleshootPage.tsx
deleted file mode 100644
index 5d4d85a68d24..000000000000
--- a/src/pages/settings/AboutPage/TroubleshootPage.tsx
+++ /dev/null
@@ -1,134 +0,0 @@
-import React, {useMemo, useState} from 'react';
-import {View} from 'react-native';
-import Onyx, {withOnyx} from 'react-native-onyx';
-import type {OnyxEntry} from 'react-native-onyx';
-import type {SvgProps} from 'react-native-svg';
-import ClientSideLoggingToolMenu from '@components/ClientSideLoggingToolMenu';
-import ConfirmModal from '@components/ConfirmModal';
-import * as Expensicons from '@components/Icon/Expensicons';
-import IllustratedHeaderPageLayout from '@components/IllustratedHeaderPageLayout';
-import LottieAnimations from '@components/LottieAnimations';
-import MenuItemList from '@components/MenuItemList';
-import TestToolMenu from '@components/TestToolMenu';
-import Text from '@components/Text';
-import TextLink from '@components/TextLink';
-import useEnvironment from '@hooks/useEnvironment';
-import useLocalize from '@hooks/useLocalize';
-import useTheme from '@hooks/useTheme';
-import useThemeStyles from '@hooks/useThemeStyles';
-import useWaitForNavigation from '@hooks/useWaitForNavigation';
-import Navigation from '@libs/Navigation/Navigation';
-import * as App from '@userActions/App';
-import * as Report from '@userActions/Report';
-import type {TranslationPaths} from '@src/languages/types';
-import ONYXKEYS from '@src/ONYXKEYS';
-import ROUTES from '@src/ROUTES';
-import SCREENS from '@src/SCREENS';
-
-type BaseMenuItem = {
- translationKey: TranslationPaths;
- icon: React.FC;
- action: () => void | Promise;
-};
-
-type TroubleshootPageOnyxProps = {
- shouldStoreLogs: OnyxEntry;
-};
-
-type TroubleshootPageProps = TroubleshootPageOnyxProps;
-
-function TroubleshootPage({shouldStoreLogs}: TroubleshootPageProps) {
- const {translate} = useLocalize();
- const theme = useTheme();
- const styles = useThemeStyles();
- const {isProduction} = useEnvironment();
- const [isConfirmationModalVisible, setIsConfirmationModalVisible] = useState(false);
- const waitForNavigate = useWaitForNavigation();
-
- const menuItems = useMemo(() => {
- const debugConsoleItem: BaseMenuItem = {
- translationKey: 'initialSettingsPage.troubleshoot.viewConsole',
- icon: Expensicons.Gear,
- action: waitForNavigate(() => Navigation.navigate(ROUTES.SETTINGS_CONSOLE)),
- };
-
- const baseMenuItems: BaseMenuItem[] = [
- {
- translationKey: 'initialSettingsPage.troubleshoot.clearCacheAndRestart',
- icon: Expensicons.RotateLeft,
- action: () => setIsConfirmationModalVisible(true),
- },
- ];
-
- if (shouldStoreLogs) {
- baseMenuItems.push(debugConsoleItem);
- }
-
- return baseMenuItems
- .map((item) => ({
- key: item.translationKey,
- title: translate(item.translationKey),
- icon: item.icon,
- onPress: item.action,
- }))
- .reverse();
- }, [shouldStoreLogs, translate, waitForNavigate]);
-
- return (
- Navigation.goBack()}
- backgroundColor={theme.PAGE_THEMES[SCREENS.SETTINGS.TROUBLESHOOT].backgroundColor}
- illustration={LottieAnimations.Desk}
- testID={TroubleshootPage.displayName}
- >
-
- {translate('initialSettingsPage.aboutPage.troubleshoot')}
-
- {translate('initialSettingsPage.troubleshoot.description')}{' '}
- Report.navigateToConciergeChat()}
- >
- {translate('initialSettingsPage.troubleshoot.submitBug')}
-
-
-
-
-
-
-
- {/* Enable additional test features in non-production environments */}
- {!isProduction && (
-
-
-
- )}
- {
- setIsConfirmationModalVisible(false);
- Onyx.clear(App.KEYS_TO_PRESERVE).then(() => {
- App.openApp();
- });
- }}
- onCancel={() => setIsConfirmationModalVisible(false)}
- prompt={translate('initialSettingsPage.troubleshoot.confirmResetDescription')}
- confirmText={translate('initialSettingsPage.troubleshoot.resetAndRefresh')}
- cancelText={translate('common.cancel')}
- />
-
- );
-}
-
-TroubleshootPage.displayName = 'TroubleshootPage';
-
-export default withOnyx({
- shouldStoreLogs: {
- key: ONYXKEYS.SHOULD_STORE_LOGS,
- },
-})(TroubleshootPage);
diff --git a/src/pages/settings/InitialSettingsPage.tsx b/src/pages/settings/InitialSettingsPage.tsx
index a307f6cf6a7f..3be671446fb3 100755
--- a/src/pages/settings/InitialSettingsPage.tsx
+++ b/src/pages/settings/InitialSettingsPage.tsx
@@ -250,6 +250,11 @@ function InitialSettingsPage({session, userWallet, bankAccountList, fundList, wa
icon: Expensicons.Info,
routeName: ROUTES.SETTINGS_ABOUT,
},
+ {
+ translationKey: 'initialSettingsPage.aboutPage.troubleshoot',
+ icon: Expensicons.Lightbulb,
+ routeName: ROUTES.SETTINGS_TROUBLESHOOT,
+ },
{
translationKey: 'sidebarScreen.saveTheWorld',
icon: Expensicons.Heart,
diff --git a/src/pages/settings/Troubleshoot/TroubleshootPage.tsx b/src/pages/settings/Troubleshoot/TroubleshootPage.tsx
new file mode 100644
index 000000000000..b2523a4e039c
--- /dev/null
+++ b/src/pages/settings/Troubleshoot/TroubleshootPage.tsx
@@ -0,0 +1,161 @@
+import React, {useMemo, useState} from 'react';
+import {View} from 'react-native';
+import Onyx, {withOnyx} from 'react-native-onyx';
+import type {OnyxEntry} from 'react-native-onyx';
+import type {SvgProps} from 'react-native-svg';
+import ClientSideLoggingToolMenu from '@components/ClientSideLoggingToolMenu';
+import ConfirmModal from '@components/ConfirmModal';
+import HeaderWithBackButton from '@components/HeaderWithBackButton';
+import * as Expensicons from '@components/Icon/Expensicons';
+import * as Illustrations from '@components/Icon/Illustrations';
+import LottieAnimations from '@components/LottieAnimations';
+import MenuItemList from '@components/MenuItemList';
+import ScreenWrapper from '@components/ScreenWrapper';
+import ScrollView from '@components/ScrollView';
+import Section from '@components/Section';
+import TestToolMenu from '@components/TestToolMenu';
+import Text from '@components/Text';
+import TextLink from '@components/TextLink';
+import useEnvironment from '@hooks/useEnvironment';
+import useLocalize from '@hooks/useLocalize';
+import useTheme from '@hooks/useTheme';
+import useThemeStyles from '@hooks/useThemeStyles';
+import useWaitForNavigation from '@hooks/useWaitForNavigation';
+import useWindowDimensions from '@hooks/useWindowDimensions';
+import Navigation from '@libs/Navigation/Navigation';
+import * as App from '@userActions/App';
+import * as Report from '@userActions/Report';
+import type {TranslationPaths} from '@src/languages/types';
+import ONYXKEYS from '@src/ONYXKEYS';
+import ROUTES from '@src/ROUTES';
+import SCREENS from '@src/SCREENS';
+
+type BaseMenuItem = {
+ translationKey: TranslationPaths;
+ icon: React.FC;
+ action: () => void | Promise;
+};
+
+type TroubleshootPageOnyxProps = {
+ shouldStoreLogs: OnyxEntry;
+};
+
+type TroubleshootPageProps = TroubleshootPageOnyxProps;
+
+function TroubleshootPage({shouldStoreLogs}: TroubleshootPageProps) {
+ const {translate} = useLocalize();
+ const theme = useTheme();
+ const styles = useThemeStyles();
+ const {isProduction} = useEnvironment();
+ const [isConfirmationModalVisible, setIsConfirmationModalVisible] = useState(false);
+ const waitForNavigate = useWaitForNavigation();
+ const {isSmallScreenWidth} = useWindowDimensions();
+
+ const menuItems = useMemo(() => {
+ const debugConsoleItem: BaseMenuItem = {
+ translationKey: 'initialSettingsPage.troubleshoot.viewConsole',
+ icon: Expensicons.Gear,
+ action: waitForNavigate(() => Navigation.navigate(ROUTES.SETTINGS_CONSOLE)),
+ };
+
+ const baseMenuItems: BaseMenuItem[] = [
+ {
+ translationKey: 'initialSettingsPage.troubleshoot.clearCacheAndRestart',
+ icon: Expensicons.RotateLeft,
+ action: () => setIsConfirmationModalVisible(true),
+ },
+ ];
+
+ if (shouldStoreLogs) {
+ baseMenuItems.push(debugConsoleItem);
+ }
+
+ return baseMenuItems
+ .map((item) => ({
+ key: item.translationKey,
+ title: translate(item.translationKey),
+ icon: item.icon,
+ onPress: item.action,
+ wrapperStyle: [styles.sectionMenuItemTopDescription],
+ }))
+ .reverse();
+ }, [shouldStoreLogs, translate, waitForNavigate, styles.sectionMenuItemTopDescription]);
+
+ return (
+
+ Navigation.goBack(ROUTES.SETTINGS)}
+ icon={Illustrations.Lightbulb}
+ />
+
+
+ (
+
+ {translate('initialSettingsPage.troubleshoot.description')}{' '}
+ Report.navigateToConciergeChat()}
+ >
+ {translate('initialSettingsPage.troubleshoot.submitBug')}
+
+ .
+
+ )}
+ >
+
+
+
+
+
+ {!isProduction && (
+
+
+
+ )}
+ {
+ setIsConfirmationModalVisible(false);
+ Onyx.clear(App.KEYS_TO_PRESERVE).then(() => {
+ App.openApp();
+ });
+ }}
+ onCancel={() => setIsConfirmationModalVisible(false)}
+ prompt={translate('initialSettingsPage.troubleshoot.confirmResetDescription')}
+ confirmText={translate('initialSettingsPage.troubleshoot.resetAndRefresh')}
+ cancelText={translate('common.cancel')}
+ />
+
+
+
+
+
+ );
+}
+
+TroubleshootPage.displayName = 'TroubleshootPage';
+
+export default withOnyx({
+ shouldStoreLogs: {
+ key: ONYXKEYS.SHOULD_STORE_LOGS,
+ },
+})(TroubleshootPage);
diff --git a/src/styles/utils/spacing.ts b/src/styles/utils/spacing.ts
index 242d66a383f0..4584a38e8171 100644
--- a/src/styles/utils/spacing.ts
+++ b/src/styles/utils/spacing.ts
@@ -335,6 +335,10 @@ export default {
marginBottom: -12,
},
+ mbn4: {
+ marginBottom: -16,
+ },
+
mbn5: {
marginBottom: -20,
},