From 54f3c9aeb7682e9331d27737b7603ee1f72b7f9c Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Wed, 25 Jan 2023 14:53:07 +0200 Subject: [PATCH 01/40] Use MenuItemWithTopDescription for priority mode. --- src/pages/settings/PreferencesPage.js | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/pages/settings/PreferencesPage.js b/src/pages/settings/PreferencesPage.js index ee4a39ddc404..9c770c79aa34 100755 --- a/src/pages/settings/PreferencesPage.js +++ b/src/pages/settings/PreferencesPage.js @@ -21,6 +21,7 @@ import compose from '../../libs/compose'; import Picker from '../../components/Picker'; import withEnvironment, {environmentPropTypes} from '../../components/withEnvironment'; import TestToolMenu from '../../components/TestToolMenu'; +import MenuItemWithTopDescription from '../../components/MenuItemWithTopDescription'; const propTypes = { /** The chat priority mode */ @@ -69,7 +70,7 @@ const PreferencesPage = (props) => { {props.translate('common.notifications')} - + {props.translate('preferencesPage.receiveRelevantFeatureUpdatesAndExpensifyNews')} @@ -83,13 +84,11 @@ const PreferencesPage = (props) => { - User.updateChatPriorityMode(mode) - } - items={_.values(priorityModes)} - value={props.priorityMode} + Navigation.navigate(detail.pageRoute)} /> From 09a2e5989a52837d971f5cf8a04083e873646262 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Wed, 25 Jan 2023 14:54:00 +0200 Subject: [PATCH 02/40] Remove priority mode description --- src/pages/settings/PreferencesPage.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/pages/settings/PreferencesPage.js b/src/pages/settings/PreferencesPage.js index 9c770c79aa34..57874f2e2499 100755 --- a/src/pages/settings/PreferencesPage.js +++ b/src/pages/settings/PreferencesPage.js @@ -18,7 +18,6 @@ import ScreenWrapper from '../../components/ScreenWrapper'; import Switch from '../../components/Switch'; import withLocalize, {withLocalizePropTypes} from '../../components/withLocalize'; import compose from '../../libs/compose'; -import Picker from '../../components/Picker'; import withEnvironment, {environmentPropTypes} from '../../components/withEnvironment'; import TestToolMenu from '../../components/TestToolMenu'; import MenuItemWithTopDescription from '../../components/MenuItemWithTopDescription'; @@ -91,9 +90,6 @@ const PreferencesPage = (props) => { // onPress={() => Navigation.navigate(detail.pageRoute)} /> - - {priorityModes[props.priorityMode].description} - From 6fe6acd47407a0c1ca9bbd2ff1cb58ea7900451d Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Wed, 25 Jan 2023 15:13:49 +0200 Subject: [PATCH 03/40] Adjust spacing to the new design. --- src/pages/settings/PreferencesPage.js | 18 +++++++++++------- src/styles/utilities/spacing.js | 4 ++++ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/pages/settings/PreferencesPage.js b/src/pages/settings/PreferencesPage.js index 57874f2e2499..d15299b77fe9 100755 --- a/src/pages/settings/PreferencesPage.js +++ b/src/pages/settings/PreferencesPage.js @@ -57,19 +57,19 @@ const PreferencesPage = (props) => { }; return ( - + Navigation.navigate(ROUTES.SETTINGS)} onCloseButtonPress={() => Navigation.dismissModal(true)} /> - - - + + + {props.translate('common.notifications')} - + {props.translate('preferencesPage.receiveRelevantFeatureUpdatesAndExpensifyNews')} @@ -94,8 +94,12 @@ const PreferencesPage = (props) => { - {/* If we are in the staging environment then we enable additional test features */} - {_.contains([CONST.ENVIRONMENT.STAGING, CONST.ENVIRONMENT.DEV], props.environment) && } + {/* If we are in the staging environment then we enable additional test features */ + _.contains([CONST.ENVIRONMENT.STAGING, CONST.ENVIRONMENT.DEV], props.environment) + && + + + } diff --git a/src/styles/utilities/spacing.js b/src/styles/utilities/spacing.js index fc7405a54a63..bc3410ee1bbe 100644 --- a/src/styles/utilities/spacing.js +++ b/src/styles/utilities/spacing.js @@ -89,6 +89,10 @@ export default { marginRight: 20, }, + mr8: { + marginRight: 32, + }, + mrn5: { marginRight: -20, }, From 66eab569527dce3591ff9ca4485a9be3c27fce07 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Wed, 25 Jan 2023 18:27:15 +0200 Subject: [PATCH 04/40] Add Language as menu item --- src/pages/settings/PreferencesPage.js | 36 +++++++++++++++++++-------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/src/pages/settings/PreferencesPage.js b/src/pages/settings/PreferencesPage.js index d15299b77fe9..6d55de7d60a6 100755 --- a/src/pages/settings/PreferencesPage.js +++ b/src/pages/settings/PreferencesPage.js @@ -55,6 +55,16 @@ const PreferencesPage = (props) => { description: props.translate('preferencesPage.focusModeDescription'), }, }; + const localesToLanguages = { + en: { + value: 'en', + label: props.translate('preferencesPage.languages.english'), + }, + es: { + value: 'es', + label: props.translate('preferencesPage.languages.spanish'), + }, + }; return ( @@ -82,17 +92,18 @@ const PreferencesPage = (props) => { /> - - Navigation.navigate(detail.pageRoute)} - /> - - - - + Navigation.navigate(ROUTES.SETTINGS_PRIORITY_MODES)} + /> + Navigation.navigate(detail.pageRoute)} + /> {/* If we are in the staging environment then we enable additional test features */ _.contains([CONST.ENVIRONMENT.STAGING, CONST.ENVIRONMENT.DEV], props.environment) @@ -117,6 +128,9 @@ export default compose( priorityMode: { key: ONYXKEYS.NVP_PRIORITY_MODE, }, + preferredLocale: { + key: ONYXKEYS.NVP_PREFERRED_LOCALE, + }, user: { key: ONYXKEYS.USER, }, From 67bc438797c50ac31548c4b11c89d54be9eba13b Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Wed, 25 Jan 2023 18:31:39 +0200 Subject: [PATCH 05/40] Create Priority Modes page. --- src/ROUTES.js | 1 + .../Navigation/AppNavigator/ModalStackNavigators.js | 7 +++++++ src/libs/Navigation/linkingConfig.js | 4 ++++ src/pages/settings/Preferences/PriorityModesPage.js | 13 +++++++++++++ src/pages/settings/PreferencesPage.js | 2 +- 5 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/pages/settings/Preferences/PriorityModesPage.js diff --git a/src/ROUTES.js b/src/ROUTES.js index 470ea9d99eb7..3895a8e4cd76 100644 --- a/src/ROUTES.js +++ b/src/ROUTES.js @@ -27,6 +27,7 @@ export default { SETTINGS_TIMEZONE_SELECT: 'settings/profile/timezone/select', SETTINGS_PRONOUNS: 'settings/profile/pronouns', SETTINGS_PREFERENCES: 'settings/preferences', + SETTINGS_PRIORITY_MODES: 'settings/preferences/priority-modes', SETTINGS_WORKSPACES: 'settings/workspaces', SETTINGS_SECURITY: 'settings/security', SETTINGS_CLOSE: 'settings/security/closeAccount', diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators.js b/src/libs/Navigation/AppNavigator/ModalStackNavigators.js index e95581674fab..bb658309f32b 100644 --- a/src/libs/Navigation/AppNavigator/ModalStackNavigators.js +++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators.js @@ -259,6 +259,13 @@ const SettingsModalStackNavigator = createModalStackNavigator([ }, name: 'Settings_Preferences', }, + { + getComponent: () => { + const SettingsPreferencesPriorityModesPage = require('../../../pages/settings/Preferences/PriorityModesPage').default; + return SettingsPreferencesPriorityModesPage; + }, + name: 'Settings_Preferences_PriorityModes', + }, { getComponent: () => { const SettingsPasswordPage = require('../../../pages/settings/PasswordPage').default; diff --git a/src/libs/Navigation/linkingConfig.js b/src/libs/Navigation/linkingConfig.js index e9bbeb987d25..0d9bb7771fd8 100644 --- a/src/libs/Navigation/linkingConfig.js +++ b/src/libs/Navigation/linkingConfig.js @@ -44,6 +44,10 @@ export default { path: ROUTES.SETTINGS_PREFERENCES, exact: true, }, + Settings_Preferences_PriorityModes: { + path: ROUTES.SETTINGS_PRIORITY_MODES, + exact: true, + }, Settings_Close: { path: ROUTES.SETTINGS_CLOSE, exact: true, diff --git a/src/pages/settings/Preferences/PriorityModesPage.js b/src/pages/settings/Preferences/PriorityModesPage.js new file mode 100644 index 000000000000..0539de33790e --- /dev/null +++ b/src/pages/settings/Preferences/PriorityModesPage.js @@ -0,0 +1,13 @@ +import React, { Component } from "react"; +import ScreenWrapper from "../../../components/ScreenWrapper"; + +class PriorityModesPage extends Component { + + render() { + return + {'This is a text'} + ; + } +} + +export default PriorityModesPage; \ No newline at end of file diff --git a/src/pages/settings/PreferencesPage.js b/src/pages/settings/PreferencesPage.js index 6d55de7d60a6..8e9ab551bdb2 100755 --- a/src/pages/settings/PreferencesPage.js +++ b/src/pages/settings/PreferencesPage.js @@ -67,7 +67,7 @@ const PreferencesPage = (props) => { }; return ( - + Date: Wed, 25 Jan 2023 18:39:28 +0200 Subject: [PATCH 06/40] Add priority modes page header --- .../settings/Preferences/PriorityModesPage.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/pages/settings/Preferences/PriorityModesPage.js b/src/pages/settings/Preferences/PriorityModesPage.js index 0539de33790e..111dcdef2913 100644 --- a/src/pages/settings/Preferences/PriorityModesPage.js +++ b/src/pages/settings/Preferences/PriorityModesPage.js @@ -1,13 +1,28 @@ import React, { Component } from "react"; +import HeaderWithCloseButton from "../../../components/HeaderWithCloseButton"; import ScreenWrapper from "../../../components/ScreenWrapper"; +import withLocalize, {withLocalizePropTypes} from "../../../components/withLocalize"; +import Navigation from "../../../libs/Navigation/Navigation"; +import ROUTES from "../../../ROUTES"; + +const propTypes = { + ...withLocalizePropTypes, +}; class PriorityModesPage extends Component { render() { return - {'This is a text'} + Navigation.navigate(ROUTES.SETTINGS_PREFERENCES)} + onCloseButtonPress={() => Navigation.dismissModal(true)} + /> ; } } -export default PriorityModesPage; \ No newline at end of file +PriorityModesPage.propTypes = propTypes; + +export default withLocalize(PriorityModesPage); \ No newline at end of file From 735f4bdba5033224ef4f3eaa8025a000a23d9615 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Wed, 25 Jan 2023 21:25:40 +0200 Subject: [PATCH 07/40] Add options list in Priority Modes page --- .../settings/Preferences/PriorityModesPage.js | 36 +++++++++++++++---- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/src/pages/settings/Preferences/PriorityModesPage.js b/src/pages/settings/Preferences/PriorityModesPage.js index 111dcdef2913..f72444853ec7 100644 --- a/src/pages/settings/Preferences/PriorityModesPage.js +++ b/src/pages/settings/Preferences/PriorityModesPage.js @@ -4,23 +4,47 @@ import ScreenWrapper from "../../../components/ScreenWrapper"; import withLocalize, {withLocalizePropTypes} from "../../../components/withLocalize"; import Navigation from "../../../libs/Navigation/Navigation"; import ROUTES from "../../../ROUTES"; +import CONST from '../../../CONST'; +import OptionsList from "../../../components/OptionsList"; +import styles from "../../../styles/styles"; const propTypes = { ...withLocalizePropTypes, }; -class PriorityModesPage extends Component { +const PriorityModesPage = (props) => { - render() { - return + const priorityModes = [ + { + value: CONST.PRIORITY_MODE.DEFAULT, + text: props.translate('preferencesPage.mostRecent'), + keyForList: 'default', + description: props.translate('preferencesPage.mostRecentModeDescription'), + }, + { + value: CONST.PRIORITY_MODE.GSD, + text: props.translate('preferencesPage.focus'), + keyForList: 'gsd', + description: props.translate('preferencesPage.focusModeDescription'), + }, + ]; + + return ( Navigation.navigate(ROUTES.SETTINGS_PREFERENCES)} onCloseButtonPress={() => Navigation.dismissModal(true)} /> - ; - } + updatePronouns(option.value)} + hideSectionHeaders + optionHoveredStyle={styles.hoveredComponentBG} + shouldHaveOptionSeparator + contentContainerStyles={[styles.ph5]} + /> + ); } PriorityModesPage.propTypes = propTypes; From 25a72d49cf37db24c8f4e5d432f46101bca6b6bc Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Wed, 25 Jan 2023 22:16:26 +0200 Subject: [PATCH 08/40] Add explainer text in Priority Modes page --- src/languages/en.js | 3 ++ src/languages/es.js | 3 ++ .../settings/Preferences/PriorityModesPage.js | 40 ++++++++++--------- 3 files changed, 28 insertions(+), 18 deletions(-) diff --git a/src/languages/en.js b/src/languages/en.js index 98f254b2321a..e87e9619bf5f 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -500,6 +500,9 @@ export default { spanish: 'Spanish', }, }, + priorityModesPage: { + explainerText: 'Choose whether to show all chats by default sorted with most recent with pinned items at the top, or #focus on unread pinned items, sorted alphabetically.', + }, signInPage: { expensifyDotCash: 'New Expensify', theCode: 'the code', diff --git a/src/languages/es.js b/src/languages/es.js index eeb46d702bd5..fae746304be4 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -500,6 +500,9 @@ export default { spanish: 'Español', }, }, + priorityModesPage: { + explainerText: 'Elija si desea mostrar todos los chats de forma predeterminada ordenados con los más recientes con elementos anclados en la parte superior, o #centrarse en los elementos anclados no leídos, ordenados alfabéticamente.', + }, signInPage: { expensifyDotCash: 'Nuevo Expensify', theCode: 'el código', diff --git a/src/pages/settings/Preferences/PriorityModesPage.js b/src/pages/settings/Preferences/PriorityModesPage.js index f72444853ec7..68d7002fc141 100644 --- a/src/pages/settings/Preferences/PriorityModesPage.js +++ b/src/pages/settings/Preferences/PriorityModesPage.js @@ -1,12 +1,13 @@ -import React, { Component } from "react"; +import React from "react"; import HeaderWithCloseButton from "../../../components/HeaderWithCloseButton"; import ScreenWrapper from "../../../components/ScreenWrapper"; -import withLocalize, {withLocalizePropTypes} from "../../../components/withLocalize"; +import withLocalize, { withLocalizePropTypes } from "../../../components/withLocalize"; import Navigation from "../../../libs/Navigation/Navigation"; import ROUTES from "../../../ROUTES"; import CONST from '../../../CONST'; import OptionsList from "../../../components/OptionsList"; import styles from "../../../styles/styles"; +import Text from "../../../components/Text"; const propTypes = { ...withLocalizePropTypes, @@ -29,22 +30,25 @@ const PriorityModesPage = (props) => { }, ]; - return ( - Navigation.navigate(ROUTES.SETTINGS_PREFERENCES)} - onCloseButtonPress={() => Navigation.dismissModal(true)} - /> - updatePronouns(option.value)} - hideSectionHeaders - optionHoveredStyle={styles.hoveredComponentBG} - shouldHaveOptionSeparator - contentContainerStyles={[styles.ph5]} - /> - ); + return ( + Navigation.navigate(ROUTES.SETTINGS_PREFERENCES)} + onCloseButtonPress={() => Navigation.dismissModal(true)} + /> + + {props.translate('priorityModesPage.explainerText')} + + updatePronouns(option.value)} + hideSectionHeaders + optionHoveredStyle={styles.hoveredComponentBG} + shouldHaveOptionSeparator + contentContainerStyles={[styles.ph5]} + /> + ); } PriorityModesPage.propTypes = propTypes; From 276b7123206da70fb83978df225f71749e730864 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Wed, 25 Jan 2023 22:43:27 +0200 Subject: [PATCH 09/40] Add priority mode selection --- .../settings/Preferences/PriorityModesPage.js | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/src/pages/settings/Preferences/PriorityModesPage.js b/src/pages/settings/Preferences/PriorityModesPage.js index 68d7002fc141..074ece60fa93 100644 --- a/src/pages/settings/Preferences/PriorityModesPage.js +++ b/src/pages/settings/Preferences/PriorityModesPage.js @@ -8,6 +8,13 @@ import CONST from '../../../CONST'; import OptionsList from "../../../components/OptionsList"; import styles from "../../../styles/styles"; import Text from "../../../components/Text"; +import themeColors from '../../../styles/themes/default'; +import * as Expensicons from '../../../components/Icon/Expensicons'; +import { compose } from "underscore"; +import { withOnyx } from "react-native-onyx"; +import ONYXKEYS from "../../../ONYXKEYS"; + +const greenCheckmark = {src: Expensicons.Checkmark, color: themeColors.success}; const propTypes = { ...withLocalizePropTypes, @@ -19,16 +26,24 @@ const PriorityModesPage = (props) => { { value: CONST.PRIORITY_MODE.DEFAULT, text: props.translate('preferencesPage.mostRecent'), - keyForList: 'default', description: props.translate('preferencesPage.mostRecentModeDescription'), }, { value: CONST.PRIORITY_MODE.GSD, text: props.translate('preferencesPage.focus'), - keyForList: 'gsd', description: props.translate('preferencesPage.focusModeDescription'), }, - ]; + ].map(mode => { + return { + ...mode, + + // Include the green checkmark icon to indicate the currently selected value + customIcon: props.priorityMode === mode.value ? greenCheckmark : undefined, + + // This property will make the currently selected value have bold text + boldStyle: props.priorityMode === mode.value, + } + }); return ( { PriorityModesPage.propTypes = propTypes; -export default withLocalize(PriorityModesPage); \ No newline at end of file +export default compose( + withLocalize, + withOnyx({ + priorityMode: { + key: ONYXKEYS.NVP_PRIORITY_MODE, + }, + }), +)(PriorityModesPage); \ No newline at end of file From 7260c2ede00b8d81ffc6114876a27b54c72e4ce8 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Wed, 25 Jan 2023 22:59:45 +0200 Subject: [PATCH 10/40] Change priority mode selection --- src/pages/settings/Preferences/PriorityModesPage.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/pages/settings/Preferences/PriorityModesPage.js b/src/pages/settings/Preferences/PriorityModesPage.js index 074ece60fa93..32f590cce721 100644 --- a/src/pages/settings/Preferences/PriorityModesPage.js +++ b/src/pages/settings/Preferences/PriorityModesPage.js @@ -13,6 +13,7 @@ import * as Expensicons from '../../../components/Icon/Expensicons'; import { compose } from "underscore"; import { withOnyx } from "react-native-onyx"; import ONYXKEYS from "../../../ONYXKEYS"; +import * as User from '../../../libs/actions/User'; const greenCheckmark = {src: Expensicons.Checkmark, color: themeColors.success}; @@ -57,7 +58,10 @@ const PriorityModesPage = (props) => { updatePronouns(option.value)} + onSelectRow={mode => { + User.updateChatPriorityMode(mode.value); + Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); + }} hideSectionHeaders optionHoveredStyle={styles.hoveredComponentBG} shouldHaveOptionSeparator From d5b574275aeba05b7e7d6bca323b26df0dbb4dc6 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Thu, 26 Jan 2023 15:03:39 +0200 Subject: [PATCH 11/40] Move PreferencesPage to Preferences package --- src/languages/en.js | 10 ++--- src/languages/es.js | 10 ++--- .../AppNavigator/ModalStackNavigators.js | 2 +- .../{ => Preferences}/PreferencesPage.js | 40 +++++++++---------- .../settings/Preferences/PriorityModesPage.js | 11 ++--- 5 files changed, 36 insertions(+), 37 deletions(-) rename src/pages/settings/{ => Preferences}/PreferencesPage.js (76%) diff --git a/src/languages/en.js b/src/languages/en.js index e87e9619bf5f..e61b3eeddb36 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -488,12 +488,7 @@ export default { defaultPaymentMethod: 'Default', }, preferencesPage: { - mostRecent: 'Most recent', - mostRecentModeDescription: 'This will display all chats by default, sorted by most recent, with pinned items at the top.', - focus: '#focus', - focusModeDescription: '#focus – This will only display unread and pinned chats, all sorted alphabetically.', receiveRelevantFeatureUpdatesAndExpensifyNews: 'Receive relevant feature updates and Expensify news', - priorityMode: 'Priority mode', language: 'Language', languages: { english: 'English', @@ -501,7 +496,12 @@ export default { }, }, priorityModesPage: { + priorityMode: 'Priority mode', explainerText: 'Choose whether to show all chats by default sorted with most recent with pinned items at the top, or #focus on unread pinned items, sorted alphabetically.', + mostRecent: 'Most recent', + mostRecentModeDescription: 'This will display all chats by default, sorted by most recent, with pinned items at the top.', + focus: '#focus', + focusModeDescription: '#focus – This will only display unread and pinned chats, all sorted alphabetically.', }, signInPage: { expensifyDotCash: 'New Expensify', diff --git a/src/languages/es.js b/src/languages/es.js index fae746304be4..e8fac3b0f78a 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -488,12 +488,7 @@ export default { defaultPaymentMethod: 'Predeterminado', }, preferencesPage: { - mostRecent: 'Más recientes', - mostRecentModeDescription: 'Esta opción muestra por defecto todos los chats, ordenados a partir del más reciente, con los chats destacados arriba de todo.', - focus: '#concentración', - focusModeDescription: '#concentración – Muestra sólo los chats no leídos y destacados ordenados alfabéticamente.', receiveRelevantFeatureUpdatesAndExpensifyNews: 'Recibir noticias sobre Expensify y actualizaciones del producto', - priorityMode: 'Modo prioridad', language: 'Idioma', languages: { english: 'Inglés', @@ -501,7 +496,12 @@ export default { }, }, priorityModesPage: { + priorityMode: 'Modo prioridad', explainerText: 'Elija si desea mostrar todos los chats de forma predeterminada ordenados con los más recientes con elementos anclados en la parte superior, o #centrarse en los elementos anclados no leídos, ordenados alfabéticamente.', + mostRecent: 'Más recientes', + mostRecentModeDescription: 'Esta opción muestra por defecto todos los chats, ordenados a partir del más reciente, con los chats destacados arriba de todo.', + focus: '#concentración', + focusModeDescription: '#concentración – Muestra sólo los chats no leídos y destacados ordenados alfabéticamente.', }, signInPage: { expensifyDotCash: 'Nuevo Expensify', diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators.js b/src/libs/Navigation/AppNavigator/ModalStackNavigators.js index bb658309f32b..9e7531a1e133 100644 --- a/src/libs/Navigation/AppNavigator/ModalStackNavigators.js +++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators.js @@ -254,7 +254,7 @@ const SettingsModalStackNavigator = createModalStackNavigator([ }, { getComponent: () => { - const SettingsPreferencesPage = require('../../../pages/settings/PreferencesPage').default; + const SettingsPreferencesPage = require('../../../pages/settings/Preferences/PreferencesPage').default; return SettingsPreferencesPage; }, name: 'Settings_Preferences', diff --git a/src/pages/settings/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js similarity index 76% rename from src/pages/settings/PreferencesPage.js rename to src/pages/settings/Preferences/PreferencesPage.js index 8e9ab551bdb2..1f70aea9b219 100755 --- a/src/pages/settings/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -5,22 +5,22 @@ import {View, ScrollView} from 'react-native'; import {withOnyx} from 'react-native-onyx'; import PropTypes from 'prop-types'; -import HeaderWithCloseButton from '../../components/HeaderWithCloseButton'; -import LocalePicker from '../../components/LocalePicker'; -import Navigation from '../../libs/Navigation/Navigation'; -import ROUTES from '../../ROUTES'; -import ONYXKEYS from '../../ONYXKEYS'; -import styles from '../../styles/styles'; -import Text from '../../components/Text'; -import CONST from '../../CONST'; -import * as User from '../../libs/actions/User'; -import ScreenWrapper from '../../components/ScreenWrapper'; -import Switch from '../../components/Switch'; -import withLocalize, {withLocalizePropTypes} from '../../components/withLocalize'; -import compose from '../../libs/compose'; -import withEnvironment, {environmentPropTypes} from '../../components/withEnvironment'; -import TestToolMenu from '../../components/TestToolMenu'; -import MenuItemWithTopDescription from '../../components/MenuItemWithTopDescription'; +import HeaderWithCloseButton from '../../../components/HeaderWithCloseButton'; +import LocalePicker from '../../../components/LocalePicker'; +import Navigation from '../../../libs/Navigation/Navigation'; +import ROUTES from '../../../ROUTES'; +import ONYXKEYS from '../../../ONYXKEYS'; +import styles from '../../../styles/styles'; +import Text from '../../../components/Text'; +import CONST from '../../../CONST'; +import * as User from '../../../libs/actions/User'; +import ScreenWrapper from '../../../components/ScreenWrapper'; +import Switch from '../../../components/Switch'; +import withLocalize, {withLocalizePropTypes} from '../../../components/withLocalize'; +import compose from '../../../libs/compose'; +import withEnvironment, {environmentPropTypes} from '../../../components/withEnvironment'; +import TestToolMenu from '../../../components/TestToolMenu'; +import MenuItemWithTopDescription from '../../../components/MenuItemWithTopDescription'; const propTypes = { /** The chat priority mode */ @@ -46,13 +46,11 @@ const PreferencesPage = (props) => { const priorityModes = { default: { value: CONST.PRIORITY_MODE.DEFAULT, - label: props.translate('preferencesPage.mostRecent'), - description: props.translate('preferencesPage.mostRecentModeDescription'), + label: props.translate('priorityModesPage.mostRecent'), }, gsd: { value: CONST.PRIORITY_MODE.GSD, - label: props.translate('preferencesPage.focus'), - description: props.translate('preferencesPage.focusModeDescription'), + label: props.translate('priorityModesPage.focus'), }, }; const localesToLanguages = { @@ -95,7 +93,7 @@ const PreferencesPage = (props) => { Navigation.navigate(ROUTES.SETTINGS_PRIORITY_MODES)} /> { const priorityModes = [ { value: CONST.PRIORITY_MODE.DEFAULT, - text: props.translate('preferencesPage.mostRecent'), - description: props.translate('preferencesPage.mostRecentModeDescription'), + text: props.translate('priorityModesPage.mostRecent'), + description: props.translate('priorityModesPage.mostRecentModeDescription'), }, { value: CONST.PRIORITY_MODE.GSD, - text: props.translate('preferencesPage.focus'), - description: props.translate('preferencesPage.focusModeDescription'), + text: props.translate('priorityModesPage.focus'), + description: props.translate('priorityModesPage.focusModeDescription'), }, ].map(mode => { return { ...mode, + keyForList: mode.value, // Include the green checkmark icon to indicate the currently selected value customIcon: props.priorityMode === mode.value ? greenCheckmark : undefined, @@ -48,7 +49,7 @@ const PriorityModesPage = (props) => { return ( Navigation.navigate(ROUTES.SETTINGS_PREFERENCES)} onCloseButtonPress={() => Navigation.dismissModal(true)} From 15f905f6886eedc69976c17fdb95c8b1dec42f7d Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Thu, 26 Jan 2023 15:32:02 +0200 Subject: [PATCH 12/40] Create languages page --- src/ROUTES.js | 1 + .../AppNavigator/ModalStackNavigators.js | 7 ++++ src/libs/Navigation/linkingConfig.js | 4 +++ .../settings/Preferences/LanguagesPage.js | 36 +++++++++++++++++++ .../settings/Preferences/PreferencesPage.js | 3 +- 5 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 src/pages/settings/Preferences/LanguagesPage.js diff --git a/src/ROUTES.js b/src/ROUTES.js index 3895a8e4cd76..df9fbdf8d56e 100644 --- a/src/ROUTES.js +++ b/src/ROUTES.js @@ -28,6 +28,7 @@ export default { SETTINGS_PRONOUNS: 'settings/profile/pronouns', SETTINGS_PREFERENCES: 'settings/preferences', SETTINGS_PRIORITY_MODES: 'settings/preferences/priority-modes', + SETTINGS_LANGUAGES: 'settings/preferences/languages', SETTINGS_WORKSPACES: 'settings/workspaces', SETTINGS_SECURITY: 'settings/security', SETTINGS_CLOSE: 'settings/security/closeAccount', diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators.js b/src/libs/Navigation/AppNavigator/ModalStackNavigators.js index 9e7531a1e133..307e83012f5b 100644 --- a/src/libs/Navigation/AppNavigator/ModalStackNavigators.js +++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators.js @@ -266,6 +266,13 @@ const SettingsModalStackNavigator = createModalStackNavigator([ }, name: 'Settings_Preferences_PriorityModes', }, + { + getComponent: () => { + const SettingsPreferencesLanguagesPage = require('../../../pages/settings/Preferences/LanguagesPage').default; + return SettingsPreferencesLanguagesPage; + }, + name: 'Settings_Preferences_Languages', + }, { getComponent: () => { const SettingsPasswordPage = require('../../../pages/settings/PasswordPage').default; diff --git a/src/libs/Navigation/linkingConfig.js b/src/libs/Navigation/linkingConfig.js index 0d9bb7771fd8..6c8d3c0f6dbf 100644 --- a/src/libs/Navigation/linkingConfig.js +++ b/src/libs/Navigation/linkingConfig.js @@ -48,6 +48,10 @@ export default { path: ROUTES.SETTINGS_PRIORITY_MODES, exact: true, }, + Settings_Preferences_Languages: { + path: ROUTES.SETTINGS_LANGUAGES, + exact: true, + }, Settings_Close: { path: ROUTES.SETTINGS_CLOSE, exact: true, diff --git a/src/pages/settings/Preferences/LanguagesPage.js b/src/pages/settings/Preferences/LanguagesPage.js new file mode 100644 index 000000000000..f547a83a3772 --- /dev/null +++ b/src/pages/settings/Preferences/LanguagesPage.js @@ -0,0 +1,36 @@ +import React from "react"; +import HeaderWithCloseButton from "../../../components/HeaderWithCloseButton"; +import ScreenWrapper from "../../../components/ScreenWrapper"; +import withLocalize, { withLocalizePropTypes } from "../../../components/withLocalize"; +import Navigation from "../../../libs/Navigation/Navigation"; +import ROUTES from "../../../ROUTES"; +import { compose } from "underscore"; +import { withOnyx } from "react-native-onyx"; +import ONYXKEYS from "../../../ONYXKEYS"; + +const propTypes = { + ...withLocalizePropTypes, +}; + +const LanguagesPage = (props) => { + + return ( + Navigation.navigate(ROUTES.SETTINGS_PREFERENCES)} + onCloseButtonPress={() => Navigation.dismissModal(true)} + /> + ); +} + +LanguagesPage.propTypes = propTypes; + +export default compose( + withLocalize, + withOnyx({ + preferredLocale: { + key: ONYXKEYS.NVP_PREFERRED_LOCALE, + }, + }), +)(LanguagesPage); \ No newline at end of file diff --git a/src/pages/settings/Preferences/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js index 1f70aea9b219..904e0cf0fdfe 100755 --- a/src/pages/settings/Preferences/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -6,7 +6,6 @@ import {withOnyx} from 'react-native-onyx'; import PropTypes from 'prop-types'; import HeaderWithCloseButton from '../../../components/HeaderWithCloseButton'; -import LocalePicker from '../../../components/LocalePicker'; import Navigation from '../../../libs/Navigation/Navigation'; import ROUTES from '../../../ROUTES'; import ONYXKEYS from '../../../ONYXKEYS'; @@ -100,7 +99,7 @@ const PreferencesPage = (props) => { shouldShowRightIcon title={localesToLanguages[props.preferredLocale].label} description={props.translate('preferencesPage.language')} - // onPress={() => Navigation.navigate(detail.pageRoute)} + onPress={() => Navigation.navigate(ROUTES.SETTINGS_LANGUAGES)} /> {/* If we are in the staging environment then we enable additional test features */ From 3868463eeeb13151d689f757890d77f2be332d81 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Thu, 26 Jan 2023 15:36:39 +0200 Subject: [PATCH 13/40] Organize strings about language --- src/components/LocalePicker.js | 6 +++--- src/languages/en.js | 12 +++++++----- src/languages/es.js | 12 +++++++----- src/pages/settings/Preferences/LanguagesPage.js | 2 +- src/pages/settings/Preferences/PreferencesPage.js | 6 +++--- 5 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/components/LocalePicker.js b/src/components/LocalePicker.js index aafb06ea6fd2..85d8a8268010 100644 --- a/src/components/LocalePicker.js +++ b/src/components/LocalePicker.js @@ -33,11 +33,11 @@ const defaultProps = { const localesToLanguages = { default: { value: 'en', - label: Localize.translate('en', 'preferencesPage.languages.english'), + label: Localize.translate('en', 'languagesPage.languages.english'), }, es: { value: 'es', - label: Localize.translate('es', 'preferencesPage.languages.spanish'), + label: Localize.translate('es', 'languagesPage.languages.spanish'), }, }; @@ -48,7 +48,7 @@ const LocalePicker = (props) => { return ( { if (locale === props.preferredLocale) { return; diff --git a/src/languages/en.js b/src/languages/en.js index e61b3eeddb36..f5043fc8bc6e 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -489,11 +489,6 @@ export default { }, preferencesPage: { receiveRelevantFeatureUpdatesAndExpensifyNews: 'Receive relevant feature updates and Expensify news', - language: 'Language', - languages: { - english: 'English', - spanish: 'Spanish', - }, }, priorityModesPage: { priorityMode: 'Priority mode', @@ -503,6 +498,13 @@ export default { focus: '#focus', focusModeDescription: '#focus – This will only display unread and pinned chats, all sorted alphabetically.', }, + languagesPage: { + language: 'Language', + languages: { + english: 'English', + spanish: 'Spanish', + }, + }, signInPage: { expensifyDotCash: 'New Expensify', theCode: 'the code', diff --git a/src/languages/es.js b/src/languages/es.js index e8fac3b0f78a..91d7ea224e3b 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -489,11 +489,6 @@ export default { }, preferencesPage: { receiveRelevantFeatureUpdatesAndExpensifyNews: 'Recibir noticias sobre Expensify y actualizaciones del producto', - language: 'Idioma', - languages: { - english: 'Inglés', - spanish: 'Español', - }, }, priorityModesPage: { priorityMode: 'Modo prioridad', @@ -503,6 +498,13 @@ export default { focus: '#concentración', focusModeDescription: '#concentración – Muestra sólo los chats no leídos y destacados ordenados alfabéticamente.', }, + languagesPage: { + language: 'Idioma', + languages: { + english: 'Inglés', + spanish: 'Español', + }, + }, signInPage: { expensifyDotCash: 'Nuevo Expensify', theCode: 'el código', diff --git a/src/pages/settings/Preferences/LanguagesPage.js b/src/pages/settings/Preferences/LanguagesPage.js index f547a83a3772..050f30694512 100644 --- a/src/pages/settings/Preferences/LanguagesPage.js +++ b/src/pages/settings/Preferences/LanguagesPage.js @@ -16,7 +16,7 @@ const LanguagesPage = (props) => { return ( Navigation.navigate(ROUTES.SETTINGS_PREFERENCES)} onCloseButtonPress={() => Navigation.dismissModal(true)} diff --git a/src/pages/settings/Preferences/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js index 904e0cf0fdfe..8e89f6af8d63 100755 --- a/src/pages/settings/Preferences/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -55,11 +55,11 @@ const PreferencesPage = (props) => { const localesToLanguages = { en: { value: 'en', - label: props.translate('preferencesPage.languages.english'), + label: props.translate('languagesPage.languages.english'), }, es: { value: 'es', - label: props.translate('preferencesPage.languages.spanish'), + label: props.translate('languagesPage.languages.spanish'), }, }; @@ -98,7 +98,7 @@ const PreferencesPage = (props) => { Navigation.navigate(ROUTES.SETTINGS_LANGUAGES)} /> From 8e59473d45d7afbf838294fec12a0bc0aa1cae6e Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Thu, 26 Jan 2023 15:59:01 +0200 Subject: [PATCH 14/40] Add languages in LanguagesPage and integrate language change --- .../settings/Preferences/LanguagesPage.js | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/pages/settings/Preferences/LanguagesPage.js b/src/pages/settings/Preferences/LanguagesPage.js index 050f30694512..450866e312a0 100644 --- a/src/pages/settings/Preferences/LanguagesPage.js +++ b/src/pages/settings/Preferences/LanguagesPage.js @@ -7,6 +7,13 @@ import ROUTES from "../../../ROUTES"; import { compose } from "underscore"; import { withOnyx } from "react-native-onyx"; import ONYXKEYS from "../../../ONYXKEYS"; +import OptionsList from "../../../components/OptionsList"; +import styles from "../../../styles/styles"; +import themeColors from '../../../styles/themes/default'; +import * as Expensicons from '../../../components/Icon/Expensicons'; +import * as App from '../../../libs/actions/App'; + +const greenCheckmark = {src: Expensicons.Checkmark, color: themeColors.success}; const propTypes = { ...withLocalizePropTypes, @@ -14,6 +21,28 @@ const propTypes = { const LanguagesPage = (props) => { + const localesToLanguages = [ + { + value: 'en', + text: props.translate('languagesPage.languages.english'), + }, + { + value: 'es', + text: props.translate('languagesPage.languages.spanish'), + }, + ].map(language => { + return { + ...language, + keyForList: language.value, + + // Include the green checkmark icon to indicate the currently selected value + customIcon: props.preferredLocale === language.value ? greenCheckmark : undefined, + + // This property will make the currently selected value have bold text + boldStyle: props.preferredLocale === language.value, + } + }); + return ( { onBackButtonPress={() => Navigation.navigate(ROUTES.SETTINGS_PREFERENCES)} onCloseButtonPress={() => Navigation.dismissModal(true)} /> + { + if (language.value === props.preferredLocale) { + return; + } + App.setLocale(language.value); + Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); + }} + hideSectionHeaders + optionHoveredStyle={styles.hoveredComponentBG} + shouldHaveOptionSeparator + contentContainerStyles={[styles.ph5]} + /> ); } From 495871984493275182cd747a2391317edb203cc1 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Thu, 26 Jan 2023 21:03:18 +0200 Subject: [PATCH 15/40] Properly align priority modes and languages in the option list. --- src/components/OptionRow.js | 6 +++++- src/components/OptionsList/BaseOptionsList.js | 1 + src/components/OptionsList/optionsListPropTypes.js | 4 ++++ src/pages/settings/Preferences/LanguagesPage.js | 3 ++- src/pages/settings/Preferences/PriorityModesPage.js | 3 ++- 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/components/OptionRow.js b/src/components/OptionRow.js index e25b0b807b16..11177397ebe9 100644 --- a/src/components/OptionRow.js +++ b/src/components/OptionRow.js @@ -57,6 +57,9 @@ const propTypes = { /** Whether to show a line separating options in list */ shouldHaveOptionSeparator: PropTypes.bool, + /** Whether to disable the inner padding */ + disableInnerPadding: PropTypes.bool, + style: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]), ...withLocalizePropTypes, @@ -73,6 +76,7 @@ const defaultProps = { optionIsFocused: false, style: null, shouldHaveOptionSeparator: false, + disableInnerPadding: false, }; const OptionRow = (props) => { @@ -130,7 +134,7 @@ const OptionRow = (props) => { styles.alignItemsCenter, styles.justifyContentBetween, styles.sidebarLink, - styles.sidebarLinkInner, + !props.disableInnerPadding && styles.sidebarLinkInner, props.optionIsFocused ? styles.sidebarLinkActive : null, hovered && !props.optionIsFocused ? props.hoverStyle : null, props.isDisabled && styles.cursorDisabled, diff --git a/src/components/OptionsList/BaseOptionsList.js b/src/components/OptionsList/BaseOptionsList.js index b7b6ebcd5a41..72ae9e53d5ab 100644 --- a/src/components/OptionsList/BaseOptionsList.js +++ b/src/components/OptionsList/BaseOptionsList.js @@ -167,6 +167,7 @@ class BaseOptionsList extends Component { boldStyle={this.props.boldStyle} isDisabled={this.props.isDisabled || section.isDisabled} shouldHaveOptionSeparator={index > 0 && this.props.shouldHaveOptionSeparator} + disableInnerPadding={this.props.disableRowInnerPadding} /> ); } diff --git a/src/components/OptionsList/optionsListPropTypes.js b/src/components/OptionsList/optionsListPropTypes.js index 0ca8b7a70901..2b56ef061087 100644 --- a/src/components/OptionsList/optionsListPropTypes.js +++ b/src/components/OptionsList/optionsListPropTypes.js @@ -70,6 +70,9 @@ const propTypes = { /** Whether to show a line separating options in list */ shouldHaveOptionSeparator: PropTypes.bool, + + /** Whether to disable the inner padding in rows */ + disableRowInnerPadding: PropTypes.bool, }; const defaultProps = { @@ -90,6 +93,7 @@ const defaultProps = { isDisabled: false, onLayout: undefined, shouldHaveOptionSeparator: false, + disableRowInnerPadding: false, }; export {propTypes, defaultProps}; diff --git a/src/pages/settings/Preferences/LanguagesPage.js b/src/pages/settings/Preferences/LanguagesPage.js index 450866e312a0..9721875da25f 100644 --- a/src/pages/settings/Preferences/LanguagesPage.js +++ b/src/pages/settings/Preferences/LanguagesPage.js @@ -60,8 +60,9 @@ const LanguagesPage = (props) => { Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); }} hideSectionHeaders - optionHoveredStyle={styles.hoveredComponentBG} + optionHoveredStyle={[styles.hoveredComponentBG, styles.mln5, styles.mrn5, styles.pl5, styles.pr5]} shouldHaveOptionSeparator + disableRowInnerPadding contentContainerStyles={[styles.ph5]} /> ); diff --git a/src/pages/settings/Preferences/PriorityModesPage.js b/src/pages/settings/Preferences/PriorityModesPage.js index 81451280dc71..9e81b767f56c 100644 --- a/src/pages/settings/Preferences/PriorityModesPage.js +++ b/src/pages/settings/Preferences/PriorityModesPage.js @@ -64,8 +64,9 @@ const PriorityModesPage = (props) => { Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); }} hideSectionHeaders - optionHoveredStyle={styles.hoveredComponentBG} + optionHoveredStyle={[styles.hoveredComponentBG, styles.mln5, styles.mrn5, styles.pl5, styles.pr5]} shouldHaveOptionSeparator + disableRowInnerPadding contentContainerStyles={[styles.ph5]} /> ); From fc2e4703f21d6d8fd2fde779ce63982127582e99 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Thu, 26 Jan 2023 21:47:13 +0200 Subject: [PATCH 16/40] Fix spacing in Preferences page. --- src/pages/settings/Preferences/PreferencesPage.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/settings/Preferences/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js index 8e89f6af8d63..1c43697a6f5d 100755 --- a/src/pages/settings/Preferences/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -71,7 +71,7 @@ const PreferencesPage = (props) => { onBackButtonPress={() => Navigation.navigate(ROUTES.SETTINGS)} onCloseButtonPress={() => Navigation.dismissModal(true)} /> - + {props.translate('common.notifications')} @@ -104,7 +104,7 @@ const PreferencesPage = (props) => { {/* If we are in the staging environment then we enable additional test features */ _.contains([CONST.ENVIRONMENT.STAGING, CONST.ENVIRONMENT.DEV], props.environment) - && + && } From 4384921f0e48bb382d72d1af8dbfc93ecc460b5b Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Thu, 26 Jan 2023 22:30:24 +0200 Subject: [PATCH 17/40] Add description for priority mode options --- src/languages/en.js | 4 ++-- src/languages/es.js | 6 +++--- src/pages/settings/Preferences/LanguagesPage.js | 5 ++--- src/pages/settings/Preferences/PriorityModesPage.js | 4 ++-- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/languages/en.js b/src/languages/en.js index f5043fc8bc6e..5e58c827e26a 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -494,9 +494,9 @@ export default { priorityMode: 'Priority mode', explainerText: 'Choose whether to show all chats by default sorted with most recent with pinned items at the top, or #focus on unread pinned items, sorted alphabetically.', mostRecent: 'Most recent', - mostRecentModeDescription: 'This will display all chats by default, sorted by most recent, with pinned items at the top.', + mostRecentModeDescription: 'Show all chats sorted by most recent', focus: '#focus', - focusModeDescription: '#focus – This will only display unread and pinned chats, all sorted alphabetically.', + focusModeDescription: 'Only show unread sorted alphabetically', }, languagesPage: { language: 'Language', diff --git a/src/languages/es.js b/src/languages/es.js index 91d7ea224e3b..e7907ac3669e 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -492,11 +492,11 @@ export default { }, priorityModesPage: { priorityMode: 'Modo prioridad', - explainerText: 'Elija si desea mostrar todos los chats de forma predeterminada ordenados con los más recientes con elementos anclados en la parte superior, o #centrarse en los elementos anclados no leídos, ordenados alfabéticamente.', + explainerText: 'Elija si desea mostrar por defecto todos los chats ordenados desde el más reciente y con los elementos anclados en la parte superior, o elija el modo #concentración, con los elementos no leídos anclados en la parte superior y ordenados alfabéticamente.', mostRecent: 'Más recientes', - mostRecentModeDescription: 'Esta opción muestra por defecto todos los chats, ordenados a partir del más reciente, con los chats destacados arriba de todo.', + mostRecentModeDescription: 'Mostrar todos los chats ordenados desde el más reciente', focus: '#concentración', - focusModeDescription: '#concentración – Muestra sólo los chats no leídos y destacados ordenados alfabéticamente.', + focusModeDescription: 'Mostrar sólo los no leídos ordenados alfabéticamente', }, languagesPage: { language: 'Idioma', diff --git a/src/pages/settings/Preferences/LanguagesPage.js b/src/pages/settings/Preferences/LanguagesPage.js index 9721875da25f..7303bf5040c9 100644 --- a/src/pages/settings/Preferences/LanguagesPage.js +++ b/src/pages/settings/Preferences/LanguagesPage.js @@ -53,10 +53,9 @@ const LanguagesPage = (props) => { { - if (language.value === props.preferredLocale) { - return; + if (language.value !== props.preferredLocale) { + App.setLocale(language.value); } - App.setLocale(language.value); Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); }} hideSectionHeaders diff --git a/src/pages/settings/Preferences/PriorityModesPage.js b/src/pages/settings/Preferences/PriorityModesPage.js index 9e81b767f56c..81cedb03e093 100644 --- a/src/pages/settings/Preferences/PriorityModesPage.js +++ b/src/pages/settings/Preferences/PriorityModesPage.js @@ -27,12 +27,12 @@ const PriorityModesPage = (props) => { { value: CONST.PRIORITY_MODE.DEFAULT, text: props.translate('priorityModesPage.mostRecent'), - description: props.translate('priorityModesPage.mostRecentModeDescription'), + alternateText: props.translate('priorityModesPage.mostRecentModeDescription'), }, { value: CONST.PRIORITY_MODE.GSD, text: props.translate('priorityModesPage.focus'), - description: props.translate('priorityModesPage.focusModeDescription'), + alternateText: props.translate('priorityModesPage.focusModeDescription'), }, ].map(mode => { return { From 9193e0567c8406e5318f38cda32d6bf95a984f77 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Thu, 26 Jan 2023 22:42:28 +0200 Subject: [PATCH 18/40] Fix console errors --- src/pages/settings/Preferences/LanguagesPage.js | 2 +- src/pages/settings/Preferences/PriorityModesPage.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pages/settings/Preferences/LanguagesPage.js b/src/pages/settings/Preferences/LanguagesPage.js index 7303bf5040c9..11c7bf7add41 100644 --- a/src/pages/settings/Preferences/LanguagesPage.js +++ b/src/pages/settings/Preferences/LanguagesPage.js @@ -59,7 +59,7 @@ const LanguagesPage = (props) => { Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); }} hideSectionHeaders - optionHoveredStyle={[styles.hoveredComponentBG, styles.mln5, styles.mrn5, styles.pl5, styles.pr5]} + optionHoveredStyle={{...styles.hoveredComponentBG, ...styles.mln5, ...styles.mrn5, ...styles.pl5, ...styles.pr5}} shouldHaveOptionSeparator disableRowInnerPadding contentContainerStyles={[styles.ph5]} diff --git a/src/pages/settings/Preferences/PriorityModesPage.js b/src/pages/settings/Preferences/PriorityModesPage.js index 81cedb03e093..ef5e4397aa32 100644 --- a/src/pages/settings/Preferences/PriorityModesPage.js +++ b/src/pages/settings/Preferences/PriorityModesPage.js @@ -14,6 +14,7 @@ import { compose } from "underscore"; import { withOnyx } from "react-native-onyx"; import ONYXKEYS from "../../../ONYXKEYS"; import * as User from '../../../libs/actions/User'; +import * as StyleUtils from '../../../styles/StyleUtils'; const greenCheckmark = {src: Expensicons.Checkmark, color: themeColors.success}; @@ -64,7 +65,7 @@ const PriorityModesPage = (props) => { Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); }} hideSectionHeaders - optionHoveredStyle={[styles.hoveredComponentBG, styles.mln5, styles.mrn5, styles.pl5, styles.pr5]} + optionHoveredStyle={{...styles.hoveredComponentBG, ...styles.mln5, ...styles.mrn5, ...styles.pl5, ...styles.pr5}} shouldHaveOptionSeparator disableRowInnerPadding contentContainerStyles={[styles.ph5]} From 7ebd6efba3bc228f0880bf18b135f7b8d842d371 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Fri, 27 Jan 2023 15:54:01 +0200 Subject: [PATCH 19/40] Fix lint in i18n files --- src/languages/en.js | 2 +- src/languages/es.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/languages/en.js b/src/languages/en.js index 5e58c827e26a..b47a22d853cb 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -492,7 +492,7 @@ export default { }, priorityModesPage: { priorityMode: 'Priority mode', - explainerText: 'Choose whether to show all chats by default sorted with most recent with pinned items at the top, or #focus on unread pinned items, sorted alphabetically.', + explainerText: 'Choose whether to show all chats by default sorted with most recent with pinned items at the top, or #focus on unread pinned items, sorted alphabetically.', mostRecent: 'Most recent', mostRecentModeDescription: 'Show all chats sorted by most recent', focus: '#focus', diff --git a/src/languages/es.js b/src/languages/es.js index e7907ac3669e..f8efc8986605 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -492,7 +492,7 @@ export default { }, priorityModesPage: { priorityMode: 'Modo prioridad', - explainerText: 'Elija si desea mostrar por defecto todos los chats ordenados desde el más reciente y con los elementos anclados en la parte superior, o elija el modo #concentración, con los elementos no leídos anclados en la parte superior y ordenados alfabéticamente.', + explainerText: 'Elija si desea mostrar por defecto todos los chats ordenados desde el más reciente y con los elementos anclados en la parte superior, o elija el modo #concentración, con los elementos no leídos anclados en la parte superior y ordenados alfabéticamente.', mostRecent: 'Más recientes', mostRecentModeDescription: 'Mostrar todos los chats ordenados desde el más reciente', focus: '#concentración', From 01b74f8245906a06a84579aff33d601a871617cd Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Fri, 27 Jan 2023 16:11:14 +0200 Subject: [PATCH 20/40] Fix lint errors --- .../settings/Preferences/LanguagesPage.js | 73 ++++++++++--------- .../settings/Preferences/PreferencesPage.js | 9 ++- 2 files changed, 43 insertions(+), 39 deletions(-) diff --git a/src/pages/settings/Preferences/LanguagesPage.js b/src/pages/settings/Preferences/LanguagesPage.js index 11c7bf7add41..a4048849d2bb 100644 --- a/src/pages/settings/Preferences/LanguagesPage.js +++ b/src/pages/settings/Preferences/LanguagesPage.js @@ -1,14 +1,14 @@ -import React from "react"; -import HeaderWithCloseButton from "../../../components/HeaderWithCloseButton"; -import ScreenWrapper from "../../../components/ScreenWrapper"; -import withLocalize, { withLocalizePropTypes } from "../../../components/withLocalize"; -import Navigation from "../../../libs/Navigation/Navigation"; -import ROUTES from "../../../ROUTES"; -import { compose } from "underscore"; -import { withOnyx } from "react-native-onyx"; -import ONYXKEYS from "../../../ONYXKEYS"; -import OptionsList from "../../../components/OptionsList"; -import styles from "../../../styles/styles"; +import React from 'react'; +import HeaderWithCloseButton from '../../../components/HeaderWithCloseButton'; +import ScreenWrapper from '../../../components/ScreenWrapper'; +import withLocalize, {withLocalizePropTypes} from '../../../components/withLocalize'; +import Navigation from '../../../libs/Navigation/Navigation'; +import ROUTES from '../../../ROUTES'; +import {compose} from 'underscore'; +import {withOnyx} from 'react-native-onyx'; +import ONYXKEYS from '../../../ONYXKEYS'; +import OptionsList from '../../../components/OptionsList'; +import styles from '../../../styles/styles'; import themeColors from '../../../styles/themes/default'; import * as Expensicons from '../../../components/Icon/Expensicons'; import * as App from '../../../libs/actions/App'; @@ -43,30 +43,33 @@ const LanguagesPage = (props) => { } }); - return ( - Navigation.navigate(ROUTES.SETTINGS_PREFERENCES)} - onCloseButtonPress={() => Navigation.dismissModal(true)} - /> - { - if (language.value !== props.preferredLocale) { - App.setLocale(language.value); - } - Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); - }} - hideSectionHeaders - optionHoveredStyle={{...styles.hoveredComponentBG, ...styles.mln5, ...styles.mrn5, ...styles.pl5, ...styles.pr5}} - shouldHaveOptionSeparator - disableRowInnerPadding - contentContainerStyles={[styles.ph5]} - /> - ); -} + return ( + + Navigation.navigate(ROUTES.SETTINGS_PREFERENCES)} + onCloseButtonPress={() => Navigation.dismissModal(true)} + /> + { + if (language.value !== props.preferredLocale) { + App.setLocale(language.value); + } + Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); + }} + hideSectionHeaders + optionHoveredStyle={{ ...styles.hoveredComponentBG, ...styles.mln5, ...styles.mrn5, ...styles.pl5, ...styles.pr5 }} + shouldHaveOptionSeparator + disableRowInnerPadding + contentContainerStyles={[styles.ph5]} + /> + + ); +}; +LanguagesPage.displayName = 'LanguagesPage'; LanguagesPage.propTypes = propTypes; export default compose( @@ -76,4 +79,4 @@ export default compose( key: ONYXKEYS.NVP_PREFERRED_LOCALE, }, }), -)(LanguagesPage); \ No newline at end of file +)(LanguagesPage); diff --git a/src/pages/settings/Preferences/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js index 1c43697a6f5d..211207b87000 100755 --- a/src/pages/settings/Preferences/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -103,10 +103,11 @@ const PreferencesPage = (props) => { /> {/* If we are in the staging environment then we enable additional test features */ - _.contains([CONST.ENVIRONMENT.STAGING, CONST.ENVIRONMENT.DEV], props.environment) - && - - + (_.contains([CONST.ENVIRONMENT.STAGING, CONST.ENVIRONMENT.DEV], props.environment) && + + + + ) } From ace07112ccf22137f798f68509155ca4899575f2 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Fri, 27 Jan 2023 16:27:28 +0200 Subject: [PATCH 21/40] Another try with lint --- .../settings/Preferences/LanguagesPage.js | 58 +++++---- .../settings/Preferences/PriorityModesPage.js | 117 +++++++++--------- 2 files changed, 92 insertions(+), 83 deletions(-) diff --git a/src/pages/settings/Preferences/LanguagesPage.js b/src/pages/settings/Preferences/LanguagesPage.js index a4048849d2bb..08f1803931af 100644 --- a/src/pages/settings/Preferences/LanguagesPage.js +++ b/src/pages/settings/Preferences/LanguagesPage.js @@ -1,11 +1,13 @@ +import _ from 'underscore'; +import {compose} from 'underscore'; import React from 'react'; +import {withOnyx} from 'react-native-onyx'; + import HeaderWithCloseButton from '../../../components/HeaderWithCloseButton'; import ScreenWrapper from '../../../components/ScreenWrapper'; import withLocalize, {withLocalizePropTypes} from '../../../components/withLocalize'; import Navigation from '../../../libs/Navigation/Navigation'; import ROUTES from '../../../ROUTES'; -import {compose} from 'underscore'; -import {withOnyx} from 'react-native-onyx'; import ONYXKEYS from '../../../ONYXKEYS'; import OptionsList from '../../../components/OptionsList'; import styles from '../../../styles/styles'; @@ -20,28 +22,28 @@ const propTypes = { }; const LanguagesPage = (props) => { + const localesToLanguages = _.map( + [ + { + value: 'en', + text: props.translate('languagesPage.languages.english'), + }, + { + value: 'es', + text: props.translate('languagesPage.languages.spanish'), + }, + ], (language) => { + return { + ...language, + keyForList: language.value, - const localesToLanguages = [ - { - value: 'en', - text: props.translate('languagesPage.languages.english'), - }, - { - value: 'es', - text: props.translate('languagesPage.languages.spanish'), - }, - ].map(language => { - return { - ...language, - keyForList: language.value, - - // Include the green checkmark icon to indicate the currently selected value - customIcon: props.preferredLocale === language.value ? greenCheckmark : undefined, + // Include the green checkmark icon to indicate the currently selected value + customIcon: props.preferredLocale === language.value ? greenCheckmark : undefined, - // This property will make the currently selected value have bold text - boldStyle: props.preferredLocale === language.value, - } - }); + // This property will make the currently selected value have bold text + boldStyle: props.preferredLocale === language.value, + }; + }); return ( @@ -53,12 +55,14 @@ const LanguagesPage = (props) => { /> { - if (language.value !== props.preferredLocale) { - App.setLocale(language.value); + onSelectRow={ + (language) => { + if (language.value !== props.preferredLocale) { + App.setLocale(language.value); + } + Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); } - Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); - }} + } hideSectionHeaders optionHoveredStyle={{ ...styles.hoveredComponentBG, ...styles.mln5, ...styles.mrn5, ...styles.pl5, ...styles.pr5 }} shouldHaveOptionSeparator diff --git a/src/pages/settings/Preferences/PriorityModesPage.js b/src/pages/settings/Preferences/PriorityModesPage.js index ef5e4397aa32..5bac3040c8ac 100644 --- a/src/pages/settings/Preferences/PriorityModesPage.js +++ b/src/pages/settings/Preferences/PriorityModesPage.js @@ -1,20 +1,20 @@ -import React from "react"; -import HeaderWithCloseButton from "../../../components/HeaderWithCloseButton"; -import ScreenWrapper from "../../../components/ScreenWrapper"; -import withLocalize, { withLocalizePropTypes } from "../../../components/withLocalize"; -import Navigation from "../../../libs/Navigation/Navigation"; -import ROUTES from "../../../ROUTES"; +import {compose} from 'underscore'; +import React from 'react'; +import {withOnyx} from 'react-native-onyx'; + +import HeaderWithCloseButton from '../../../components/HeaderWithCloseButton'; +import ScreenWrapper from '../../../components/ScreenWrapper'; +import withLocalize, {withLocalizePropTypes} from '../../../components/withLocalize'; +import Navigation from '../../../libs/Navigation/Navigation'; +import ROUTES from '../../../ROUTES'; import CONST from '../../../CONST'; -import OptionsList from "../../../components/OptionsList"; -import styles from "../../../styles/styles"; -import Text from "../../../components/Text"; +import OptionsList from '../../../components/OptionsList'; +import styles from '../../../styles/styles'; +import Text from '../../../components/Text'; import themeColors from '../../../styles/themes/default'; import * as Expensicons from '../../../components/Icon/Expensicons'; -import { compose } from "underscore"; -import { withOnyx } from "react-native-onyx"; import ONYXKEYS from "../../../ONYXKEYS"; import * as User from '../../../libs/actions/User'; -import * as StyleUtils from '../../../styles/StyleUtils'; const greenCheckmark = {src: Expensicons.Checkmark, color: themeColors.success}; @@ -23,54 +23,59 @@ const propTypes = { }; const PriorityModesPage = (props) => { + const priorityModes = _.map( + [ + { + value: CONST.PRIORITY_MODE.DEFAULT, + text: props.translate('priorityModesPage.mostRecent'), + alternateText: props.translate('priorityModesPage.mostRecentModeDescription'), + }, + { + value: CONST.PRIORITY_MODE.GSD, + text: props.translate('priorityModesPage.focus'), + alternateText: props.translate('priorityModesPage.focusModeDescription'), + }, + ], + (mode) => { + return { + ...mode, + keyForList: mode.value, - const priorityModes = [ - { - value: CONST.PRIORITY_MODE.DEFAULT, - text: props.translate('priorityModesPage.mostRecent'), - alternateText: props.translate('priorityModesPage.mostRecentModeDescription'), - }, - { - value: CONST.PRIORITY_MODE.GSD, - text: props.translate('priorityModesPage.focus'), - alternateText: props.translate('priorityModesPage.focusModeDescription'), - }, - ].map(mode => { - return { - ...mode, - keyForList: mode.value, - - // Include the green checkmark icon to indicate the currently selected value - customIcon: props.priorityMode === mode.value ? greenCheckmark : undefined, + // Include the green checkmark icon to indicate the currently selected value + customIcon: props.priorityMode === mode.value ? greenCheckmark : undefined, - // This property will make the currently selected value have bold text - boldStyle: props.priorityMode === mode.value, + // This property will make the currently selected value have bold text + boldStyle: props.priorityMode === mode.value, + } } - }); + ); - return ( - Navigation.navigate(ROUTES.SETTINGS_PREFERENCES)} - onCloseButtonPress={() => Navigation.dismissModal(true)} - /> - - {props.translate('priorityModesPage.explainerText')} - - { - User.updateChatPriorityMode(mode.value); - Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); - }} - hideSectionHeaders - optionHoveredStyle={{...styles.hoveredComponentBG, ...styles.mln5, ...styles.mrn5, ...styles.pl5, ...styles.pr5}} - shouldHaveOptionSeparator - disableRowInnerPadding - contentContainerStyles={[styles.ph5]} - /> - ); + return ( + + Navigation.navigate(ROUTES.SETTINGS_PREFERENCES)} + onCloseButtonPress={() => Navigation.dismissModal(true)} + /> + + {props.translate('priorityModesPage.explainerText')} + + { + User.updateChatPriorityMode(mode.value); + Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); + } + } + hideSectionHeaders + optionHoveredStyle={{...styles.hoveredComponentBG, ...styles.mln5, ...styles.mrn5, ...styles.pl5, ...styles.pr5}} + shouldHaveOptionSeparator + disableRowInnerPadding + contentContainerStyles={[styles.ph5]} + /> + ); } PriorityModesPage.propTypes = propTypes; From 470f896494cc28da00bc3137b47bc4c258d953b7 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Fri, 27 Jan 2023 16:42:42 +0200 Subject: [PATCH 22/40] Lint --- .../settings/Preferences/LanguagesPage.js | 20 +++++++++-------- .../settings/Preferences/PriorityModesPage.js | 22 ++++++++++--------- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/src/pages/settings/Preferences/LanguagesPage.js b/src/pages/settings/Preferences/LanguagesPage.js index 08f1803931af..d8439838844b 100644 --- a/src/pages/settings/Preferences/LanguagesPage.js +++ b/src/pages/settings/Preferences/LanguagesPage.js @@ -1,5 +1,4 @@ -import _ from 'underscore'; -import {compose} from 'underscore'; +import _, {compose} from 'underscore'; import React from 'react'; import {withOnyx} from 'react-native-onyx'; @@ -15,7 +14,7 @@ import themeColors from '../../../styles/themes/default'; import * as Expensicons from '../../../components/Icon/Expensicons'; import * as App from '../../../libs/actions/App'; -const greenCheckmark = {src: Expensicons.Checkmark, color: themeColors.success}; +const greenCheckmark = { src: Expensicons.Checkmark, color: themeColors.success }; const propTypes = { ...withLocalizePropTypes, @@ -32,8 +31,8 @@ const LanguagesPage = (props) => { value: 'es', text: props.translate('languagesPage.languages.spanish'), }, - ], (language) => { - return { + ], language => ( + { ...language, keyForList: language.value, @@ -42,8 +41,9 @@ const LanguagesPage = (props) => { // This property will make the currently selected value have bold text boldStyle: props.preferredLocale === language.value, - }; - }); + } + ), + ); return ( @@ -54,7 +54,7 @@ const LanguagesPage = (props) => { onCloseButtonPress={() => Navigation.dismissModal(true)} /> { if (language.value !== props.preferredLocale) { @@ -64,7 +64,9 @@ const LanguagesPage = (props) => { } } hideSectionHeaders - optionHoveredStyle={{ ...styles.hoveredComponentBG, ...styles.mln5, ...styles.mrn5, ...styles.pl5, ...styles.pr5 }} + optionHoveredStyle={ + {...styles.hoveredComponentBG, ...styles.mln5, ...styles.mrn5, ...styles.pl5, ...styles.pr5} + } shouldHaveOptionSeparator disableRowInnerPadding contentContainerStyles={[styles.ph5]} diff --git a/src/pages/settings/Preferences/PriorityModesPage.js b/src/pages/settings/Preferences/PriorityModesPage.js index 5bac3040c8ac..18ef415399c2 100644 --- a/src/pages/settings/Preferences/PriorityModesPage.js +++ b/src/pages/settings/Preferences/PriorityModesPage.js @@ -1,4 +1,4 @@ -import {compose} from 'underscore'; +import _, {compose} from 'underscore'; import React from 'react'; import {withOnyx} from 'react-native-onyx'; @@ -13,7 +13,7 @@ import styles from '../../../styles/styles'; import Text from '../../../components/Text'; import themeColors from '../../../styles/themes/default'; import * as Expensicons from '../../../components/Icon/Expensicons'; -import ONYXKEYS from "../../../ONYXKEYS"; +import ONYXKEYS from '../../../ONYXKEYS'; import * as User from '../../../libs/actions/User'; const greenCheckmark = {src: Expensicons.Checkmark, color: themeColors.success}; @@ -35,9 +35,8 @@ const PriorityModesPage = (props) => { text: props.translate('priorityModesPage.focus'), alternateText: props.translate('priorityModesPage.focusModeDescription'), }, - ], - (mode) => { - return { + ], mode => ( + { ...mode, keyForList: mode.value, @@ -47,7 +46,7 @@ const PriorityModesPage = (props) => { // This property will make the currently selected value have bold text boldStyle: props.priorityMode === mode.value, } - } + ), ); return ( @@ -64,20 +63,23 @@ const PriorityModesPage = (props) => { { + (mode) => { User.updateChatPriorityMode(mode.value); Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); } } hideSectionHeaders - optionHoveredStyle={{...styles.hoveredComponentBG, ...styles.mln5, ...styles.mrn5, ...styles.pl5, ...styles.pr5}} + optionHoveredStyle={ + {...styles.hoveredComponentBG, ...styles.mln5, ...styles.mrn5, ...styles.pl5, ...styles.pr5} + } shouldHaveOptionSeparator disableRowInnerPadding contentContainerStyles={[styles.ph5]} /> ); -} +}; +PriorityModesPage.displayName = 'PriorityModesPage'; PriorityModesPage.propTypes = propTypes; export default compose( @@ -87,4 +89,4 @@ export default compose( key: ONYXKEYS.NVP_PRIORITY_MODE, }, }), -)(PriorityModesPage); \ No newline at end of file +)(PriorityModesPage); From 0a9cb4b139ee5e2978bff8db4424aafb0b84cecd Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Fri, 27 Jan 2023 16:51:27 +0200 Subject: [PATCH 23/40] Pass this one Linter or Imma quit --- src/pages/settings/Preferences/LanguagesPage.js | 10 ++++++++-- src/pages/settings/Preferences/PreferencesPage.js | 5 +++-- src/pages/settings/Preferences/PriorityModesPage.js | 11 +++++++++-- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/pages/settings/Preferences/LanguagesPage.js b/src/pages/settings/Preferences/LanguagesPage.js index d8439838844b..cf44a0ea98e7 100644 --- a/src/pages/settings/Preferences/LanguagesPage.js +++ b/src/pages/settings/Preferences/LanguagesPage.js @@ -14,7 +14,7 @@ import themeColors from '../../../styles/themes/default'; import * as Expensicons from '../../../components/Icon/Expensicons'; import * as App from '../../../libs/actions/App'; -const greenCheckmark = { src: Expensicons.Checkmark, color: themeColors.success }; +const greenCheckmark = {src: Expensicons.Checkmark, color: themeColors.success}; const propTypes = { ...withLocalizePropTypes, @@ -65,7 +65,13 @@ const LanguagesPage = (props) => { } hideSectionHeaders optionHoveredStyle={ - {...styles.hoveredComponentBG, ...styles.mln5, ...styles.mrn5, ...styles.pl5, ...styles.pr5} + { + ...styles.hoveredComponentBG, + ...styles.mln5, + ...styles.mrn5, + ...styles.pl5, + ...styles.pr5, + } } shouldHaveOptionSeparator disableRowInnerPadding diff --git a/src/pages/settings/Preferences/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js index 211207b87000..2970ba19b66b 100755 --- a/src/pages/settings/Preferences/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -103,8 +103,9 @@ const PreferencesPage = (props) => { /> {/* If we are in the staging environment then we enable additional test features */ - (_.contains([CONST.ENVIRONMENT.STAGING, CONST.ENVIRONMENT.DEV], props.environment) && - + ( + _.contains([CONST.ENVIRONMENT.STAGING, CONST.ENVIRONMENT.DEV], props.environment) + && ) diff --git a/src/pages/settings/Preferences/PriorityModesPage.js b/src/pages/settings/Preferences/PriorityModesPage.js index 18ef415399c2..08959170d5fb 100644 --- a/src/pages/settings/Preferences/PriorityModesPage.js +++ b/src/pages/settings/Preferences/PriorityModesPage.js @@ -70,13 +70,20 @@ const PriorityModesPage = (props) => { } hideSectionHeaders optionHoveredStyle={ - {...styles.hoveredComponentBG, ...styles.mln5, ...styles.mrn5, ...styles.pl5, ...styles.pr5} + { + ...styles.hoveredComponentBG, + ...styles.mln5, + ...styles.mrn5, + ...styles.pl5, + ...styles.pr5, + } } shouldHaveOptionSeparator disableRowInnerPadding contentContainerStyles={[styles.ph5]} /> - ); + + ); }; PriorityModesPage.displayName = 'PriorityModesPage'; From c198c5351de82d7ebd12afc57d52e28fa2222858 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Fri, 27 Jan 2023 16:58:14 +0200 Subject: [PATCH 24/40] Is this the one? --- src/pages/settings/Preferences/PreferencesPage.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/settings/Preferences/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js index 2970ba19b66b..b3604f29e401 100755 --- a/src/pages/settings/Preferences/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -103,9 +103,9 @@ const PreferencesPage = (props) => { /> {/* If we are in the staging environment then we enable additional test features */ - ( - _.contains([CONST.ENVIRONMENT.STAGING, CONST.ENVIRONMENT.DEV], props.environment) - && + _.contains([CONST.ENVIRONMENT.STAGING, CONST.ENVIRONMENT.DEV], props.environment) + && ( + ) From 2b426f375fae45a919ad217f7ef997831b7f1411 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Fri, 27 Jan 2023 20:37:07 +0200 Subject: [PATCH 25/40] Fix js doc. --- src/components/OptionRow.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/OptionRow.js b/src/components/OptionRow.js index 11177397ebe9..24c0c6da330d 100644 --- a/src/components/OptionRow.js +++ b/src/components/OptionRow.js @@ -57,7 +57,7 @@ const propTypes = { /** Whether to show a line separating options in list */ shouldHaveOptionSeparator: PropTypes.bool, - /** Whether to disable the inner padding */ + /** Whether to remove the lateral padding and align the content with the margins */ disableInnerPadding: PropTypes.bool, style: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]), From 928f47428319256cd3bcd2e0d6640476af8c3585 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Tue, 31 Jan 2023 16:18:40 +0200 Subject: [PATCH 26/40] Rename PriorityMode page --- src/languages/en.js | 2 +- src/languages/es.js | 2 +- .../AppNavigator/ModalStackNavigators.js | 6 +++--- src/libs/Navigation/linkingConfig.js | 2 +- .../settings/Preferences/PreferencesPage.js | 6 +++--- ...iorityModesPage.js => PriorityModePage.js} | 20 +++++++++---------- 6 files changed, 19 insertions(+), 19 deletions(-) rename src/pages/settings/Preferences/{PriorityModesPage.js => PriorityModePage.js} (83%) diff --git a/src/languages/en.js b/src/languages/en.js index b47a22d853cb..289488a3c1d1 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -490,7 +490,7 @@ export default { preferencesPage: { receiveRelevantFeatureUpdatesAndExpensifyNews: 'Receive relevant feature updates and Expensify news', }, - priorityModesPage: { + priorityModePage: { priorityMode: 'Priority mode', explainerText: 'Choose whether to show all chats by default sorted with most recent with pinned items at the top, or #focus on unread pinned items, sorted alphabetically.', mostRecent: 'Most recent', diff --git a/src/languages/es.js b/src/languages/es.js index f8efc8986605..025abf7267af 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -490,7 +490,7 @@ export default { preferencesPage: { receiveRelevantFeatureUpdatesAndExpensifyNews: 'Recibir noticias sobre Expensify y actualizaciones del producto', }, - priorityModesPage: { + priorityModePage: { priorityMode: 'Modo prioridad', explainerText: 'Elija si desea mostrar por defecto todos los chats ordenados desde el más reciente y con los elementos anclados en la parte superior, o elija el modo #concentración, con los elementos no leídos anclados en la parte superior y ordenados alfabéticamente.', mostRecent: 'Más recientes', diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators.js b/src/libs/Navigation/AppNavigator/ModalStackNavigators.js index 307e83012f5b..e2cb594c325f 100644 --- a/src/libs/Navigation/AppNavigator/ModalStackNavigators.js +++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators.js @@ -261,10 +261,10 @@ const SettingsModalStackNavigator = createModalStackNavigator([ }, { getComponent: () => { - const SettingsPreferencesPriorityModesPage = require('../../../pages/settings/Preferences/PriorityModesPage').default; - return SettingsPreferencesPriorityModesPage; + const SettingsPreferencesPriorityModePage = require('../../../pages/settings/Preferences/PriorityModePage').default; + return SettingsPreferencesPriorityModePage; }, - name: 'Settings_Preferences_PriorityModes', + name: 'Settings_Preferences_PriorityMode', }, { getComponent: () => { diff --git a/src/libs/Navigation/linkingConfig.js b/src/libs/Navigation/linkingConfig.js index 6c8d3c0f6dbf..0bb6dcc9d3fd 100644 --- a/src/libs/Navigation/linkingConfig.js +++ b/src/libs/Navigation/linkingConfig.js @@ -44,7 +44,7 @@ export default { path: ROUTES.SETTINGS_PREFERENCES, exact: true, }, - Settings_Preferences_PriorityModes: { + Settings_Preferences_PriorityMode: { path: ROUTES.SETTINGS_PRIORITY_MODES, exact: true, }, diff --git a/src/pages/settings/Preferences/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js index b3604f29e401..e95f05d8b1a7 100755 --- a/src/pages/settings/Preferences/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -45,11 +45,11 @@ const PreferencesPage = (props) => { const priorityModes = { default: { value: CONST.PRIORITY_MODE.DEFAULT, - label: props.translate('priorityModesPage.mostRecent'), + label: props.translate('priorityModePage.mostRecent'), }, gsd: { value: CONST.PRIORITY_MODE.GSD, - label: props.translate('priorityModesPage.focus'), + label: props.translate('priorityModePage.focus'), }, }; const localesToLanguages = { @@ -92,7 +92,7 @@ const PreferencesPage = (props) => { Navigation.navigate(ROUTES.SETTINGS_PRIORITY_MODES)} /> { +const PriorityModePage = (props) => { const priorityModes = _.map( [ { value: CONST.PRIORITY_MODE.DEFAULT, - text: props.translate('priorityModesPage.mostRecent'), - alternateText: props.translate('priorityModesPage.mostRecentModeDescription'), + text: props.translate('priorityModePage.mostRecent'), + alternateText: props.translate('priorityModePage.mostRecentModeDescription'), }, { value: CONST.PRIORITY_MODE.GSD, - text: props.translate('priorityModesPage.focus'), - alternateText: props.translate('priorityModesPage.focusModeDescription'), + text: props.translate('priorityModePage.focus'), + alternateText: props.translate('priorityModePage.focusModeDescription'), }, ], mode => ( { @@ -52,13 +52,13 @@ const PriorityModesPage = (props) => { return ( Navigation.navigate(ROUTES.SETTINGS_PREFERENCES)} onCloseButtonPress={() => Navigation.dismissModal(true)} /> - {props.translate('priorityModesPage.explainerText')} + {props.translate('priorityModePage.explainerText')} { ); }; -PriorityModesPage.displayName = 'PriorityModesPage'; -PriorityModesPage.propTypes = propTypes; +PriorityModePage.displayName = 'PriorityModePage'; +PriorityModePage.propTypes = propTypes; export default compose( withLocalize, @@ -96,4 +96,4 @@ export default compose( key: ONYXKEYS.NVP_PRIORITY_MODE, }, }), -)(PriorityModesPage); +)(PriorityModePage); From 76bfe87bf38ba474774fd35b54c029a0065bbb76 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Tue, 31 Jan 2023 16:22:31 +0200 Subject: [PATCH 27/40] Rename LanguagePage --- src/components/LocalePicker.js | 6 +++--- src/languages/en.js | 2 +- src/languages/es.js | 2 +- .../AppNavigator/ModalStackNavigators.js | 6 +++--- src/libs/Navigation/linkingConfig.js | 2 +- .../{LanguagesPage.js => LanguagePage.js} | 14 +++++++------- src/pages/settings/Preferences/PreferencesPage.js | 6 +++--- 7 files changed, 19 insertions(+), 19 deletions(-) rename src/pages/settings/Preferences/{LanguagesPage.js => LanguagePage.js} (89%) diff --git a/src/components/LocalePicker.js b/src/components/LocalePicker.js index fa7ef43416df..891b266bc8ac 100644 --- a/src/components/LocalePicker.js +++ b/src/components/LocalePicker.js @@ -34,11 +34,11 @@ const defaultProps = { const localesToLanguages = { default: { value: 'en', - label: Localize.translate('en', 'languagesPage.languages.english'), + label: Localize.translate('en', 'languagePage.languages.english'), }, es: { value: 'es', - label: Localize.translate('es', 'languagesPage.languages.spanish'), + label: Localize.translate('es', 'languagePage.languages.spanish'), }, }; @@ -49,7 +49,7 @@ const LocalePicker = (props) => { return ( { if (locale === props.preferredLocale) { return; diff --git a/src/languages/en.js b/src/languages/en.js index 289488a3c1d1..d5a184aa727f 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -498,7 +498,7 @@ export default { focus: '#focus', focusModeDescription: 'Only show unread sorted alphabetically', }, - languagesPage: { + languagePage: { language: 'Language', languages: { english: 'English', diff --git a/src/languages/es.js b/src/languages/es.js index 025abf7267af..2b80e9b36d48 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -498,7 +498,7 @@ export default { focus: '#concentración', focusModeDescription: 'Mostrar sólo los no leídos ordenados alfabéticamente', }, - languagesPage: { + languagePage: { language: 'Idioma', languages: { english: 'Inglés', diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators.js b/src/libs/Navigation/AppNavigator/ModalStackNavigators.js index e2cb594c325f..5a58ea3f510c 100644 --- a/src/libs/Navigation/AppNavigator/ModalStackNavigators.js +++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators.js @@ -268,10 +268,10 @@ const SettingsModalStackNavigator = createModalStackNavigator([ }, { getComponent: () => { - const SettingsPreferencesLanguagesPage = require('../../../pages/settings/Preferences/LanguagesPage').default; - return SettingsPreferencesLanguagesPage; + const SettingsPreferencesLanguagePage = require('../../../pages/settings/Preferences/LanguagePage').default; + return SettingsPreferencesLanguagePage; }, - name: 'Settings_Preferences_Languages', + name: 'Settings_Preferences_Language', }, { getComponent: () => { diff --git a/src/libs/Navigation/linkingConfig.js b/src/libs/Navigation/linkingConfig.js index 0bb6dcc9d3fd..88a4619b6eb9 100644 --- a/src/libs/Navigation/linkingConfig.js +++ b/src/libs/Navigation/linkingConfig.js @@ -48,7 +48,7 @@ export default { path: ROUTES.SETTINGS_PRIORITY_MODES, exact: true, }, - Settings_Preferences_Languages: { + Settings_Preferences_Language: { path: ROUTES.SETTINGS_LANGUAGES, exact: true, }, diff --git a/src/pages/settings/Preferences/LanguagesPage.js b/src/pages/settings/Preferences/LanguagePage.js similarity index 89% rename from src/pages/settings/Preferences/LanguagesPage.js rename to src/pages/settings/Preferences/LanguagePage.js index cf44a0ea98e7..5e38f69ea185 100644 --- a/src/pages/settings/Preferences/LanguagesPage.js +++ b/src/pages/settings/Preferences/LanguagePage.js @@ -20,16 +20,16 @@ const propTypes = { ...withLocalizePropTypes, }; -const LanguagesPage = (props) => { +const LanguagePage = (props) => { const localesToLanguages = _.map( [ { value: 'en', - text: props.translate('languagesPage.languages.english'), + text: props.translate('languagePage.languages.english'), }, { value: 'es', - text: props.translate('languagesPage.languages.spanish'), + text: props.translate('languagePage.languages.spanish'), }, ], language => ( { @@ -48,7 +48,7 @@ const LanguagesPage = (props) => { return ( Navigation.navigate(ROUTES.SETTINGS_PREFERENCES)} onCloseButtonPress={() => Navigation.dismissModal(true)} @@ -81,8 +81,8 @@ const LanguagesPage = (props) => { ); }; -LanguagesPage.displayName = 'LanguagesPage'; -LanguagesPage.propTypes = propTypes; +LanguagePage.displayName = 'LanguagePage'; +LanguagePage.propTypes = propTypes; export default compose( withLocalize, @@ -91,4 +91,4 @@ export default compose( key: ONYXKEYS.NVP_PREFERRED_LOCALE, }, }), -)(LanguagesPage); +)(LanguagePage); diff --git a/src/pages/settings/Preferences/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js index e95f05d8b1a7..1deec5996af2 100755 --- a/src/pages/settings/Preferences/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -55,11 +55,11 @@ const PreferencesPage = (props) => { const localesToLanguages = { en: { value: 'en', - label: props.translate('languagesPage.languages.english'), + label: props.translate('languagePage.languages.english'), }, es: { value: 'es', - label: props.translate('languagesPage.languages.spanish'), + label: props.translate('languagePage.languages.spanish'), }, }; @@ -98,7 +98,7 @@ const PreferencesPage = (props) => { Navigation.navigate(ROUTES.SETTINGS_LANGUAGES)} /> From 71317984d5d9380784981f0c167bf18c5e38aa42 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Tue, 31 Jan 2023 17:10:41 +0200 Subject: [PATCH 28/40] Remove unnecessary empty lines --- src/pages/settings/Preferences/LanguagePage.js | 1 - src/pages/settings/Preferences/PreferencesPage.js | 1 - src/pages/settings/Preferences/PriorityModePage.js | 1 - 3 files changed, 3 deletions(-) diff --git a/src/pages/settings/Preferences/LanguagePage.js b/src/pages/settings/Preferences/LanguagePage.js index 5e38f69ea185..bccf33a4d4ab 100644 --- a/src/pages/settings/Preferences/LanguagePage.js +++ b/src/pages/settings/Preferences/LanguagePage.js @@ -1,7 +1,6 @@ import _, {compose} from 'underscore'; import React from 'react'; import {withOnyx} from 'react-native-onyx'; - import HeaderWithCloseButton from '../../../components/HeaderWithCloseButton'; import ScreenWrapper from '../../../components/ScreenWrapper'; import withLocalize, {withLocalizePropTypes} from '../../../components/withLocalize'; diff --git a/src/pages/settings/Preferences/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js index 1deec5996af2..4ebe1d269fa6 100755 --- a/src/pages/settings/Preferences/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -4,7 +4,6 @@ import React from 'react'; import {View, ScrollView} from 'react-native'; import {withOnyx} from 'react-native-onyx'; import PropTypes from 'prop-types'; - import HeaderWithCloseButton from '../../../components/HeaderWithCloseButton'; import Navigation from '../../../libs/Navigation/Navigation'; import ROUTES from '../../../ROUTES'; diff --git a/src/pages/settings/Preferences/PriorityModePage.js b/src/pages/settings/Preferences/PriorityModePage.js index 214d1cb2f9f7..38896eeda0ab 100644 --- a/src/pages/settings/Preferences/PriorityModePage.js +++ b/src/pages/settings/Preferences/PriorityModePage.js @@ -1,7 +1,6 @@ import _, {compose} from 'underscore'; import React from 'react'; import {withOnyx} from 'react-native-onyx'; - import HeaderWithCloseButton from '../../../components/HeaderWithCloseButton'; import ScreenWrapper from '../../../components/ScreenWrapper'; import withLocalize, {withLocalizePropTypes} from '../../../components/withLocalize'; From 67d365e09daab20fe19a62e1718798664d198702 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Tue, 31 Jan 2023 17:11:47 +0200 Subject: [PATCH 29/40] Update src/components/OptionRow.js Co-authored-by: Alex Beaman --- src/components/OptionRow.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/OptionRow.js b/src/components/OptionRow.js index 24c0c6da330d..c1769cff0173 100644 --- a/src/components/OptionRow.js +++ b/src/components/OptionRow.js @@ -134,7 +134,7 @@ const OptionRow = (props) => { styles.alignItemsCenter, styles.justifyContentBetween, styles.sidebarLink, - !props.disableInnerPadding && styles.sidebarLinkInner, + props.disableInnerPadding ? null : && styles.sidebarLinkInner, props.optionIsFocused ? styles.sidebarLinkActive : null, hovered && !props.optionIsFocused ? props.hoverStyle : null, props.isDisabled && styles.cursorDisabled, From 0e4022ee23a8c8d61653490ffe95bf6cc48547bd Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Tue, 31 Jan 2023 17:12:44 +0200 Subject: [PATCH 30/40] Update src/pages/settings/Preferences/PreferencesPage.js Co-authored-by: Alex Beaman --- src/pages/settings/Preferences/PreferencesPage.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pages/settings/Preferences/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js index 4ebe1d269fa6..3c8327b2278c 100755 --- a/src/pages/settings/Preferences/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -101,7 +101,8 @@ const PreferencesPage = (props) => { onPress={() => Navigation.navigate(ROUTES.SETTINGS_LANGUAGES)} /> - {/* If we are in the staging environment then we enable additional test features */ + {/* If we are in the staging environment then we enable additional test features */} + { _.contains([CONST.ENVIRONMENT.STAGING, CONST.ENVIRONMENT.DEV], props.environment) && ( From 1fc103122617ee66c7a89861e08329098a56493a Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Tue, 31 Jan 2023 17:25:08 +0200 Subject: [PATCH 31/40] remove unnecessary prefferedLocale prop in LanguagePage --- src/pages/settings/Preferences/LanguagePage.js | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/pages/settings/Preferences/LanguagePage.js b/src/pages/settings/Preferences/LanguagePage.js index bccf33a4d4ab..f7d055b3dc2b 100644 --- a/src/pages/settings/Preferences/LanguagePage.js +++ b/src/pages/settings/Preferences/LanguagePage.js @@ -1,12 +1,10 @@ import _, {compose} from 'underscore'; import React from 'react'; -import {withOnyx} from 'react-native-onyx'; import HeaderWithCloseButton from '../../../components/HeaderWithCloseButton'; import ScreenWrapper from '../../../components/ScreenWrapper'; -import withLocalize, {withLocalizePropTypes} from '../../../components/withLocalize'; +import withLocalize, {withLocalizePropTypes, localeProviderPropTypes} from '../../../components/withLocalize'; import Navigation from '../../../libs/Navigation/Navigation'; import ROUTES from '../../../ROUTES'; -import ONYXKEYS from '../../../ONYXKEYS'; import OptionsList from '../../../components/OptionsList'; import styles from '../../../styles/styles'; import themeColors from '../../../styles/themes/default'; @@ -17,6 +15,7 @@ const greenCheckmark = {src: Expensicons.Checkmark, color: themeColors.success}; const propTypes = { ...withLocalizePropTypes, + ...localeProviderPropTypes, }; const LanguagePage = (props) => { @@ -85,9 +84,4 @@ LanguagePage.propTypes = propTypes; export default compose( withLocalize, - withOnyx({ - preferredLocale: { - key: ONYXKEYS.NVP_PREFERRED_LOCALE, - }, - }), )(LanguagePage); From 14b54687e854aaf7d62f799ed90138429ff9d298 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Tue, 31 Jan 2023 18:45:15 +0200 Subject: [PATCH 32/40] Address feedback on PriorityMode page --- src/components/OptionRow.js | 2 +- src/languages/en.js | 14 ++++-- src/languages/es.js | 14 ++++-- src/libs/actions/User.js | 1 + .../settings/Preferences/PreferencesPage.js | 12 +---- .../settings/Preferences/PriorityModePage.js | 44 ++++++------------- 6 files changed, 37 insertions(+), 50 deletions(-) diff --git a/src/components/OptionRow.js b/src/components/OptionRow.js index c1769cff0173..78f982971697 100644 --- a/src/components/OptionRow.js +++ b/src/components/OptionRow.js @@ -134,7 +134,7 @@ const OptionRow = (props) => { styles.alignItemsCenter, styles.justifyContentBetween, styles.sidebarLink, - props.disableInnerPadding ? null : && styles.sidebarLinkInner, + props.disableInnerPadding ? null : styles.sidebarLinkInner, props.optionIsFocused ? styles.sidebarLinkActive : null, hovered && !props.optionIsFocused ? props.hoverStyle : null, props.isDisabled && styles.cursorDisabled, diff --git a/src/languages/en.js b/src/languages/en.js index d5a184aa727f..ad9658964091 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -493,10 +493,16 @@ export default { priorityModePage: { priorityMode: 'Priority mode', explainerText: 'Choose whether to show all chats by default sorted with most recent with pinned items at the top, or #focus on unread pinned items, sorted alphabetically.', - mostRecent: 'Most recent', - mostRecentModeDescription: 'Show all chats sorted by most recent', - focus: '#focus', - focusModeDescription: 'Only show unread sorted alphabetically', + priorityModes : { + default: { + label: 'Most recent', + description: 'Show all chats sorted by most recent', + }, + gsd: { + label: '#focus', + description: 'Only show unread sorted alphabetically', + }, + }, }, languagePage: { language: 'Language', diff --git a/src/languages/es.js b/src/languages/es.js index 2b80e9b36d48..93cb5dc78d47 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -493,10 +493,16 @@ export default { priorityModePage: { priorityMode: 'Modo prioridad', explainerText: 'Elija si desea mostrar por defecto todos los chats ordenados desde el más reciente y con los elementos anclados en la parte superior, o elija el modo #concentración, con los elementos no leídos anclados en la parte superior y ordenados alfabéticamente.', - mostRecent: 'Más recientes', - mostRecentModeDescription: 'Mostrar todos los chats ordenados desde el más reciente', - focus: '#concentración', - focusModeDescription: 'Mostrar sólo los no leídos ordenados alfabéticamente', + priorityModes : { + default: { + label: 'Más recientes', + description: 'Mostrar todos los chats ordenados desde el más reciente', + }, + gsd: { + label: '#concentración', + description: 'Mostrar sólo los no leídos ordenados alfabéticamente', + }, + }, }, languagePage: { language: 'Idioma', diff --git a/src/libs/actions/User.js b/src/libs/actions/User.js index 09e7d6873084..4e48a3901e25 100644 --- a/src/libs/actions/User.js +++ b/src/libs/actions/User.js @@ -401,6 +401,7 @@ function updateChatPriorityMode(mode) { API.write('UpdateChatPriorityMode', { value: mode, }, {optimisticData}); + Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); } /** diff --git a/src/pages/settings/Preferences/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js index 3c8327b2278c..6028c1e02a68 100755 --- a/src/pages/settings/Preferences/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -28,7 +28,6 @@ const propTypes = { user: PropTypes.shape({ /** Whether or not the user is subscribed to news updates */ isSubscribedToNewsletter: PropTypes.bool, - shouldUseStagingServer: PropTypes.bool, }), ...withLocalizePropTypes, @@ -41,16 +40,7 @@ const defaultProps = { }; const PreferencesPage = (props) => { - const priorityModes = { - default: { - value: CONST.PRIORITY_MODE.DEFAULT, - label: props.translate('priorityModePage.mostRecent'), - }, - gsd: { - value: CONST.PRIORITY_MODE.GSD, - label: props.translate('priorityModePage.focus'), - }, - }; + const priorityModes = props.translate('priorityModePage.priorityModes'); const localesToLanguages = { en: { value: 'en', diff --git a/src/pages/settings/Preferences/PriorityModePage.js b/src/pages/settings/Preferences/PriorityModePage.js index 38896eeda0ab..315484400bf0 100644 --- a/src/pages/settings/Preferences/PriorityModePage.js +++ b/src/pages/settings/Preferences/PriorityModePage.js @@ -22,30 +22,20 @@ const propTypes = { }; const PriorityModePage = (props) => { - const priorityModes = _.map( - [ - { - value: CONST.PRIORITY_MODE.DEFAULT, - text: props.translate('priorityModePage.mostRecent'), - alternateText: props.translate('priorityModePage.mostRecentModeDescription'), - }, - { - value: CONST.PRIORITY_MODE.GSD, - text: props.translate('priorityModePage.focus'), - alternateText: props.translate('priorityModePage.focusModeDescription'), - }, - ], mode => ( - { - ...mode, - keyForList: mode.value, + const priorityModes = _.map(props.translate('priorityModePage.priorityModes'), (mode, key) => ( + { + value: key, + text: mode.label, + alternateText: mode.description, + keyForList: key, - // Include the green checkmark icon to indicate the currently selected value - customIcon: props.priorityMode === mode.value ? greenCheckmark : undefined, + // Include the green checkmark icon to indicate the currently selected value + customIcon: props.priorityMode === key ? greenCheckmark : undefined, - // This property will make the currently selected value have bold text - boldStyle: props.priorityMode === mode.value, - } - ), + // This property will make the currently selected value have bold text + boldStyle: props.priorityMode === key, + } + ), ); return ( @@ -61,20 +51,14 @@ const PriorityModePage = (props) => { { - User.updateChatPriorityMode(mode.value); - Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); - } - } + onSelectRow={(mode) => User.updateChatPriorityMode(mode.value)} hideSectionHeaders optionHoveredStyle={ { ...styles.hoveredComponentBG, ...styles.mln5, ...styles.mrn5, - ...styles.pl5, - ...styles.pr5, + ...styles.ph5, } } shouldHaveOptionSeparator From 8bf1fb21236b20d7f823f2574d66089d32296212 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Tue, 31 Jan 2023 19:05:18 +0200 Subject: [PATCH 33/40] More improvements after code review --- src/components/LocalePicker.js | 4 +-- src/languages/en.js | 8 ++++-- src/languages/es.js | 8 ++++-- .../settings/Preferences/LanguagePage.js | 25 ++++++----------- .../settings/Preferences/PreferencesPage.js | 19 +++---------- .../settings/Preferences/PriorityModePage.js | 27 ++++++++++--------- 6 files changed, 40 insertions(+), 51 deletions(-) diff --git a/src/components/LocalePicker.js b/src/components/LocalePicker.js index 891b266bc8ac..2e4c429197e6 100644 --- a/src/components/LocalePicker.js +++ b/src/components/LocalePicker.js @@ -34,11 +34,11 @@ const defaultProps = { const localesToLanguages = { default: { value: 'en', - label: Localize.translate('en', 'languagePage.languages.english'), + label: Localize.translate('en', 'languagePage.languages.en.label'), }, es: { value: 'es', - label: Localize.translate('es', 'languagePage.languages.spanish'), + label: Localize.translate('es', 'languagePage.languages.es.label'), }, }; diff --git a/src/languages/en.js b/src/languages/en.js index ad9658964091..5f2693636da0 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -507,8 +507,12 @@ export default { languagePage: { language: 'Language', languages: { - english: 'English', - spanish: 'Spanish', + en: { + label: 'English', + }, + es: { + label: 'Spanish', + }, }, }, signInPage: { diff --git a/src/languages/es.js b/src/languages/es.js index 93cb5dc78d47..f07f7961a30c 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -507,8 +507,12 @@ export default { languagePage: { language: 'Idioma', languages: { - english: 'Inglés', - spanish: 'Español', + en: { + label: 'Inglés', + }, + es: { + label: 'Español', + }, }, }, signInPage: { diff --git a/src/pages/settings/Preferences/LanguagePage.js b/src/pages/settings/Preferences/LanguagePage.js index f7d055b3dc2b..8b9f1218cc5b 100644 --- a/src/pages/settings/Preferences/LanguagePage.js +++ b/src/pages/settings/Preferences/LanguagePage.js @@ -19,26 +19,18 @@ const propTypes = { }; const LanguagePage = (props) => { - const localesToLanguages = _.map( - [ + const localesToLanguages = _.map(props.translate('languagePage.languages'), + (language, key) => ( { - value: 'en', - text: props.translate('languagePage.languages.english'), - }, - { - value: 'es', - text: props.translate('languagePage.languages.spanish'), - }, - ], language => ( - { - ...language, - keyForList: language.value, + value: key, + text: language.label, + keyForList: key, // Include the green checkmark icon to indicate the currently selected value - customIcon: props.preferredLocale === language.value ? greenCheckmark : undefined, + customIcon: props.preferredLocale === key ? greenCheckmark : undefined, // This property will make the currently selected value have bold text - boldStyle: props.preferredLocale === language.value, + boldStyle: props.preferredLocale === key, } ), ); @@ -67,8 +59,7 @@ const LanguagePage = (props) => { ...styles.hoveredComponentBG, ...styles.mln5, ...styles.mrn5, - ...styles.pl5, - ...styles.pr5, + ...styles.ph5, } } shouldHaveOptionSeparator diff --git a/src/pages/settings/Preferences/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js index 6028c1e02a68..cc88d86cd46c 100755 --- a/src/pages/settings/Preferences/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -14,7 +14,7 @@ import CONST from '../../../CONST'; import * as User from '../../../libs/actions/User'; import ScreenWrapper from '../../../components/ScreenWrapper'; import Switch from '../../../components/Switch'; -import withLocalize, {withLocalizePropTypes} from '../../../components/withLocalize'; +import withLocalize, {withLocalizePropTypes, localeProviderDefaultProps} from '../../../components/withLocalize'; import compose from '../../../libs/compose'; import withEnvironment, {environmentPropTypes} from '../../../components/withEnvironment'; import TestToolMenu from '../../../components/TestToolMenu'; @@ -31,6 +31,7 @@ const propTypes = { }), ...withLocalizePropTypes, + ...localeProviderDefaultProps, ...environmentPropTypes, }; @@ -41,16 +42,7 @@ const defaultProps = { const PreferencesPage = (props) => { const priorityModes = props.translate('priorityModePage.priorityModes'); - const localesToLanguages = { - en: { - value: 'en', - label: props.translate('languagePage.languages.english'), - }, - es: { - value: 'es', - label: props.translate('languagePage.languages.spanish'), - }, - }; + const languages = props.translate('languagePage.languages'); return ( @@ -86,7 +78,7 @@ const PreferencesPage = (props) => { /> Navigation.navigate(ROUTES.SETTINGS_LANGUAGES)} /> @@ -117,9 +109,6 @@ export default compose( priorityMode: { key: ONYXKEYS.NVP_PRIORITY_MODE, }, - preferredLocale: { - key: ONYXKEYS.NVP_PREFERRED_LOCALE, - }, user: { key: ONYXKEYS.USER, }, diff --git a/src/pages/settings/Preferences/PriorityModePage.js b/src/pages/settings/Preferences/PriorityModePage.js index 315484400bf0..0d636f6f4fb9 100644 --- a/src/pages/settings/Preferences/PriorityModePage.js +++ b/src/pages/settings/Preferences/PriorityModePage.js @@ -22,20 +22,21 @@ const propTypes = { }; const PriorityModePage = (props) => { - const priorityModes = _.map(props.translate('priorityModePage.priorityModes'), (mode, key) => ( - { - value: key, - text: mode.label, - alternateText: mode.description, - keyForList: key, + const priorityModes = _.map(props.translate('priorityModePage.priorityModes'), + (mode, key) => ( + { + value: key, + text: mode.label, + alternateText: mode.description, + keyForList: key, - // Include the green checkmark icon to indicate the currently selected value - customIcon: props.priorityMode === key ? greenCheckmark : undefined, + // Include the green checkmark icon to indicate the currently selected value + customIcon: props.priorityMode === key ? greenCheckmark : undefined, - // This property will make the currently selected value have bold text - boldStyle: props.priorityMode === key, - } - ), + // This property will make the currently selected value have bold text + boldStyle: props.priorityMode === key, + } + ), ); return ( @@ -46,7 +47,7 @@ const PriorityModePage = (props) => { onBackButtonPress={() => Navigation.navigate(ROUTES.SETTINGS_PREFERENCES)} onCloseButtonPress={() => Navigation.dismissModal(true)} /> - + {props.translate('priorityModePage.explainerText')} Date: Tue, 31 Jan 2023 19:16:52 +0200 Subject: [PATCH 34/40] Fix lint errors --- src/components/withLocalize.js | 1 + src/languages/en.js | 2 +- src/languages/es.js | 2 +- src/pages/settings/Preferences/LanguagePage.js | 9 +++------ src/pages/settings/Preferences/PriorityModePage.js | 6 ++---- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/components/withLocalize.js b/src/components/withLocalize.js index a188e413ddf6..9445ee79d1c9 100755 --- a/src/components/withLocalize.js +++ b/src/components/withLocalize.js @@ -195,5 +195,6 @@ export default function withLocalize(WrappedComponent) { export { withLocalizePropTypes, + localeProviderPropTypes, Provider as LocaleContextProvider, }; diff --git a/src/languages/en.js b/src/languages/en.js index 5f2693636da0..485db5746600 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -493,7 +493,7 @@ export default { priorityModePage: { priorityMode: 'Priority mode', explainerText: 'Choose whether to show all chats by default sorted with most recent with pinned items at the top, or #focus on unread pinned items, sorted alphabetically.', - priorityModes : { + priorityModes: { default: { label: 'Most recent', description: 'Show all chats sorted by most recent', diff --git a/src/languages/es.js b/src/languages/es.js index f07f7961a30c..c4b3d03781ba 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -493,7 +493,7 @@ export default { priorityModePage: { priorityMode: 'Modo prioridad', explainerText: 'Elija si desea mostrar por defecto todos los chats ordenados desde el más reciente y con los elementos anclados en la parte superior, o elija el modo #concentración, con los elementos no leídos anclados en la parte superior y ordenados alfabéticamente.', - priorityModes : { + priorityModes: { default: { label: 'Más recientes', description: 'Mostrar todos los chats ordenados desde el más reciente', diff --git a/src/pages/settings/Preferences/LanguagePage.js b/src/pages/settings/Preferences/LanguagePage.js index 8b9f1218cc5b..11230f556d2a 100644 --- a/src/pages/settings/Preferences/LanguagePage.js +++ b/src/pages/settings/Preferences/LanguagePage.js @@ -1,4 +1,4 @@ -import _, {compose} from 'underscore'; +import _ from 'underscore'; import React from 'react'; import HeaderWithCloseButton from '../../../components/HeaderWithCloseButton'; import ScreenWrapper from '../../../components/ScreenWrapper'; @@ -32,8 +32,7 @@ const LanguagePage = (props) => { // This property will make the currently selected value have bold text boldStyle: props.preferredLocale === key, } - ), - ); + )); return ( @@ -73,6 +72,4 @@ const LanguagePage = (props) => { LanguagePage.displayName = 'LanguagePage'; LanguagePage.propTypes = propTypes; -export default compose( - withLocalize, -)(LanguagePage); +export default withLocalize(LanguagePage); diff --git a/src/pages/settings/Preferences/PriorityModePage.js b/src/pages/settings/Preferences/PriorityModePage.js index 0d636f6f4fb9..e3a97fff96f1 100644 --- a/src/pages/settings/Preferences/PriorityModePage.js +++ b/src/pages/settings/Preferences/PriorityModePage.js @@ -6,7 +6,6 @@ import ScreenWrapper from '../../../components/ScreenWrapper'; import withLocalize, {withLocalizePropTypes} from '../../../components/withLocalize'; import Navigation from '../../../libs/Navigation/Navigation'; import ROUTES from '../../../ROUTES'; -import CONST from '../../../CONST'; import OptionsList from '../../../components/OptionsList'; import styles from '../../../styles/styles'; import Text from '../../../components/Text'; @@ -36,8 +35,7 @@ const PriorityModePage = (props) => { // This property will make the currently selected value have bold text boldStyle: props.priorityMode === key, } - ), - ); + )); return ( @@ -52,7 +50,7 @@ const PriorityModePage = (props) => { User.updateChatPriorityMode(mode.value)} + onSelectRow={mode => User.updateChatPriorityMode(mode.value)} hideSectionHeaders optionHoveredStyle={ { From de3fa9fc0fec3bfbadec52b680144b65f2d7b9d6 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Tue, 31 Jan 2023 19:22:04 +0200 Subject: [PATCH 35/40] c'mon linter! --- src/pages/settings/Preferences/PreferencesPage.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/settings/Preferences/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js index cc88d86cd46c..2e27dad6117e 100755 --- a/src/pages/settings/Preferences/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -14,7 +14,7 @@ import CONST from '../../../CONST'; import * as User from '../../../libs/actions/User'; import ScreenWrapper from '../../../components/ScreenWrapper'; import Switch from '../../../components/Switch'; -import withLocalize, {withLocalizePropTypes, localeProviderDefaultProps} from '../../../components/withLocalize'; +import withLocalize, {withLocalizePropTypes, localeProviderPropTypes} from '../../../components/withLocalize'; import compose from '../../../libs/compose'; import withEnvironment, {environmentPropTypes} from '../../../components/withEnvironment'; import TestToolMenu from '../../../components/TestToolMenu'; @@ -31,7 +31,7 @@ const propTypes = { }), ...withLocalizePropTypes, - ...localeProviderDefaultProps, + ...localeProviderPropTypes, ...environmentPropTypes, }; From 6d1c6708ad59274ab5af3198426a3b6a9495b3b7 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Fri, 3 Feb 2023 15:58:21 +0200 Subject: [PATCH 36/40] Singular names for routes to language and priority mode --- src/ROUTES.js | 4 ++-- src/libs/Navigation/linkingConfig.js | 4 ++-- src/pages/settings/Preferences/PreferencesPage.js | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/ROUTES.js b/src/ROUTES.js index df9fbdf8d56e..b7c1e537bc90 100644 --- a/src/ROUTES.js +++ b/src/ROUTES.js @@ -27,8 +27,8 @@ export default { SETTINGS_TIMEZONE_SELECT: 'settings/profile/timezone/select', SETTINGS_PRONOUNS: 'settings/profile/pronouns', SETTINGS_PREFERENCES: 'settings/preferences', - SETTINGS_PRIORITY_MODES: 'settings/preferences/priority-modes', - SETTINGS_LANGUAGES: 'settings/preferences/languages', + SETTINGS_PRIORITY_MODE: 'settings/preferences/priority-mode', + SETTINGS_LANGUAGE: 'settings/preferences/language', SETTINGS_WORKSPACES: 'settings/workspaces', SETTINGS_SECURITY: 'settings/security', SETTINGS_CLOSE: 'settings/security/closeAccount', diff --git a/src/libs/Navigation/linkingConfig.js b/src/libs/Navigation/linkingConfig.js index 88a4619b6eb9..4b5b9c168bbf 100644 --- a/src/libs/Navigation/linkingConfig.js +++ b/src/libs/Navigation/linkingConfig.js @@ -45,11 +45,11 @@ export default { exact: true, }, Settings_Preferences_PriorityMode: { - path: ROUTES.SETTINGS_PRIORITY_MODES, + path: ROUTES.SETTINGS_PRIORITY_MODE, exact: true, }, Settings_Preferences_Language: { - path: ROUTES.SETTINGS_LANGUAGES, + path: ROUTES.SETTINGS_LANGUAGE, exact: true, }, Settings_Close: { diff --git a/src/pages/settings/Preferences/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js index 2e27dad6117e..207f88ab9a58 100755 --- a/src/pages/settings/Preferences/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -74,13 +74,13 @@ const PreferencesPage = (props) => { shouldShowRightIcon title={priorityModes[props.priorityMode].label} description={props.translate('priorityModePage.priorityMode')} - onPress={() => Navigation.navigate(ROUTES.SETTINGS_PRIORITY_MODES)} + onPress={() => Navigation.navigate(ROUTES.SETTINGS_PRIORITY_MODE)} /> Navigation.navigate(ROUTES.SETTINGS_LANGUAGES)} + onPress={() => Navigation.navigate(ROUTES.SETTINGS_LANGUAGE)} /> {/* If we are in the staging environment then we enable additional test features */} From 77f321d7ee8504285578d1b69894dfc80278256f Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Fri, 3 Feb 2023 16:24:44 +0200 Subject: [PATCH 37/40] Address more feedback. --- src/components/OptionRow.js | 6 +++--- src/components/OptionsList/BaseOptionsList.js | 2 +- src/pages/settings/Preferences/PreferencesPage.js | 4 ++-- src/styles/utilities/spacing.js | 4 ++++ 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/components/OptionRow.js b/src/components/OptionRow.js index 78f982971697..2e7654ce9082 100644 --- a/src/components/OptionRow.js +++ b/src/components/OptionRow.js @@ -58,7 +58,7 @@ const propTypes = { shouldHaveOptionSeparator: PropTypes.bool, /** Whether to remove the lateral padding and align the content with the margins */ - disableInnerPadding: PropTypes.bool, + disableRowInnerPadding: PropTypes.bool, style: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]), @@ -76,7 +76,7 @@ const defaultProps = { optionIsFocused: false, style: null, shouldHaveOptionSeparator: false, - disableInnerPadding: false, + disableRowInnerPadding: false, }; const OptionRow = (props) => { @@ -134,7 +134,7 @@ const OptionRow = (props) => { styles.alignItemsCenter, styles.justifyContentBetween, styles.sidebarLink, - props.disableInnerPadding ? null : styles.sidebarLinkInner, + props.disableRowInnerPadding ? null : styles.sidebarLinkInner, props.optionIsFocused ? styles.sidebarLinkActive : null, hovered && !props.optionIsFocused ? props.hoverStyle : null, props.isDisabled && styles.cursorDisabled, diff --git a/src/components/OptionsList/BaseOptionsList.js b/src/components/OptionsList/BaseOptionsList.js index 72ae9e53d5ab..ad07b2042995 100644 --- a/src/components/OptionsList/BaseOptionsList.js +++ b/src/components/OptionsList/BaseOptionsList.js @@ -167,7 +167,7 @@ class BaseOptionsList extends Component { boldStyle={this.props.boldStyle} isDisabled={this.props.isDisabled || section.isDisabled} shouldHaveOptionSeparator={index > 0 && this.props.shouldHaveOptionSeparator} - disableInnerPadding={this.props.disableRowInnerPadding} + disableRowInnerPadding={this.props.disableRowInnerPadding} /> ); } diff --git a/src/pages/settings/Preferences/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js index 207f88ab9a58..ff9c0f467b0b 100755 --- a/src/pages/settings/Preferences/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -57,7 +57,7 @@ const PreferencesPage = (props) => { {props.translate('common.notifications')} - + {props.translate('preferencesPage.receiveRelevantFeatureUpdatesAndExpensifyNews')} @@ -87,7 +87,7 @@ const PreferencesPage = (props) => { { _.contains([CONST.ENVIRONMENT.STAGING, CONST.ENVIRONMENT.DEV], props.environment) && ( - + ) diff --git a/src/styles/utilities/spacing.js b/src/styles/utilities/spacing.js index bc3410ee1bbe..9883719a1309 100644 --- a/src/styles/utilities/spacing.js +++ b/src/styles/utilities/spacing.js @@ -45,6 +45,10 @@ export default { marginHorizontal: 20, }, + mh8: { + marginHorizontal: 32, + }, + mv1: { marginVertical: 4, }, From 4c940c62fd405765a7ef46da3b2e171ab881f3e1 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Fri, 3 Feb 2023 18:56:51 +0200 Subject: [PATCH 38/40] Suggested improvements. --- src/components/withLocalize.js | 1 - src/pages/settings/Preferences/LanguagePage.js | 10 ++++++---- src/pages/settings/Preferences/PreferencesPage.js | 6 ++++-- src/pages/settings/Preferences/PriorityModePage.js | 3 +-- src/styles/utilities/spacing.js | 4 ++++ 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/components/withLocalize.js b/src/components/withLocalize.js index 9445ee79d1c9..a188e413ddf6 100755 --- a/src/components/withLocalize.js +++ b/src/components/withLocalize.js @@ -195,6 +195,5 @@ export default function withLocalize(WrappedComponent) { export { withLocalizePropTypes, - localeProviderPropTypes, Provider as LocaleContextProvider, }; diff --git a/src/pages/settings/Preferences/LanguagePage.js b/src/pages/settings/Preferences/LanguagePage.js index 11230f556d2a..34bd799dbd4e 100644 --- a/src/pages/settings/Preferences/LanguagePage.js +++ b/src/pages/settings/Preferences/LanguagePage.js @@ -1,8 +1,9 @@ import _ from 'underscore'; import React from 'react'; +import PropTypes from 'prop-types'; import HeaderWithCloseButton from '../../../components/HeaderWithCloseButton'; import ScreenWrapper from '../../../components/ScreenWrapper'; -import withLocalize, {withLocalizePropTypes, localeProviderPropTypes} from '../../../components/withLocalize'; +import withLocalize, {withLocalizePropTypes} from '../../../components/withLocalize'; import Navigation from '../../../libs/Navigation/Navigation'; import ROUTES from '../../../ROUTES'; import OptionsList from '../../../components/OptionsList'; @@ -15,7 +16,9 @@ const greenCheckmark = {src: Expensicons.Checkmark, color: themeColors.success}; const propTypes = { ...withLocalizePropTypes, - ...localeProviderPropTypes, + + /** The preferred language of the App */ + preferredLocale: PropTypes.string.isRequired, }; const LanguagePage = (props) => { @@ -56,8 +59,7 @@ const LanguagePage = (props) => { optionHoveredStyle={ { ...styles.hoveredComponentBG, - ...styles.mln5, - ...styles.mrn5, + ...styles.mhn5, ...styles.ph5, } } diff --git a/src/pages/settings/Preferences/PreferencesPage.js b/src/pages/settings/Preferences/PreferencesPage.js index ff9c0f467b0b..3260fda5e5ca 100755 --- a/src/pages/settings/Preferences/PreferencesPage.js +++ b/src/pages/settings/Preferences/PreferencesPage.js @@ -14,7 +14,7 @@ import CONST from '../../../CONST'; import * as User from '../../../libs/actions/User'; import ScreenWrapper from '../../../components/ScreenWrapper'; import Switch from '../../../components/Switch'; -import withLocalize, {withLocalizePropTypes, localeProviderPropTypes} from '../../../components/withLocalize'; +import withLocalize, {withLocalizePropTypes} from '../../../components/withLocalize'; import compose from '../../../libs/compose'; import withEnvironment, {environmentPropTypes} from '../../../components/withEnvironment'; import TestToolMenu from '../../../components/TestToolMenu'; @@ -30,8 +30,10 @@ const propTypes = { isSubscribedToNewsletter: PropTypes.bool, }), + /** The preferred language of the App */ + preferredLocale: PropTypes.string.isRequired, + ...withLocalizePropTypes, - ...localeProviderPropTypes, ...environmentPropTypes, }; diff --git a/src/pages/settings/Preferences/PriorityModePage.js b/src/pages/settings/Preferences/PriorityModePage.js index e3a97fff96f1..d2ef569b4edc 100644 --- a/src/pages/settings/Preferences/PriorityModePage.js +++ b/src/pages/settings/Preferences/PriorityModePage.js @@ -55,8 +55,7 @@ const PriorityModePage = (props) => { optionHoveredStyle={ { ...styles.hoveredComponentBG, - ...styles.mln5, - ...styles.mrn5, + ...styles.mhn5, ...styles.ph5, } } diff --git a/src/styles/utilities/spacing.js b/src/styles/utilities/spacing.js index 4e1e89d41b74..08259eaf77e9 100644 --- a/src/styles/utilities/spacing.js +++ b/src/styles/utilities/spacing.js @@ -49,6 +49,10 @@ export default { marginHorizontal: 32, }, + mhn5: { + marginHorizontal: -20, + }, + mv1: { marginVertical: 4, }, From b7bebb2350b1f8c9b77f5633da1ad4b91ecb6529 Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Fri, 3 Feb 2023 19:00:31 +0200 Subject: [PATCH 39/40] Oh yea, Linter again.. --- src/pages/settings/Preferences/LanguagePage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/settings/Preferences/LanguagePage.js b/src/pages/settings/Preferences/LanguagePage.js index 34bd799dbd4e..a6a788f54d3e 100644 --- a/src/pages/settings/Preferences/LanguagePage.js +++ b/src/pages/settings/Preferences/LanguagePage.js @@ -16,7 +16,7 @@ const greenCheckmark = {src: Expensicons.Checkmark, color: themeColors.success}; const propTypes = { ...withLocalizePropTypes, - + /** The preferred language of the App */ preferredLocale: PropTypes.string.isRequired, }; From 33f2f497f85252a274b3e8e3784e96015d6fc0aa Mon Sep 17 00:00:00 2001 From: Cristi Paval Date: Sat, 4 Feb 2023 08:33:27 +0200 Subject: [PATCH 40/40] Fix prop naming. --- src/components/OptionRow.js | 6 +++--- src/components/OptionsList/BaseOptionsList.js | 2 +- src/components/OptionsList/optionsListPropTypes.js | 4 ++-- src/pages/settings/Preferences/LanguagePage.js | 2 +- src/pages/settings/Preferences/PriorityModePage.js | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/components/OptionRow.js b/src/components/OptionRow.js index 8e94b2178def..d5933003dda9 100644 --- a/src/components/OptionRow.js +++ b/src/components/OptionRow.js @@ -59,7 +59,7 @@ const propTypes = { shouldHaveOptionSeparator: PropTypes.bool, /** Whether to remove the lateral padding and align the content with the margins */ - disableRowInnerPadding: PropTypes.bool, + shouldDisableRowInnerPadding: PropTypes.bool, style: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]), @@ -77,7 +77,7 @@ const defaultProps = { optionIsFocused: false, style: null, shouldHaveOptionSeparator: false, - disableRowInnerPadding: false, + shouldDisableRowInnerPadding: false, }; class OptionRow extends Component { @@ -176,7 +176,7 @@ class OptionRow extends Component { styles.alignItemsCenter, styles.justifyContentBetween, styles.sidebarLink, - this.props.disableRowInnerPadding ? null : styles.sidebarLinkInner, + this.props.shouldDisableRowInnerPadding ? null : styles.sidebarLinkInner, this.props.optionIsFocused ? styles.sidebarLinkActive : null, hovered && !this.props.optionIsFocused ? this.props.hoverStyle : null, this.props.isDisabled && styles.cursorDisabled, diff --git a/src/components/OptionsList/BaseOptionsList.js b/src/components/OptionsList/BaseOptionsList.js index 19bec41e8377..38f0d7c9be3f 100644 --- a/src/components/OptionsList/BaseOptionsList.js +++ b/src/components/OptionsList/BaseOptionsList.js @@ -172,7 +172,7 @@ class BaseOptionsList extends Component { boldStyle={this.props.boldStyle} isDisabled={isDisabled} shouldHaveOptionSeparator={index > 0 && this.props.shouldHaveOptionSeparator} - disableRowInnerPadding={this.props.disableRowInnerPadding} + shouldDisableRowInnerPadding={this.props.shouldDisableRowInnerPadding} /> ); } diff --git a/src/components/OptionsList/optionsListPropTypes.js b/src/components/OptionsList/optionsListPropTypes.js index 2b56ef061087..91aaa5988d57 100644 --- a/src/components/OptionsList/optionsListPropTypes.js +++ b/src/components/OptionsList/optionsListPropTypes.js @@ -72,7 +72,7 @@ const propTypes = { shouldHaveOptionSeparator: PropTypes.bool, /** Whether to disable the inner padding in rows */ - disableRowInnerPadding: PropTypes.bool, + shouldDisableRowInnerPadding: PropTypes.bool, }; const defaultProps = { @@ -93,7 +93,7 @@ const defaultProps = { isDisabled: false, onLayout: undefined, shouldHaveOptionSeparator: false, - disableRowInnerPadding: false, + shouldDisableRowInnerPadding: false, }; export {propTypes, defaultProps}; diff --git a/src/pages/settings/Preferences/LanguagePage.js b/src/pages/settings/Preferences/LanguagePage.js index a6a788f54d3e..92d16b2f9190 100644 --- a/src/pages/settings/Preferences/LanguagePage.js +++ b/src/pages/settings/Preferences/LanguagePage.js @@ -64,7 +64,7 @@ const LanguagePage = (props) => { } } shouldHaveOptionSeparator - disableRowInnerPadding + shouldDisableRowInnerPadding contentContainerStyles={[styles.ph5]} /> diff --git a/src/pages/settings/Preferences/PriorityModePage.js b/src/pages/settings/Preferences/PriorityModePage.js index d2ef569b4edc..16af2569b824 100644 --- a/src/pages/settings/Preferences/PriorityModePage.js +++ b/src/pages/settings/Preferences/PriorityModePage.js @@ -60,7 +60,7 @@ const PriorityModePage = (props) => { } } shouldHaveOptionSeparator - disableRowInnerPadding + shouldDisableRowInnerPadding contentContainerStyles={[styles.ph5]} />