diff --git a/src/ROUTES.js b/src/ROUTES.js index f3b856a469de..b91c0206b5b8 100644 --- a/src/ROUTES.js +++ b/src/ROUTES.js @@ -23,7 +23,8 @@ export default { SETTINGS: 'settings', SETTINGS_PROFILE: 'settings/profile', SETTINGS_PREFERENCES: 'settings/preferences', - SETTINGS_PASSWORD: 'settings/password', + SETTINGS_SECURITY: 'settings/security', + SETTINGS_PASSWORD: 'settings/security/password', SETTINGS_ABOUT: 'settings/about', SETTINGS_APP_DOWNLOAD_LINKS: 'settings/about/app-download-links', SETTINGS_PAYMENTS: 'settings/payments', diff --git a/src/languages/en.js b/src/languages/en.js index 85f944a7380d..e6d721d65023 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -271,9 +271,9 @@ export default { label: 'Desktop', }, }, + security: 'Security', signOut: 'Sign out', versionLetter: 'v', - changePassword: 'Change password', readTheTermsAndPrivacyPolicy: { phrase1: 'Read the', phrase2: 'terms of service', diff --git a/src/languages/es.js b/src/languages/es.js index db90ccfbec0c..5b38c49f869d 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -271,9 +271,9 @@ export default { label: 'Desktop', }, }, + security: 'Seguridad', signOut: 'Desconectar', versionLetter: 'v', - changePassword: 'Cambiar contraseña', readTheTermsAndPrivacyPolicy: { phrase1: 'Leer los', phrase2: 'términos de servicio', diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators.js b/src/libs/Navigation/AppNavigator/ModalStackNavigators.js index 4b998a632ee4..79ee7250f4c4 100644 --- a/src/libs/Navigation/AppNavigator/ModalStackNavigators.js +++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators.js @@ -16,6 +16,7 @@ import SettingsPreferencesPage from '../../../pages/settings/PreferencesPage'; import SettingsAboutPage from '../../../pages/settings/AboutPage'; import SettingsAppDownloadLinks from '../../../pages/settings/AppDownloadLinks'; import SettingsPasswordPage from '../../../pages/settings/PasswordPage'; +import SettingsSecurityPage from '../../../pages/settings/Security/SecuritySettingsPage'; import SettingsPaymentsPage from '../../../pages/settings/Payments/PaymentsPage'; import SettingsAddPayPalMePage from '../../../pages/settings/Payments/AddPayPalMePage'; import SettingsAddDebitCardPage from '../../../pages/settings/Payments/AddDebitCardPage'; @@ -162,6 +163,10 @@ const SettingsModalStackNavigator = createModalStackNavigator([ Component: SettingsPasswordPage, name: 'Settings_Password', }, + { + Component: SettingsSecurityPage, + name: 'Settings_Security', + }, { Component: SettingsAboutPage, name: 'Settings_About', diff --git a/src/libs/Navigation/linkingConfig.js b/src/libs/Navigation/linkingConfig.js index 4e89c80ec813..d408ae5ca57b 100644 --- a/src/libs/Navigation/linkingConfig.js +++ b/src/libs/Navigation/linkingConfig.js @@ -44,6 +44,10 @@ export default { path: ROUTES.SETTINGS_PASSWORD, exact: true, }, + Settings_Security: { + path: ROUTES.SETTINGS_SECURITY, + exact: true, + }, Settings_Payments: { path: ROUTES.SETTINGS_PAYMENTS, exact: true, diff --git a/src/pages/settings/InitialSettingsPage.js b/src/pages/settings/InitialSettingsPage.js index 2f1a859f910a..1463ad6e136a 100755 --- a/src/pages/settings/InitialSettingsPage.js +++ b/src/pages/settings/InitialSettingsPage.js @@ -99,9 +99,9 @@ const defaultMenuItems = [ action: () => { Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); }, }, { - translationKey: 'initialSettingsPage.changePassword', + translationKey: 'initialSettingsPage.security', icon: Expensicons.Lock, - action: () => { Navigation.navigate(ROUTES.SETTINGS_PASSWORD); }, + action: () => { Navigation.navigate(ROUTES.SETTINGS_SECURITY); }, }, { translationKey: 'common.payments', diff --git a/src/pages/settings/PasswordPage.js b/src/pages/settings/PasswordPage.js index 71928e4a91f3..8e9c1d161be1 100755 --- a/src/pages/settings/PasswordPage.js +++ b/src/pages/settings/PasswordPage.js @@ -166,7 +166,7 @@ class PasswordPage extends Component { Navigation.navigate(ROUTES.SETTINGS)} + onBackButtonPress={() => Navigation.navigate(ROUTES.SETTINGS_SECURITY)} onCloseButtonPress={() => Navigation.dismissModal(true)} /> diff --git a/src/pages/settings/Security/SecuritySettingsPage.js b/src/pages/settings/Security/SecuritySettingsPage.js new file mode 100644 index 000000000000..212c3a52783c --- /dev/null +++ b/src/pages/settings/Security/SecuritySettingsPage.js @@ -0,0 +1,63 @@ +import _ from 'underscore'; +import React from 'react'; +import {View, ScrollView} from 'react-native'; +import HeaderWithCloseButton from '../../../components/HeaderWithCloseButton'; +import Navigation from '../../../libs/Navigation/Navigation'; +import ROUTES from '../../../ROUTES'; +import styles from '../../../styles/styles'; +import * as Expensicons from '../../../components/Icon/Expensicons'; +import ScreenWrapper from '../../../components/ScreenWrapper'; +import withLocalize, {withLocalizePropTypes} from '../../../components/withLocalize'; +import MenuItem from '../../../components/MenuItem'; + +const propTypes = { + ...withLocalizePropTypes, +}; + +const SecuritySettingsPage = (props) => { + const menuItems = [ + { + translationKey: 'passwordPage.changePassword', + icon: Expensicons.Lock, + action: () => { + Navigation.navigate(ROUTES.SETTINGS_PASSWORD); + }, + }, + ]; + + return ( + + Navigation.navigate(ROUTES.SETTINGS)} + onCloseButtonPress={() => Navigation.dismissModal(true)} + /> + + + {_.map(menuItems, item => ( + item.action()} + shouldShowRightIcon + /> + ))} + + + + ); +}; + +SecuritySettingsPage.propTypes = propTypes; +SecuritySettingsPage.displayName = 'SettingSecurityPage'; + +export default withLocalize(SecuritySettingsPage);