From d2cee77d80b741217567f6b3f919de8ef312a44e Mon Sep 17 00:00:00 2001 From: FitseTLT Date: Fri, 24 Oct 2025 18:12:22 +0300 Subject: [PATCH 1/9] implemented contact methods page changes --- src/languages/de.ts | 8 ++++---- src/languages/en.ts | 8 ++++---- src/languages/es.ts | 8 ++++---- src/languages/fr.ts | 8 ++++---- src/languages/it.ts | 8 ++++---- src/languages/ja.ts | 8 ++++---- src/languages/nl.ts | 8 ++++---- src/languages/pl.ts | 8 ++++---- src/languages/pt-BR.ts | 8 ++++---- src/languages/zh-hans.ts | 8 ++++---- src/libs/UserUtils.ts | 8 ++++---- .../Profile/Contacts/ContactMethodsPage.tsx | 1 + src/pages/settings/Profile/ProfilePage.tsx | 15 ++++++++++----- 13 files changed, 55 insertions(+), 49 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 6f7a92cbced1..ba684cf7f16b 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -1585,14 +1585,14 @@ const translations = { placeholderText: 'Suchen, um Optionen zu sehen', }, contacts: { - contactMethod: 'Kontaktmethode', contactMethods: 'Kontaktmethoden', featureRequiresValidate: 'Diese Funktion erfordert, dass Sie Ihr Konto verifizieren.', validateAccount: 'Bestätigen Sie Ihr Konto', - helpTextBeforeEmail: 'Fügen Sie weitere Möglichkeiten hinzu, Belege zu senden. Leiten Sie sie weiter an', - helpTextAfterEmail: 'oder senden Sie ihnen eine SMS an 47777 (nur US-Nummern).', + helpTextBeforeEmail: 'Fügen Sie weitere Möglichkeiten hinzu, sich anzumelden und Belege an Expensify zu senden.\n\nFügen Sie eine E-Mail-Adresse hinzu, um Belege weiterzuleiten an ', + helpTextAfterEmail: 'oder fügen Sie eine Telefonnummer hinzu, um Belege per SMS an 47777 zu senden (nur US-Nummern).', + primary: 'Primär', + secondary: 'Sekundär', pleaseVerify: 'Bitte überprüfen Sie diese Kontaktmethode', - getInTouch: 'Wann immer wir mit Ihnen in Kontakt treten müssen, werden wir diese Kontaktmethode verwenden.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Bitte geben Sie den magischen Code ein, der an ${contactMethod} gesendet wurde. Er sollte in ein bis zwei Minuten ankommen.`, setAsDefault: 'Als Standard festlegen', diff --git a/src/languages/en.ts b/src/languages/en.ts index 3de3bcca6638..1e048e2d465f 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -1569,14 +1569,14 @@ const translations = { placeholderText: 'Search to see options', }, contacts: { - contactMethod: 'Contact method', contactMethods: 'Contact methods', featureRequiresValidate: 'This feature requires you to validate your account.', validateAccount: 'Validate your account', - helpTextBeforeEmail: 'Add more ways to send receipts. Forward them to ', - helpTextAfterEmail: ' or text them to 47777 (US numbers only).', + helpTextBeforeEmail: 'Add more ways to log in and send receipts to Expensify. \n\nAdd an email address to forward receipts to ', + helpTextAfterEmail: 'or add a phone number to text receipts to 47777 (US numbers only).', + primary: 'Primary', + secondary: 'Secondary', pleaseVerify: 'Please verify this contact method', - getInTouch: "Whenever we need to get in touch with you, we'll use this contact method.", enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Please enter the magic code sent to ${contactMethod}. It should arrive within a minute or two.`, setAsDefault: 'Set as default', yourDefaultContactMethod: "This is your current default contact method. Before you can delete it, you'll need to choose another contact method and click “Set as default”.", diff --git a/src/languages/es.ts b/src/languages/es.ts index f9c8187b8260..b282e857f4bc 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -1560,14 +1560,14 @@ const translations = { placeholderText: 'Buscar para ver opciones', }, contacts: { - contactMethod: 'Método de contacto', contactMethods: 'Métodos de contacto', featureRequiresValidate: 'Esta función requiere que valides tu cuenta.', validateAccount: 'Valida tu cuenta', - helpTextBeforeEmail: 'Añade más formas de enviar recibos. Reenvíalos a ', - helpTextAfterEmail: ' o envíalos por mensaje de texto al 47777 (solo números de EE. UU.).', + helpTextBeforeEmail: 'Agrega más formas de iniciar sesión y enviar recibos a Expensify.\n\nAgrega una dirección de correo electrónico para reenviar recibos a ', + helpTextAfterEmail: 'o agrega un número de teléfono para enviar recibos por mensaje de texto al 47777 (solo números de EE. UU.).', + primary: 'Principal', + secondary: 'Secundario', pleaseVerify: 'Por favor, verifica este método de contacto', - getInTouch: 'Utilizaremos este método de contacto cuando necesitemos contactarte.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Por favor, introduce el código mágico enviado a ${contactMethod}. Debería llegar en un par de minutos.`, setAsDefault: 'Establecer como predeterminado', yourDefaultContactMethod: diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 66de933fcc9b..5e6ae44c7f8e 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -1583,14 +1583,14 @@ const translations = { placeholderText: 'Recherchez pour voir les options', }, contacts: { - contactMethod: 'Méthode de contact', contactMethods: 'Méthodes de contact', featureRequiresValidate: 'Cette fonctionnalité nécessite que vous validiez votre compte.', validateAccount: 'Validez votre compte', - helpTextBeforeEmail: 'Ajoutez plus de moyens pour envoyer des reçus. Transférez-les à', - helpTextAfterEmail: 'ou envoyez-les par SMS au 47777 (numéros américains uniquement).', + helpTextBeforeEmail: 'Ajoutez d’autres façons de vous connecter et d’envoyer des reçus à Expensify.\n\nAjoutez une adresse e-mail pour transférer les reçus à ', + helpTextAfterEmail: 'ou ajoutez un numéro de téléphone pour envoyer des reçus par SMS au 47777 (numéros américains uniquement).', + primary: 'Principal', + secondary: 'Secondaire', pleaseVerify: 'Veuillez vérifier cette méthode de contact', - getInTouch: 'Chaque fois que nous devons vous contacter, nous utiliserons cette méthode de contact.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Veuillez entrer le code magique envoyé à ${contactMethod}. Il devrait arriver dans une minute ou deux.`, setAsDefault: 'Définir par défaut', yourDefaultContactMethod: diff --git a/src/languages/it.ts b/src/languages/it.ts index 5c3bb00472a9..58975a6f0a91 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -1576,14 +1576,14 @@ const translations = { placeholderText: 'Cerca per vedere le opzioni', }, contacts: { - contactMethod: 'Metodo di contatto', contactMethods: 'Metodi di contatto', featureRequiresValidate: 'Questa funzione richiede di convalidare il tuo account.', validateAccount: 'Convalida il tuo account', - helpTextBeforeEmail: 'Aggiungi più modi per inviare le ricevute. Inoltrale a', - helpTextAfterEmail: 'o inviarli al 47777 (solo numeri USA).', + helpTextBeforeEmail: 'Aggiungi altri modi per accedere e inviare ricevute a Expensify.\n\nAggiungi un indirizzo email per inoltrare le ricevute a ', + helpTextAfterEmail: 'oppure aggiungi un numero di telefono per inviare ricevute tramite SMS al 47777 (solo numeri statunitensi).', + primary: 'Primario', + secondary: 'Secondario', pleaseVerify: 'Si prega di verificare questo metodo di contatto', - getInTouch: 'Ogni volta che avremo bisogno di contattarti, useremo questo metodo di contatto.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Per favore, inserisci il codice magico inviato a ${contactMethod}. Dovrebbe arrivare entro un minuto o due.`, setAsDefault: 'Imposta come predefinito', yourDefaultContactMethod: diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 92209a0ae6a7..9b760ef8cb49 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -1578,14 +1578,14 @@ const translations = { placeholderText: 'オプションを表示するために検索', }, contacts: { - contactMethod: '連絡方法', contactMethods: '連絡方法', featureRequiresValidate: 'この機能を使用するには、アカウントの確認が必要です。', validateAccount: 'アカウントを確認してください', - helpTextBeforeEmail: '領収書を送信する方法を追加してください。それらを転送する先は', - helpTextAfterEmail: 'または、47777(米国の番号のみ)にテキストメッセージを送信してください。', + helpTextBeforeEmail: 'Expensify にログインしたり、領収書を送信したりする方法を追加できます。\n\n領収書を転送するメールアドレスを追加してください:', + helpTextAfterEmail: 'または、電話番号を追加して領収書を 47777 にテキストで送信します(米国の番号のみ)。', + primary: 'プライマリ', + secondary: 'セカンダリ', pleaseVerify: 'この連絡方法を確認してください', - getInTouch: '私たちがあなたに連絡を取る必要がある場合、この連絡方法を使用します。', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `${contactMethod}に送信されたマジックコードを入力してください。1~2分以内に届くはずです。`, setAsDefault: 'デフォルトに設定', yourDefaultContactMethod: 'これは現在のデフォルトの連絡方法です。削除する前に、別の連絡方法を選択し、「デフォルトに設定」をクリックする必要があります。', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 195e602a97c2..80169b2659e8 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -1578,14 +1578,14 @@ const translations = { placeholderText: 'Zoek om opties te zien', }, contacts: { - contactMethod: 'Contactmethode', contactMethods: 'Contactmethoden', featureRequiresValidate: 'Deze functie vereist dat je je account verifieert.', validateAccount: 'Valideer uw account', - helpTextBeforeEmail: 'Voeg meer manieren toe om bonnen te verzenden. Stuur ze naar', - helpTextAfterEmail: 'of stuur ze naar 47777 (alleen Amerikaanse nummers).', + helpTextBeforeEmail: 'Voeg meer manieren toe om in te loggen en bonnetjes naar Expensify te sturen.\n\nVoeg een e-mailadres toe om bonnetjes door te sturen naar ', + helpTextAfterEmail: 'of voeg een telefoonnummer toe om bonnetjes te sms’en naar 47777 (alleen Amerikaanse nummers).', + primary: 'Primair', + secondary: 'Secundair', pleaseVerify: 'Verifieer deze contactmethode alstublieft', - getInTouch: 'Telkens wanneer we contact met je moeten opnemen, gebruiken we deze contactmethode.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Voer de magische code in die is verzonden naar ${contactMethod}. Het zou binnen een minuut of twee moeten aankomen.`, setAsDefault: 'Instellen als standaard', yourDefaultContactMethod: diff --git a/src/languages/pl.ts b/src/languages/pl.ts index fc3933743a0c..ca6df4a40866 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -1576,14 +1576,14 @@ const translations = { placeholderText: 'Wyszukaj, aby zobaczyć opcje', }, contacts: { - contactMethod: 'Metoda kontaktu', contactMethods: 'Metody kontaktu', featureRequiresValidate: 'Ta funkcja wymaga weryfikacji konta.', validateAccount: 'Zweryfikuj swoje konto', - helpTextBeforeEmail: 'Dodaj więcej sposobów na przesyłanie paragonów. Prześlij je do', - helpTextAfterEmail: 'lub wyślij SMS na numer 47777 (tylko numery w USA).', + helpTextBeforeEmail: 'Dodaj więcej sposobów logowania się i wysyłania paragonów do Expensify.\n\nDodaj adres e-mail, aby przesyłać paragony do ', + helpTextAfterEmail: 'lub dodaj numer telefonu, aby wysyłać paragony SMS-em na 47777 (tylko numery z USA).', + primary: 'Podstawowy', + secondary: 'Dodatkowy', pleaseVerify: 'Proszę zweryfikować tę metodę kontaktu', - getInTouch: 'Kiedy będziemy musieli się z Tobą skontaktować, użyjemy tej metody kontaktu.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Proszę wprowadzić magiczny kod wysłany na ${contactMethod}. Powinien dotrzeć w ciągu minuty lub dwóch.`, setAsDefault: 'Ustaw jako domyślne', yourDefaultContactMethod: 'To jest Twoja domyślna metoda kontaktu. Zanim będziesz mógł ją usunąć, musisz wybrać inną metodę kontaktu i kliknąć „Ustaw jako domyślną”.', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 19613b7bc932..dfeadac53371 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -1573,14 +1573,14 @@ const translations = { placeholderText: 'Pesquisar para ver opções', }, contacts: { - contactMethod: 'Método de contato', contactMethods: 'Métodos de contato', featureRequiresValidate: 'Este recurso requer que você valide sua conta.', validateAccount: 'Valide sua conta', - helpTextBeforeEmail: 'Adicione mais maneiras de enviar recibos. Encaminhe-os para', - helpTextAfterEmail: 'ou envie uma mensagem para 47777 (apenas números dos EUA).', + helpTextBeforeEmail: 'Adicione mais formas de fazer login e enviar recibos para o Expensify.\n\nAdicione um endereço de e-mail para encaminhar recibos para ', + helpTextAfterEmail: 'ou adicione um número de telefone para enviar recibos por mensagem de texto para 47777 (somente números dos EUA).', + primary: 'Principal', + secondary: 'Secundário', pleaseVerify: 'Por favor, verifique este método de contato', - getInTouch: 'Sempre que precisarmos entrar em contato com você, usaremos este método de contato.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Por favor, insira o código mágico enviado para ${contactMethod}. Ele deve chegar em um ou dois minutos.`, setAsDefault: 'Definir como padrão', yourDefaultContactMethod: 'Este é o seu método de contato padrão atual. Antes de poder excluí-lo, você precisará escolher outro método de contato e clicar em “Definir como padrão”.', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 9559121d826e..f5d43f337978 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -1560,14 +1560,14 @@ const translations = { placeholderText: '搜索以查看选项', }, contacts: { - contactMethod: '联系方式', contactMethods: '联系方式', featureRequiresValidate: '此功能需要您验证您的账户。', validateAccount: '验证您的账户', - helpTextBeforeEmail: '添加更多发送收据的方式。转发到', - helpTextAfterEmail: '或将其发送至 47777(仅限美国号码)。', + helpTextBeforeEmail: '添加更多登录方式并将收据发送到 Expensify。\n\n添加一个电子邮件地址以转发收据到 ', + helpTextAfterEmail: '或添加电话号码,将收据发送短信至 47777(仅限美国号码)。', + primary: '主要', + secondary: '次要', pleaseVerify: '请验证此联系方式', - getInTouch: '每当我们需要联系您时,我们将使用此联系方式。', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `请输入发送到${contactMethod}的验证码。验证码将在一分钟内到达。`, setAsDefault: '设为默认', yourDefaultContactMethod: '这是您当前的默认联系方式。在删除它之前,您需要选择另一种联系方式并点击“设为默认”。', diff --git a/src/libs/UserUtils.ts b/src/libs/UserUtils.ts index 843077e64b83..bc394a48bbec 100644 --- a/src/libs/UserUtils.ts +++ b/src/libs/UserUtils.ts @@ -4,6 +4,7 @@ import type {ValueOf} from 'type-fest'; import * as defaultAvatars from '@components/Icon/DefaultAvatars'; import {ConciergeAvatar, NotificationsAvatar} from '@components/Icon/Expensicons'; import CONST from '@src/CONST'; +import type {TranslationPaths} from '@src/languages/types'; import type {LoginList, PrivatePersonalDetails, VacationDelegate} from '@src/types/onyx'; import type Login from '@src/types/onyx/Login'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; @@ -309,10 +310,7 @@ function getContactMethodsOptions(loginList?: LoginList, defaultEmail?: string) } let description = ''; - if (defaultEmail === login?.partnerUserID) { - // eslint-disable-next-line @typescript-eslint/no-deprecated - description = translateLocal('contacts.getInTouch'); - } else if (login?.errorFields?.addedLogin) { + if (login?.errorFields?.addedLogin) { // eslint-disable-next-line @typescript-eslint/no-deprecated description = translateLocal('contacts.failedNewContact'); } else if (!login?.validatedDate) { @@ -333,6 +331,7 @@ function getContactMethodsOptions(loginList?: LoginList, defaultEmail?: string) // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing const partnerUserID = login?.partnerUserID || loginName; const menuItemTitle = Str.isSMSLogin(partnerUserID) ? formatPhoneNumber(partnerUserID) : partnerUserID; + const label: TranslationPaths = isDefaultContactMethod ? 'contacts.primary' : 'contacts.secondary'; return { partnerUserID, @@ -340,6 +339,7 @@ function getContactMethodsOptions(loginList?: LoginList, defaultEmail?: string) description, indicator, pendingAction, + label, }; }); } diff --git a/src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx b/src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx index a994f13a1560..b74ad30c1b97 100644 --- a/src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx +++ b/src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx @@ -92,6 +92,7 @@ function ContactMethodsPage({route}: ContactMethodsPageProps) { shouldShowBasicTitle shouldShowRightIcon disabled={!!option.pendingAction} + label={translate(option.label)} /> ), diff --git a/src/pages/settings/Profile/ProfilePage.tsx b/src/pages/settings/Profile/ProfilePage.tsx index b9fd04208919..08a7ac6f6222 100755 --- a/src/pages/settings/Profile/ProfilePage.tsx +++ b/src/pages/settings/Profile/ProfilePage.tsx @@ -1,5 +1,5 @@ import {useRoute} from '@react-navigation/native'; -import React, {useContext} from 'react'; +import React, {useContext, useMemo} from 'react'; import {View} from 'react-native'; import AvatarButtonWithIcon from '@components/AvatarButtonWithIcon'; import AvatarSkeleton from '@components/AvatarSkeleton'; @@ -29,7 +29,7 @@ import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsSplitNavigatorParamList} from '@libs/Navigation/types'; import {getFormattedAddress} from '@libs/PersonalDetailsUtils'; -import {getFullSizeAvatar, getLoginListBrickRoadIndicator, isDefaultAvatar} from '@libs/UserUtils'; +import {getContactMethodsOptions, getFullSizeAvatar, getLoginListBrickRoadIndicator, isDefaultAvatar} from '@libs/UserUtils'; import {clearAvatarErrors, deleteAvatar, updateAvatar} from '@userActions/PersonalDetails'; import CONST from '@src/CONST'; import type {TranslationPaths} from '@src/languages/types'; @@ -42,11 +42,12 @@ function ProfilePage() { const theme = useTheme(); const styles = useThemeStyles(); const StyleUtils = useStyleUtils(); - const {translate, formatPhoneNumber} = useLocalize(); + const {translate} = useLocalize(); const {shouldUseNarrowLayout} = useResponsiveLayout(); const {safeAreaPaddingBottomStyle} = useSafeAreaPaddings(); const scrollEnabled = useScrollEnabled(); const [loginList] = useOnyx(ONYXKEYS.LOGIN_LIST, {canBeMissing: true}); + const [session] = useOnyx(ONYXKEYS.SESSION, {canBeMissing: false}); const [privatePersonalDetails] = useOnyx(ONYXKEYS.PRIVATE_PERSONAL_DETAILS, {canBeMissing: false}); const currentUserPersonalDetails = useCurrentUserPersonalDetails(); const route = useRoute>(); @@ -55,6 +56,7 @@ function ProfilePage() { const pronounsKey = currentUserPersonalDetails?.pronouns?.replace(CONST.PRONOUNS.PREFIX, '') ?? ''; return pronounsKey ? translate(`pronouns.${pronounsKey}` as TranslationPaths) : translate('profilePage.selectYourPronouns'); }; + const logins = useMemo(() => getContactMethodsOptions(loginList, session?.email), [loginList, session?.email]); const avatarURL = currentUserPersonalDetails?.avatar ?? ''; const accountID = currentUserPersonalDetails?.accountID ?? CONST.DEFAULT_NUMBER_ID; @@ -75,8 +77,11 @@ function ProfilePage() { pageRoute: ROUTES.SETTINGS_DISPLAY_NAME, }, { - description: translate('contacts.contactMethod'), - title: formatPhoneNumber(currentUserPersonalDetails?.login ?? ''), + description: translate('contacts.contactMethods'), + title: logins + .map((login) => login?.menuItemTitle) + .filter(Boolean) + .join(', '), pageRoute: ROUTES.SETTINGS_CONTACT_METHODS.route, brickRoadIndicator: contactMethodBrickRoadIndicator, testID: 'contact-method-menu-item', From 2146d59a9861f858841066887e0e047d0b2cb321 Mon Sep 17 00:00:00 2001 From: FitseTLT Date: Tue, 28 Oct 2025 17:58:20 +0300 Subject: [PATCH 2/9] update copy --- src/languages/es.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/languages/es.ts b/src/languages/es.ts index 0e8de5fc1519..297dae782392 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -1562,8 +1562,8 @@ const translations = { contactMethods: 'Métodos de contacto', featureRequiresValidate: 'Esta función requiere que valides tu cuenta.', validateAccount: 'Valida tu cuenta', - helpTextBeforeEmail: 'Agrega más formas de iniciar sesión y enviar recibos a Expensify.\n\nAgrega una dirección de correo electrónico para reenviar recibos a ', - helpTextAfterEmail: 'o agrega un número de teléfono para enviar recibos por mensaje de texto al 47777 (solo números de EE. UU.).', + helpTextBeforeEmail: 'Añade más formas de iniciar sesión y enviar recibos a Expensify.\n\nAñade una dirección de correo electrónico para reenviar recibos a ', + helpTextAfterEmail: 'o añade un número de teléfono para enviar recibos por mensaje de texto al 47777 (solo números de EE. UU.).', primary: 'Principal', secondary: 'Secundario', pleaseVerify: 'Por favor, verifica este método de contacto', From da6f3910d95dae604fad8c979d097eac7b396739 Mon Sep 17 00:00:00 2001 From: FitseTLT Date: Tue, 28 Oct 2025 18:13:25 +0300 Subject: [PATCH 3/9] fix lint --- src/pages/settings/Profile/ProfilePage.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pages/settings/Profile/ProfilePage.tsx b/src/pages/settings/Profile/ProfilePage.tsx index 1ce448ec83cd..ae5432e189b1 100755 --- a/src/pages/settings/Profile/ProfilePage.tsx +++ b/src/pages/settings/Profile/ProfilePage.tsx @@ -25,6 +25,7 @@ import useScrollEnabled from '@hooks/useScrollEnabled'; import useStyleUtils from '@hooks/useStyleUtils'; import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; +import {formatPhoneNumber} from '@libs/LocalePhoneNumber'; import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsSplitNavigatorParamList} from '@libs/Navigation/types'; From a61cbdf95b394163d958f7321f3f73081db8da8c Mon Sep 17 00:00:00 2001 From: FitseTLT Date: Tue, 28 Oct 2025 18:14:32 +0300 Subject: [PATCH 4/9] minor fix --- src/pages/settings/Profile/ProfilePage.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/pages/settings/Profile/ProfilePage.tsx b/src/pages/settings/Profile/ProfilePage.tsx index ae5432e189b1..ca8cc7b87338 100755 --- a/src/pages/settings/Profile/ProfilePage.tsx +++ b/src/pages/settings/Profile/ProfilePage.tsx @@ -25,7 +25,6 @@ import useScrollEnabled from '@hooks/useScrollEnabled'; import useStyleUtils from '@hooks/useStyleUtils'; import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; -import {formatPhoneNumber} from '@libs/LocalePhoneNumber'; import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsSplitNavigatorParamList} from '@libs/Navigation/types'; @@ -43,7 +42,7 @@ function ProfilePage() { const theme = useTheme(); const styles = useThemeStyles(); const StyleUtils = useStyleUtils(); - const {translate} = useLocalize(); + const {translate, formatPhoneNumber} = useLocalize(); const {shouldUseNarrowLayout} = useResponsiveLayout(); const {safeAreaPaddingBottomStyle} = useSafeAreaPaddings(); const scrollEnabled = useScrollEnabled(); From b40e8e5cc0fc22ef19b9aab614a4f89dbee40472 Mon Sep 17 00:00:00 2001 From: FitseTLT Date: Fri, 31 Oct 2025 23:27:49 +0300 Subject: [PATCH 5/9] fix ui comments --- .../Profile/Contacts/ContactMethodsPage.tsx | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx b/src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx index b74ad30c1b97..0d06a35bed30 100644 --- a/src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx +++ b/src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx @@ -2,7 +2,6 @@ import {isUserValidatedSelector} from '@selectors/Account'; import React, {useCallback, useContext, useMemo} from 'react'; import {View} from 'react-native'; import Button from '@components/Button'; -import CopyTextToClipboard from '@components/CopyTextToClipboard'; import {DelegateNoAccessContext} from '@components/DelegateNoAccessModalProvider'; import FixedFooter from '@components/FixedFooter'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -12,8 +11,10 @@ import OfflineWithFeedback from '@components/OfflineWithFeedback'; import ScreenWrapper from '@components/ScreenWrapper'; import ScrollView from '@components/ScrollView'; import Text from '@components/Text'; +import TextLink from '@components/TextLink'; import useLocalize from '@hooks/useLocalize'; import useOnyx from '@hooks/useOnyx'; +import useStyleUtils from '@hooks/useStyleUtils'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; @@ -32,6 +33,7 @@ function ContactMethodsPage({route}: ContactMethodsPageProps) { const [loginList] = useOnyx(ONYXKEYS.LOGIN_LIST, {canBeMissing: false}); const [session] = useOnyx(ONYXKEYS.SESSION, {canBeMissing: false}); const navigateBackTo = route?.params?.backTo; + const StyleUtils = useStyleUtils(); const {isActingAsDelegate, showDelegateNoAccessModal} = useContext(DelegateNoAccessContext); const [isUserValidated] = useOnyx(ONYXKEYS.ACCOUNT, {selector: isUserValidatedSelector, canBeMissing: false}); @@ -70,11 +72,13 @@ function ContactMethodsPage({route}: ContactMethodsPageProps) { {translate('contacts.helpTextBeforeEmail')} - - {translate('contacts.helpTextAfterEmail')} + + {CONST.EMAIL.RECEIPTS} + + {translate('contacts.helpTextAfterEmail')} {options.map( @@ -93,6 +97,7 @@ function ContactMethodsPage({route}: ContactMethodsPageProps) { shouldShowRightIcon disabled={!!option.pendingAction} label={translate(option.label)} + titleContainerStyle={StyleUtils.getMenuItemTextContainerStyle(true)} /> ), From c8c8224f12840f086ca239bf858df69597809bef Mon Sep 17 00:00:00 2001 From: FitseTLT Date: Fri, 31 Oct 2025 23:52:43 +0300 Subject: [PATCH 6/9] fix ts --- src/pages/settings/Profile/ProfilePage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/settings/Profile/ProfilePage.tsx b/src/pages/settings/Profile/ProfilePage.tsx index ec58c9cf43c3..e654a7d5cac0 100755 --- a/src/pages/settings/Profile/ProfilePage.tsx +++ b/src/pages/settings/Profile/ProfilePage.tsx @@ -56,7 +56,7 @@ function ProfilePage() { const pronounsKey = currentUserPersonalDetails?.pronouns?.replace(CONST.PRONOUNS.PREFIX, '') ?? ''; return pronounsKey ? translate(`pronouns.${pronounsKey}` as TranslationPaths) : translate('profilePage.selectYourPronouns'); }; - const logins = useMemo(() => getContactMethodsOptions(loginList, session?.email), [loginList, session?.email]); + const logins = useMemo(() => getContactMethodsOptions(translate, loginList, session?.email), [loginList, session?.email, translate]); const avatarURL = currentUserPersonalDetails?.avatar ?? ''; const accountID = currentUserPersonalDetails?.accountID ?? CONST.DEFAULT_NUMBER_ID; From e15d1d9d0e56a9ad69384d59bce8d99958435082 Mon Sep 17 00:00:00 2001 From: FitseTLT Date: Fri, 14 Nov 2025 00:11:52 +0300 Subject: [PATCH 7/9] update copy --- src/languages/de.ts | 2 +- src/languages/en.ts | 2 +- src/languages/es.ts | 2 +- src/languages/fr.ts | 2 +- src/languages/it.ts | 2 +- src/languages/ja.ts | 2 +- src/languages/nl.ts | 2 +- src/languages/pl.ts | 2 +- src/languages/pt-BR.ts | 2 +- src/languages/zh-hans.ts | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 5665c40f8bef..01d0941d3c25 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -1605,7 +1605,7 @@ const translations: TranslationDeepObject = { primary: 'Primär', secondary: 'Sekundär', helpText: ({email}: {email: string}) => - `Fügen Sie weitere Möglichkeiten hinzu, sich anzumelden und Belege an Expensify zu senden.\n\nFügen Sie eine E-Mail-Adresse hinzu, um Belege an ${email} weiterzuleiten, oder fügen Sie eine Telefonnummer hinzu, um Belege per SMS an 47777 zu senden (nur US-Nummern).`, + `Fügen Sie weitere Möglichkeiten hinzu, sich anzumelden und Belege an Expensify zu senden.

Fügen Sie eine E-Mail-Adresse hinzu, um Belege an ${email} weiterzuleiten, oder fügen Sie eine Telefonnummer hinzu, um Belege per SMS an 47777 zu senden (nur US-Nummern).`, pleaseVerify: 'Bitte überprüfen Sie diese Kontaktmethode', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Bitte geben Sie den magischen Code ein, der an ${contactMethod} gesendet wurde. Er sollte in ein bis zwei Minuten ankommen.`, diff --git a/src/languages/en.ts b/src/languages/en.ts index 681f566108b4..544ebee6c1db 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -1708,7 +1708,7 @@ const translations = { primary: 'Primary', secondary: 'Secondary', helpText: ({email}: {email: string}) => - `Add more ways to log in and send receipts to Expensify. \n\nAdd an email address to forward receipts to ${email} or add a phone number to text receipts to 47777 (US numbers only).`, + `Add more ways to log in and send receipts to Expensify.

Add an email address to forward receipts to ${email} or add a phone number to text receipts to 47777 (US numbers only).`, pleaseVerify: 'Please verify this contact method', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Please enter the magic code sent to ${contactMethod}. It should arrive within a minute or two.`, setAsDefault: 'Set as default', diff --git a/src/languages/es.ts b/src/languages/es.ts index 7426b49bb581..ea27b5c08a32 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -1378,7 +1378,7 @@ const translations: TranslationDeepObject = { primary: 'Principal', secondary: 'Secundario', helpText: ({email}: {email: string}) => - `Agrega más formas de iniciar sesión y enviar recibos a Expensify.\n\nAgrega una dirección de correo electrónico para reenviar recibos a ${email} o agrega un número de teléfono para enviar recibos por mensaje de texto al 47777 (solo números de EE. UU.).`, + `Agrega más formas de iniciar sesión y enviar recibos a Expensify.

Agrega una dirección de correo electrónico para reenviar recibos a ${email} o agrega un número de teléfono para enviar recibos por mensaje de texto al 47777 (solo números de EE. UU.).`, pleaseVerify: 'Por favor, verifica este método de contacto', enterMagicCode: ({contactMethod}) => `Por favor, introduce el código mágico enviado a ${contactMethod}. Debería llegar en un par de minutos.`, setAsDefault: 'Establecer como predeterminado', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 1a091549eba2..f32f4747ed6f 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -1607,7 +1607,7 @@ const translations: TranslationDeepObject = { primary: 'Principal', secondary: 'Secondaire', helpText: ({email}: {email: string}) => - `Ajoutez d’autres façons de vous connecter et d’envoyer des reçus à Expensify.\n\nAjoutez une adresse e-mail pour transférer des reçus à ${email} ou ajoutez un numéro de téléphone pour envoyer des reçus par SMS au 47777 (numéros américains uniquement).`, + `Ajoutez d’autres façons de vous connecter et d’envoyer des reçus à Expensify.

Ajoutez une adresse e-mail pour transférer des reçus à ${email} ou ajoutez un numéro de téléphone pour envoyer des reçus par SMS au 47777 (numéros américains uniquement).`, pleaseVerify: 'Veuillez vérifier cette méthode de contact', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Veuillez entrer le code magique envoyé à ${contactMethod}. Il devrait arriver dans une minute ou deux.`, setAsDefault: 'Définir par défaut', diff --git a/src/languages/it.ts b/src/languages/it.ts index ab5e55ac585f..6fd63e3cae8a 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -1601,7 +1601,7 @@ const translations: TranslationDeepObject = { primary: 'Primario', secondary: 'Secondario', helpText: ({email}: {email: string}) => - `Aggiungi altri modi per accedere e inviare ricevute a Expensify.\n\nAggiungi un indirizzo email per inoltrare le ricevute a ${email} oppure aggiungi un numero di telefono per inviare ricevute via SMS al 47777 (solo numeri statunitensi).`, + `Aggiungi altri modi per accedere e inviare ricevute a Expensify.

Aggiungi un indirizzo email per inoltrare le ricevute a ${email} oppure aggiungi un numero di telefono per inviare ricevute via SMS al 47777 (solo numeri statunitensi).`, pleaseVerify: 'Si prega di verificare questo metodo di contatto', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Per favore, inserisci il codice magico inviato a ${contactMethod}. Dovrebbe arrivare entro un minuto o due.`, setAsDefault: 'Imposta come predefinito', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index d8bb268072fa..b7e32f03b435 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -1601,7 +1601,7 @@ const translations: TranslationDeepObject = { primary: 'プライマリ', secondary: 'セカンダリ', helpText: ({email}: {email: string}) => - `Expensify にログインしたり領収書を送信したりする方法を追加できます。\n\n領収書を ${email} に転送するメールアドレスを追加するか、電話番号を追加して領収書を 47777 にテキスト送信します(米国の番号のみ)。`, + `Expensify にログインしたり領収書を送信したりする方法を追加できます。

領収書を ${email} に転送するメールアドレスを追加するか、電話番号を追加して領収書を 47777 にテキスト送信します(米国の番号のみ)。`, pleaseVerify: 'この連絡方法を確認してください', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `${contactMethod}に送信されたマジックコードを入力してください。1~2分以内に届くはずです。`, setAsDefault: 'デフォルトに設定', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 44ebdfc0481f..d35bfa21c70e 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -1601,7 +1601,7 @@ const translations: TranslationDeepObject = { primary: 'Primair', secondary: 'Secundair', helpText: ({email}: {email: string}) => - `Voeg meer manieren toe om in te loggen en bonnetjes naar Expensify te sturen.\n\nVoeg een e-mailadres toe om bonnetjes door te sturen naar ${email} of voeg een telefoonnummer toe om bonnetjes te sms’en naar 47777 (alleen Amerikaanse nummers).`, + `Voeg meer manieren toe om in te loggen en bonnetjes naar Expensify te sturen.

Voeg een e-mailadres toe om bonnetjes door te sturen naar ${email} of voeg een telefoonnummer toe om bonnetjes te sms’en naar 47777 (alleen Amerikaanse nummers).`, pleaseVerify: 'Verifieer deze contactmethode alstublieft', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Voer de magische code in die is verzonden naar ${contactMethod}. Het zou binnen een minuut of twee moeten aankomen.`, setAsDefault: 'Instellen als standaard', diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 66ea52c43aa4..07a23df79934 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -1599,7 +1599,7 @@ const translations: TranslationDeepObject = { primary: 'Podstawowy', secondary: 'Dodatkowy', helpText: ({email}: {email: string}) => - `Dodaj więcej sposobów logowania się i wysyłania paragonów do Expensify.\n\nDodaj adres e-mail, aby przesyłać paragony na ${email} lub dodaj numer telefonu, aby wysyłać paragony SMS-em na 47777 (tylko numery z USA).`, + `Dodaj więcej sposobów logowania się i wysyłania paragonów do Expensify.

Dodaj adres e-mail, aby przesyłać paragony na ${email} lub dodaj numer telefonu, aby wysyłać paragony SMS-em na 47777 (tylko numery z USA).`, pleaseVerify: 'Proszę zweryfikować tę metodę kontaktu', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Proszę wprowadzić magiczny kod wysłany na ${contactMethod}. Powinien dotrzeć w ciągu minuty lub dwóch.`, setAsDefault: 'Ustaw jako domyślne', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index bc02fe7cf908..f385b3fed75b 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -1598,7 +1598,7 @@ const translations: TranslationDeepObject = { primary: 'Principal', secondary: 'Secundário', helpText: ({email}: {email: string}) => - `Adicione mais formas de fazer login e enviar recibos para o Expensify.\n\nAdicione um endereço de e-mail para encaminhar recibos para ${email} ou adicione um número de telefone para enviar recibos por mensagem de texto para 47777 (somente números dos EUA).`, + `Adicione mais formas de fazer login e enviar recibos para o Expensify.

Adicione um endereço de e-mail para encaminhar recibos para ${email} ou adicione um número de telefone para enviar recibos por mensagem de texto para 47777 (somente números dos EUA).`, pleaseVerify: 'Por favor, verifique este método de contato', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Por favor, insira o código mágico enviado para ${contactMethod}. Ele deve chegar em um ou dois minutos.`, setAsDefault: 'Definir como padrão', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 15b87cc0978d..9cc618b7617b 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -1577,7 +1577,7 @@ const translations: TranslationDeepObject = { primary: '主要', secondary: '次要', helpText: ({email}: {email: string}) => - `添加更多登录方式并将收据发送到 Expensify。\n\n添加电子邮件地址以将收据转发至 ${email},或添加电话号码将收据短信发送至 47777(仅限美国号码)。`, + `添加更多登录方式并将收据发送到 Expensify。

添加电子邮件地址以将收据转发至 ${email},或添加电话号码将收据短信发送至 47777(仅限美国号码)。`, pleaseVerify: '请验证此联系方式', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `请输入发送到${contactMethod}的验证码。验证码将在一分钟内到达。`, setAsDefault: '设为默认', From d82f429e1012c56b656a3fb30c5e88097cee6f77 Mon Sep 17 00:00:00 2001 From: FitseTLT Date: Thu, 20 Nov 2025 23:29:26 +0300 Subject: [PATCH 8/9] update based on comments --- src/languages/de.ts | 3 +-- src/languages/en.ts | 3 +-- src/languages/es.ts | 3 +-- src/languages/fr.ts | 3 +-- src/languages/it.ts | 3 +-- src/languages/ja.ts | 3 +-- src/languages/nl.ts | 3 +-- src/languages/pl.ts | 3 +-- src/languages/pt-BR.ts | 3 +-- src/languages/zh-hans.ts | 3 +-- src/libs/UserUtils.ts | 7 +++---- src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx | 4 ---- 12 files changed, 13 insertions(+), 28 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 9117cbfc086b..c7a949065011 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -1621,11 +1621,10 @@ const translations: TranslationDeepObject = { contactMethods: 'Kontaktmethoden', featureRequiresValidate: 'Diese Funktion erfordert, dass Sie Ihr Konto verifizieren.', validateAccount: 'Bestätigen Sie Ihr Konto', - primary: 'Primär', - secondary: 'Sekundär', helpText: ({email}: {email: string}) => `Fügen Sie weitere Möglichkeiten hinzu, sich anzumelden und Belege an Expensify zu senden.

Fügen Sie eine E-Mail-Adresse hinzu, um Belege an ${email} weiterzuleiten, oder fügen Sie eine Telefonnummer hinzu, um Belege per SMS an 47777 zu senden (nur US-Nummern).`, pleaseVerify: 'Bitte überprüfen Sie diese Kontaktmethode', + getInTouch: 'Wir verwenden diese Methode, um Sie zu kontaktieren.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Bitte geben Sie den magischen Code ein, der an ${contactMethod} gesendet wurde. Er sollte in ein bis zwei Minuten ankommen.`, setAsDefault: 'Als Standard festlegen', diff --git a/src/languages/en.ts b/src/languages/en.ts index 76420b1db92f..d8e7bfd4f26c 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -1724,11 +1724,10 @@ const translations = { contactMethods: 'Contact methods', featureRequiresValidate: 'This feature requires you to validate your account.', validateAccount: 'Validate your account', - primary: 'Primary', - secondary: 'Secondary', helpText: ({email}: {email: string}) => `Add more ways to log in and send receipts to Expensify.

Add an email address to forward receipts to ${email} or add a phone number to text receipts to 47777 (US numbers only).`, pleaseVerify: 'Please verify this contact method', + getInTouch: "We'll use this method to contact you.", enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Please enter the magic code sent to ${contactMethod}. It should arrive within a minute or two.`, setAsDefault: 'Set as default', yourDefaultContactMethod: "This is your current default contact method. Before you can delete it, you'll need to choose another contact method and click “Set as default”.", diff --git a/src/languages/es.ts b/src/languages/es.ts index 7553eca312d5..e4b4ff3be72d 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -1377,11 +1377,10 @@ const translations: TranslationDeepObject = { contactMethods: 'Métodos de contacto', featureRequiresValidate: 'Esta función requiere que valides tu cuenta.', validateAccount: 'Valida tu cuenta', - primary: 'Principal', - secondary: 'Secundario', helpText: ({email}: {email: string}) => `Agrega más formas de iniciar sesión y enviar recibos a Expensify.

Agrega una dirección de correo electrónico para reenviar recibos a ${email} o agrega un número de teléfono para enviar recibos por mensaje de texto al 47777 (solo números de EE. UU.).`, pleaseVerify: 'Por favor, verifica este método de contacto', + getInTouch: 'Usaremos este método para comunicarnos contigo.', enterMagicCode: ({contactMethod}) => `Por favor, introduce el código mágico enviado a ${contactMethod}. Debería llegar en un par de minutos.`, setAsDefault: 'Establecer como predeterminado', yourDefaultContactMethod: diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 01e362eee6ba..e8f2d15fab95 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -1623,11 +1623,10 @@ const translations: TranslationDeepObject = { contactMethods: 'Méthodes de contact', featureRequiresValidate: 'Cette fonctionnalité nécessite que vous validiez votre compte.', validateAccount: 'Validez votre compte', - primary: 'Principal', - secondary: 'Secondaire', helpText: ({email}: {email: string}) => `Ajoutez d’autres façons de vous connecter et d’envoyer des reçus à Expensify.

Ajoutez une adresse e-mail pour transférer des reçus à ${email} ou ajoutez un numéro de téléphone pour envoyer des reçus par SMS au 47777 (numéros américains uniquement).`, pleaseVerify: 'Veuillez vérifier cette méthode de contact', + getInTouch: 'Nous utiliserons cette méthode pour vous contacter.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Veuillez entrer le code magique envoyé à ${contactMethod}. Il devrait arriver dans une minute ou deux.`, setAsDefault: 'Définir par défaut', yourDefaultContactMethod: diff --git a/src/languages/it.ts b/src/languages/it.ts index 8df2111deca5..6d670e042c14 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -1617,11 +1617,10 @@ const translations: TranslationDeepObject = { contactMethods: 'Metodi di contatto', featureRequiresValidate: 'Questa funzione richiede di convalidare il tuo account.', validateAccount: 'Convalida il tuo account', - primary: 'Primario', - secondary: 'Secondario', helpText: ({email}: {email: string}) => `Aggiungi altri modi per accedere e inviare ricevute a Expensify.

Aggiungi un indirizzo email per inoltrare le ricevute a ${email} oppure aggiungi un numero di telefono per inviare ricevute via SMS al 47777 (solo numeri statunitensi).`, pleaseVerify: 'Si prega di verificare questo metodo di contatto', + getInTouch: 'Useremo questo metodo per contattarti.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Per favore, inserisci il codice magico inviato a ${contactMethod}. Dovrebbe arrivare entro un minuto o due.`, setAsDefault: 'Imposta come predefinito', yourDefaultContactMethod: diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 91a32d38f69c..7608e93a874e 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -1617,11 +1617,10 @@ const translations: TranslationDeepObject = { contactMethods: '連絡方法', featureRequiresValidate: 'この機能を使用するには、アカウントの確認が必要です。', validateAccount: 'アカウントを確認してください', - primary: 'プライマリ', - secondary: 'セカンダリ', helpText: ({email}: {email: string}) => `Expensify にログインしたり領収書を送信したりする方法を追加できます。

領収書を ${email} に転送するメールアドレスを追加するか、電話番号を追加して領収書を 47777 にテキスト送信します(米国の番号のみ)。`, pleaseVerify: 'この連絡方法を確認してください', + getInTouch: 'この方法を使ってご連絡します。', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `${contactMethod}に送信されたマジックコードを入力してください。1~2分以内に届くはずです。`, setAsDefault: 'デフォルトに設定', yourDefaultContactMethod: 'これは現在のデフォルトの連絡方法です。削除する前に、別の連絡方法を選択し、「デフォルトに設定」をクリックする必要があります。', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 03715315387f..6072f6fe9876 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -1617,11 +1617,10 @@ const translations: TranslationDeepObject = { contactMethods: 'Contactmethoden', featureRequiresValidate: 'Deze functie vereist dat je je account verifieert.', validateAccount: 'Valideer uw account', - primary: 'Primair', - secondary: 'Secundair', helpText: ({email}: {email: string}) => `Voeg meer manieren toe om in te loggen en bonnetjes naar Expensify te sturen.

Voeg een e-mailadres toe om bonnetjes door te sturen naar ${email} of voeg een telefoonnummer toe om bonnetjes te sms’en naar 47777 (alleen Amerikaanse nummers).`, pleaseVerify: 'Verifieer deze contactmethode alstublieft', + getInTouch: 'We gebruiken deze methode om contact met je op te nemen.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Voer de magische code in die is verzonden naar ${contactMethod}. Het zou binnen een minuut of twee moeten aankomen.`, setAsDefault: 'Instellen als standaard', yourDefaultContactMethod: diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 9acf0872be3f..f95ecba5ad30 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -1615,11 +1615,10 @@ const translations: TranslationDeepObject = { contactMethods: 'Metody kontaktu', featureRequiresValidate: 'Ta funkcja wymaga weryfikacji konta.', validateAccount: 'Zweryfikuj swoje konto', - primary: 'Podstawowy', - secondary: 'Dodatkowy', helpText: ({email}: {email: string}) => `Dodaj więcej sposobów logowania się i wysyłania paragonów do Expensify.

Dodaj adres e-mail, aby przesyłać paragony na ${email} lub dodaj numer telefonu, aby wysyłać paragony SMS-em na 47777 (tylko numery z USA).`, pleaseVerify: 'Proszę zweryfikować tę metodę kontaktu', + getInTouch: 'Użyjemy tej metody, aby się z Tobą skontaktować.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Proszę wprowadzić magiczny kod wysłany na ${contactMethod}. Powinien dotrzeć w ciągu minuty lub dwóch.`, setAsDefault: 'Ustaw jako domyślne', yourDefaultContactMethod: 'To jest Twoja domyślna metoda kontaktu. Zanim będziesz mógł ją usunąć, musisz wybrać inną metodę kontaktu i kliknąć „Ustaw jako domyślną”.', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index e2bfb8f1f2dc..8b3f90406989 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -1613,11 +1613,10 @@ const translations: TranslationDeepObject = { contactMethods: 'Métodos de contato', featureRequiresValidate: 'Este recurso requer que você valide sua conta.', validateAccount: 'Valide sua conta', - primary: 'Principal', - secondary: 'Secundário', helpText: ({email}: {email: string}) => `Adicione mais formas de fazer login e enviar recibos para o Expensify.

Adicione um endereço de e-mail para encaminhar recibos para ${email} ou adicione um número de telefone para enviar recibos por mensagem de texto para 47777 (somente números dos EUA).`, pleaseVerify: 'Por favor, verifique este método de contato', + getInTouch: 'Usaremos este método para entrar em contato com você.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Por favor, insira o código mágico enviado para ${contactMethod}. Ele deve chegar em um ou dois minutos.`, setAsDefault: 'Definir como padrão', yourDefaultContactMethod: 'Este é o seu método de contato padrão atual. Antes de poder excluí-lo, você precisará escolher outro método de contato e clicar em “Definir como padrão”.', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 2025ffdcf5b9..1b7f64dd2062 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -1592,11 +1592,10 @@ const translations: TranslationDeepObject = { contactMethods: '联系方式', featureRequiresValidate: '此功能需要您验证您的账户。', validateAccount: '验证您的账户', - primary: '主要', - secondary: '次要', helpText: ({email}: {email: string}) => `添加更多登录方式并将收据发送到 Expensify。

添加电子邮件地址以将收据转发至 ${email},或添加电话号码将收据短信发送至 47777(仅限美国号码)。`, pleaseVerify: '请验证此联系方式', + getInTouch: '我们将使用此方式与您联系。', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `请输入发送到${contactMethod}的验证码。验证码将在一分钟内到达。`, setAsDefault: '设为默认', yourDefaultContactMethod: '这是您当前的默认联系方式。在删除它之前,您需要选择另一种联系方式并点击“设为默认”。', diff --git a/src/libs/UserUtils.ts b/src/libs/UserUtils.ts index 6c13df1fb5a6..17edfc7ddb84 100644 --- a/src/libs/UserUtils.ts +++ b/src/libs/UserUtils.ts @@ -3,7 +3,6 @@ import type {OnyxEntry} from 'react-native-onyx'; import type {ValueOf} from 'type-fest'; import type {LocalizedTranslate} from '@components/LocaleContextProvider'; import CONST from '@src/CONST'; -import type {TranslationPaths} from '@src/languages/types'; import type {LoginList, PrivatePersonalDetails, VacationDelegate} from '@src/types/onyx'; import type Login from '@src/types/onyx/Login'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; @@ -143,7 +142,9 @@ function getContactMethodsOptions(translate: LocalizedTranslate, loginList?: Log } let description = ''; - if (login?.errorFields?.addedLogin) { + if (defaultEmail === login?.partnerUserID) { + description = translate('contacts.getInTouch'); + } else if (login?.errorFields?.addedLogin) { description = translate('contacts.failedNewContact'); } else if (!login?.validatedDate) { description = translate('contacts.pleaseVerify'); @@ -162,7 +163,6 @@ function getContactMethodsOptions(translate: LocalizedTranslate, loginList?: Log // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing const partnerUserID = login?.partnerUserID || loginName; const menuItemTitle = Str.isSMSLogin(partnerUserID) ? formatPhoneNumber(partnerUserID) : partnerUserID; - const label: TranslationPaths = isDefaultContactMethod ? 'contacts.primary' : 'contacts.secondary'; return { partnerUserID, @@ -170,7 +170,6 @@ function getContactMethodsOptions(translate: LocalizedTranslate, loginList?: Log description, indicator, pendingAction, - label, }; }); } diff --git a/src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx b/src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx index 92c18f27fcfd..600d3c1663fe 100644 --- a/src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx +++ b/src/pages/settings/Profile/Contacts/ContactMethodsPage.tsx @@ -13,7 +13,6 @@ import ScreenWrapper from '@components/ScreenWrapper'; import ScrollView from '@components/ScrollView'; import useLocalize from '@hooks/useLocalize'; import useOnyx from '@hooks/useOnyx'; -import useStyleUtils from '@hooks/useStyleUtils'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; @@ -32,7 +31,6 @@ function ContactMethodsPage({route}: ContactMethodsPageProps) { const [loginList] = useOnyx(ONYXKEYS.LOGIN_LIST, {canBeMissing: false}); const [session] = useOnyx(ONYXKEYS.SESSION, {canBeMissing: false}); const navigateBackTo = route?.params?.backTo; - const StyleUtils = useStyleUtils(); const {isActingAsDelegate, showDelegateNoAccessModal} = useContext(DelegateNoAccessContext); const [isUserValidated] = useOnyx(ONYXKEYS.ACCOUNT, {selector: isUserValidatedSelector, canBeMissing: false}); @@ -86,8 +84,6 @@ function ContactMethodsPage({route}: ContactMethodsPageProps) { shouldShowBasicTitle shouldShowRightIcon disabled={!!option.pendingAction} - label={translate(option.label)} - titleContainerStyle={StyleUtils.getMenuItemTextContainerStyle(true)} /> ), From 999fedbd14fed60bb85277ed62c7585b9a7e3513 Mon Sep 17 00:00:00 2001 From: FitseTLT Date: Fri, 21 Nov 2025 14:52:10 +0300 Subject: [PATCH 9/9] added period --- src/languages/de.ts | 2 +- src/languages/en.ts | 2 +- src/languages/es.ts | 2 +- src/languages/fr.ts | 2 +- src/languages/it.ts | 2 +- src/languages/ja.ts | 2 +- src/languages/nl.ts | 2 +- src/languages/pl.ts | 2 +- src/languages/pt-BR.ts | 2 +- src/languages/zh-hans.ts | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index c7a949065011..037722f0c149 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -1623,7 +1623,7 @@ const translations: TranslationDeepObject = { validateAccount: 'Bestätigen Sie Ihr Konto', helpText: ({email}: {email: string}) => `Fügen Sie weitere Möglichkeiten hinzu, sich anzumelden und Belege an Expensify zu senden.

Fügen Sie eine E-Mail-Adresse hinzu, um Belege an ${email} weiterzuleiten, oder fügen Sie eine Telefonnummer hinzu, um Belege per SMS an 47777 zu senden (nur US-Nummern).`, - pleaseVerify: 'Bitte überprüfen Sie diese Kontaktmethode', + pleaseVerify: 'Bitte überprüfen Sie diese Kontaktmethode.', getInTouch: 'Wir verwenden diese Methode, um Sie zu kontaktieren.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Bitte geben Sie den magischen Code ein, der an ${contactMethod} gesendet wurde. Er sollte in ein bis zwei Minuten ankommen.`, diff --git a/src/languages/en.ts b/src/languages/en.ts index d8e7bfd4f26c..5152fb121f7a 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -1726,7 +1726,7 @@ const translations = { validateAccount: 'Validate your account', helpText: ({email}: {email: string}) => `Add more ways to log in and send receipts to Expensify.

Add an email address to forward receipts to ${email} or add a phone number to text receipts to 47777 (US numbers only).`, - pleaseVerify: 'Please verify this contact method', + pleaseVerify: 'Please verify this contact method.', getInTouch: "We'll use this method to contact you.", enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Please enter the magic code sent to ${contactMethod}. It should arrive within a minute or two.`, setAsDefault: 'Set as default', diff --git a/src/languages/es.ts b/src/languages/es.ts index e4b4ff3be72d..1a797570c1b3 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -1379,7 +1379,7 @@ const translations: TranslationDeepObject = { validateAccount: 'Valida tu cuenta', helpText: ({email}: {email: string}) => `Agrega más formas de iniciar sesión y enviar recibos a Expensify.

Agrega una dirección de correo electrónico para reenviar recibos a ${email} o agrega un número de teléfono para enviar recibos por mensaje de texto al 47777 (solo números de EE. UU.).`, - pleaseVerify: 'Por favor, verifica este método de contacto', + pleaseVerify: 'Por favor, verifica este método de contacto.', getInTouch: 'Usaremos este método para comunicarnos contigo.', enterMagicCode: ({contactMethod}) => `Por favor, introduce el código mágico enviado a ${contactMethod}. Debería llegar en un par de minutos.`, setAsDefault: 'Establecer como predeterminado', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index e8f2d15fab95..b7563ddf0e84 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -1625,7 +1625,7 @@ const translations: TranslationDeepObject = { validateAccount: 'Validez votre compte', helpText: ({email}: {email: string}) => `Ajoutez d’autres façons de vous connecter et d’envoyer des reçus à Expensify.

Ajoutez une adresse e-mail pour transférer des reçus à ${email} ou ajoutez un numéro de téléphone pour envoyer des reçus par SMS au 47777 (numéros américains uniquement).`, - pleaseVerify: 'Veuillez vérifier cette méthode de contact', + pleaseVerify: 'Veuillez vérifier cette méthode de contact.', getInTouch: 'Nous utiliserons cette méthode pour vous contacter.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Veuillez entrer le code magique envoyé à ${contactMethod}. Il devrait arriver dans une minute ou deux.`, setAsDefault: 'Définir par défaut', diff --git a/src/languages/it.ts b/src/languages/it.ts index 6d670e042c14..40aa3a45a4f3 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -1619,7 +1619,7 @@ const translations: TranslationDeepObject = { validateAccount: 'Convalida il tuo account', helpText: ({email}: {email: string}) => `Aggiungi altri modi per accedere e inviare ricevute a Expensify.

Aggiungi un indirizzo email per inoltrare le ricevute a ${email} oppure aggiungi un numero di telefono per inviare ricevute via SMS al 47777 (solo numeri statunitensi).`, - pleaseVerify: 'Si prega di verificare questo metodo di contatto', + pleaseVerify: 'Si prega di verificare questo metodo di contatto.', getInTouch: 'Useremo questo metodo per contattarti.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Per favore, inserisci il codice magico inviato a ${contactMethod}. Dovrebbe arrivare entro un minuto o due.`, setAsDefault: 'Imposta come predefinito', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 7608e93a874e..b4f0aeeece2f 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -1619,7 +1619,7 @@ const translations: TranslationDeepObject = { validateAccount: 'アカウントを確認してください', helpText: ({email}: {email: string}) => `Expensify にログインしたり領収書を送信したりする方法を追加できます。

領収書を ${email} に転送するメールアドレスを追加するか、電話番号を追加して領収書を 47777 にテキスト送信します(米国の番号のみ)。`, - pleaseVerify: 'この連絡方法を確認してください', + pleaseVerify: 'この連絡方法を確認してください。', getInTouch: 'この方法を使ってご連絡します。', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `${contactMethod}に送信されたマジックコードを入力してください。1~2分以内に届くはずです。`, setAsDefault: 'デフォルトに設定', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 6072f6fe9876..be21caef9500 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -1619,7 +1619,7 @@ const translations: TranslationDeepObject = { validateAccount: 'Valideer uw account', helpText: ({email}: {email: string}) => `Voeg meer manieren toe om in te loggen en bonnetjes naar Expensify te sturen.

Voeg een e-mailadres toe om bonnetjes door te sturen naar ${email} of voeg een telefoonnummer toe om bonnetjes te sms’en naar 47777 (alleen Amerikaanse nummers).`, - pleaseVerify: 'Verifieer deze contactmethode alstublieft', + pleaseVerify: 'Verifieer deze contactmethode alstublieft.', getInTouch: 'We gebruiken deze methode om contact met je op te nemen.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Voer de magische code in die is verzonden naar ${contactMethod}. Het zou binnen een minuut of twee moeten aankomen.`, setAsDefault: 'Instellen als standaard', diff --git a/src/languages/pl.ts b/src/languages/pl.ts index f95ecba5ad30..35e5a4bb9a09 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -1617,7 +1617,7 @@ const translations: TranslationDeepObject = { validateAccount: 'Zweryfikuj swoje konto', helpText: ({email}: {email: string}) => `Dodaj więcej sposobów logowania się i wysyłania paragonów do Expensify.

Dodaj adres e-mail, aby przesyłać paragony na ${email} lub dodaj numer telefonu, aby wysyłać paragony SMS-em na 47777 (tylko numery z USA).`, - pleaseVerify: 'Proszę zweryfikować tę metodę kontaktu', + pleaseVerify: 'Proszę zweryfikować tę metodę kontaktu.', getInTouch: 'Użyjemy tej metody, aby się z Tobą skontaktować.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Proszę wprowadzić magiczny kod wysłany na ${contactMethod}. Powinien dotrzeć w ciągu minuty lub dwóch.`, setAsDefault: 'Ustaw jako domyślne', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 8b3f90406989..2bb7f163b67b 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -1615,7 +1615,7 @@ const translations: TranslationDeepObject = { validateAccount: 'Valide sua conta', helpText: ({email}: {email: string}) => `Adicione mais formas de fazer login e enviar recibos para o Expensify.

Adicione um endereço de e-mail para encaminhar recibos para ${email} ou adicione um número de telefone para enviar recibos por mensagem de texto para 47777 (somente números dos EUA).`, - pleaseVerify: 'Por favor, verifique este método de contato', + pleaseVerify: 'Por favor, verifique este método de contato.', getInTouch: 'Usaremos este método para entrar em contato com você.', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `Por favor, insira o código mágico enviado para ${contactMethod}. Ele deve chegar em um ou dois minutos.`, setAsDefault: 'Definir como padrão', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 1b7f64dd2062..4e9bf3705f95 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -1594,7 +1594,7 @@ const translations: TranslationDeepObject = { validateAccount: '验证您的账户', helpText: ({email}: {email: string}) => `添加更多登录方式并将收据发送到 Expensify。

添加电子邮件地址以将收据转发至 ${email},或添加电话号码将收据短信发送至 47777(仅限美国号码)。`, - pleaseVerify: '请验证此联系方式', + pleaseVerify: '请验证此联系方式。', getInTouch: '我们将使用此方式与您联系。', enterMagicCode: ({contactMethod}: EnterMagicCodeParams) => `请输入发送到${contactMethod}的验证码。验证码将在一分钟内到达。`, setAsDefault: '设为默认',