Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/languages/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2868,6 +2868,8 @@ ${amount} für ${merchant} – ${date}`,
},
validateCodeForm: {
magicCodeNotReceived: 'Keinen magischen Code erhalten?',
avoidScamsMessage:
'<strong>Vermeiden Sie Betrug. Geben Sie Ihren Code nicht an andere weiter.</strong> Unser Team wird Sie niemals anrufen, per SMS kontaktieren oder Ihnen eine E-Mail senden, um diesen Code zu erfragen.',
enterAuthenticatorCode: 'Bitte gib deinen Authentifizierungscode ein',
enterRecoveryCode: 'Bitte gib deinen Wiederherstellungscode ein',
requiredWhen2FAEnabled: 'Erforderlich, wenn 2FA aktiviert ist',
Expand Down
1 change: 1 addition & 0 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2924,6 +2924,7 @@ const translations = {
},
validateCodeForm: {
magicCodeNotReceived: "Didn't receive a magic code?",
avoidScamsMessage: '<strong>Avoid scams. Do not share your code with anyone.</strong> Our team will never call, text, or email you for this code.',
enterAuthenticatorCode: 'Please enter your authenticator code',
enterRecoveryCode: 'Please enter your recovery code',
requiredWhen2FAEnabled: 'Required when 2FA is enabled',
Expand Down
2 changes: 2 additions & 0 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2754,6 +2754,8 @@ ${amount} para ${merchant} - ${date}`,
},
validateCodeForm: {
magicCodeNotReceived: '¿No recibiste un código mágico?',
avoidScamsMessage:
'<strong>Evita las estafas. No compartas tu código con nadie.</strong> Nuestro equipo nunca te llamará, enviará mensajes de texto ni correos electrónicos para solicitarte este código.',
enterAuthenticatorCode: 'Por favor, introduce el código de autenticador',
enterRecoveryCode: 'Por favor, introduce tu código de recuperación',
requiredWhen2FAEnabled: 'Obligatorio cuando A2F está habilitado',
Expand Down
2 changes: 2 additions & 0 deletions src/languages/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2874,6 +2874,8 @@ ${amount} pour ${merchant} - ${date}`,
},
validateCodeForm: {
magicCodeNotReceived: "Vous n'avez pas reçu de code magique ?",
avoidScamsMessage:
'<strong>Évitez les arnaques. Ne partagez votre code avec personne.</strong> Notre équipe ne vous appellera, ne vous enverra jamais de SMS ni d’e-mail pour demander ce code.',
enterAuthenticatorCode: 'Veuillez saisir votre code d’authentification',
enterRecoveryCode: 'Veuillez saisir votre code de récupération',
requiredWhen2FAEnabled: 'Obligatoire lorsque l’authentification à deux facteurs est activée',
Expand Down
2 changes: 2 additions & 0 deletions src/languages/it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2864,6 +2864,8 @@ ${amount} per ${merchant} - ${date}`,
},
validateCodeForm: {
magicCodeNotReceived: 'Non hai ricevuto un codice magico?',
avoidScamsMessage:
'<strong>Evita le truffe. Non condividere il tuo codice con nessuno.</strong> Il nostro team non ti chiamerà, invierà SMS o manderà email per chiederti questo codice.',
enterAuthenticatorCode: "Inserisci il tuo codice dell'autenticatore",
enterRecoveryCode: 'Inserisci il tuo codice di recupero',
requiredWhen2FAEnabled: 'Obbligatorio quando l’autenticazione a due fattori è abilitata',
Expand Down
1 change: 1 addition & 0 deletions src/languages/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2836,6 +2836,7 @@ ${date} の ${merchant} への ${amount}`,
},
validateCodeForm: {
magicCodeNotReceived: 'マジックコードを受け取っていませんか?',
avoidScamsMessage: '<strong>詐欺に注意してください。コードを他人と共有しないでください。</strong> 当社スタッフがこのコードを電話・SMS・メールでお尋ねすることは決してありません。',
enterAuthenticatorCode: '認証コードを入力してください',
enterRecoveryCode: 'リカバリーコードを入力してください',
requiredWhen2FAEnabled: '2要素認証が有効な場合は必須',
Expand Down
1 change: 1 addition & 0 deletions src/languages/nl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2860,6 +2860,7 @@ ${amount} voor ${merchant} - ${date}`,
},
validateCodeForm: {
magicCodeNotReceived: 'Geen magische code ontvangen?',
avoidScamsMessage: '<strong>Voorkom oplichting. Deel je code met niemand.</strong> Ons team zal je nooit bellen, sms’en of e-mailen om deze code te vragen.',
enterAuthenticatorCode: 'Voer je authenticatiecode in',
enterRecoveryCode: 'Voer uw herstelcode in',
requiredWhen2FAEnabled: 'Vereist wanneer 2FA is ingeschakeld',
Expand Down
1 change: 1 addition & 0 deletions src/languages/pl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2855,6 +2855,7 @@ ${amount} dla ${merchant} - ${date}`,
},
validateCodeForm: {
magicCodeNotReceived: 'Nie otrzymano magicznego kodu?',
avoidScamsMessage: '<strong>Unikaj oszustw. Nie udostępniaj nikomu swojego kodu.</strong> Nasz zespół nigdy nie zadzwoni, nie wyśle SMS-a ani e-maila z prośbą o ten kod.',
enterAuthenticatorCode: 'Wprowadź swój kod z aplikacji uwierzytelniającej',
enterRecoveryCode: 'Wprowadź swój kod odzyskiwania',
requiredWhen2FAEnabled: 'Wymagane, gdy włączone jest 2FA',
Expand Down
1 change: 1 addition & 0 deletions src/languages/pt-BR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2855,6 +2855,7 @@ ${amount} para ${merchant} - ${date}`,
},
validateCodeForm: {
magicCodeNotReceived: 'Não recebeu um código mágico?',
avoidScamsMessage: '<strong>Evite golpes. Não compartilhe seu código com ninguém.</strong> Nossa equipe nunca ligará, enviará SMS ou e-mail para pedir esse código.',
enterAuthenticatorCode: 'Insira seu código do autenticador',
enterRecoveryCode: 'Insira seu código de recuperação',
requiredWhen2FAEnabled: 'Obrigatório quando a 2FA estiver ativada',
Expand Down
1 change: 1 addition & 0 deletions src/languages/zh-hans.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2786,6 +2786,7 @@ ${amount},商户:${merchant} - 日期:${date}`,
},
validateCodeForm: {
magicCodeNotReceived: '没有收到验证码?',
avoidScamsMessage: '<strong>谨防诈骗。不要与任何人分享您的验证码。</strong> 我们的团队绝不会打电话、发短信或发送电子邮件向您索取此验证码。',
enterAuthenticatorCode: '请输入您的认证器验证码',
enterRecoveryCode: '请输入您的恢复代码',
requiredWhen2FAEnabled: '启用双重验证时必填',
Expand Down
18 changes: 18 additions & 0 deletions src/pages/signin/ValidateCodeForm/BaseValidateCodeForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,24 @@ import {View} from 'react-native';
import Button from '@components/Button';
import SafariFormWrapper from '@components/Form/SafariFormWrapper';
import FormHelpMessage from '@components/FormHelpMessage';
import Icon from '@components/Icon';
import type {MagicCodeInputHandle} from '@components/MagicCodeInput';
import MagicCodeInput from '@components/MagicCodeInput';
import PressableWithFeedback from '@components/Pressable/PressableWithFeedback';
import RenderHTML from '@components/RenderHTML';
import Text from '@components/Text';
import TextInput from '@components/TextInput';
import ValidateCodeCountdown from '@components/ValidateCodeCountdown';
import type {ValidateCodeCountdownHandle} from '@components/ValidateCodeCountdown/types';
import type {WithToggleVisibilityViewProps} from '@components/withToggleVisibilityView';
import withToggleVisibilityView from '@components/withToggleVisibilityView';
import {useMemoizedLazyExpensifyIcons} from '@hooks/useLazyAsset';
import useLocalize from '@hooks/useLocalize';
import useNetwork from '@hooks/useNetwork';
import useOnyx from '@hooks/useOnyx';
import usePrevious from '@hooks/usePrevious';
import useStyleUtils from '@hooks/useStyleUtils';
import useTheme from '@hooks/useTheme';
import useThemeStyles from '@hooks/useThemeStyles';
import AccountUtils from '@libs/AccountUtils';
import canFocusInputOnScreenFocus from '@libs/canFocusInputOnScreenFocus';
Expand Down Expand Up @@ -63,6 +67,8 @@ function BaseValidateCodeForm({autoComplete, isUsingRecoveryCode, setIsUsingReco
const [needToClearError, setNeedToClearError] = useState<boolean>(!!account?.errors);
const [isCountdownRunning, setIsCountdownRunning] = useState(true);
const StyleUtils = useStyleUtils();
const theme = useTheme();
const expensifyIcons = useMemoizedLazyExpensifyIcons(['Exclamation']);

const prevRequiresTwoFactorAuth = usePrevious(account?.requiresTwoFactorAuth);
const prevValidateCode = usePrevious(credentials?.validateCode);
Expand Down Expand Up @@ -403,6 +409,18 @@ function BaseValidateCodeForm({autoComplete, isUsingRecoveryCode, setIsUsingReco
</PressableWithFeedback>
)}
</View>
<View style={[styles.mt5, styles.flexRow, styles.alignItemsCenter]}>
<View style={[styles.mr3]}>
<Icon
src={expensifyIcons.Exclamation}
fill={theme.icon}
medium
/>
</View>
<View style={styles.flex1}>
<RenderHTML html={translate('validateCodeForm.avoidScamsMessage')} />
</View>
</View>
</View>
)}
<View>
Expand Down
Loading