UNPKG

@aws-amplify/ui

Version:

`@aws-amplify/ui` contains low-level logic & styles for stand-alone usage or re-use in framework-specific implementations.

177 lines (174 loc) • 7.97 kB
import { translate, DefaultTexts } from '../../i18n/translations.mjs'; import { defaultTexts } from '../../i18n/dictionaries/index.mjs'; /** * ConfirmSignIn */ const getChallengeText = (challengeName) => { switch (challengeName) { case 'EMAIL_OTP': return translate(DefaultTexts.CONFIRM_EMAIL); case 'SMS_MFA': return translate(DefaultTexts.CONFIRM_SMS); case 'SOFTWARE_TOKEN_MFA': return translate(DefaultTexts.CONFIRM_TOTP); default: return translate(DefaultTexts.CONFIRM_MFA_DEFAULT); } }; /** * ConfirmSignUp */ const getDeliveryMessageText = (codeDeliveryDetails) => { const { DeliveryMedium, Destination } = codeDeliveryDetails ?? {}; const isEmailMessage = DeliveryMedium === 'EMAIL'; const isTextMessage = DeliveryMedium === 'SMS'; const arrivalMessage = translate(DefaultTexts.CODE_ARRIVAL); if (!(isEmailMessage || isTextMessage)) { return `${translate(DefaultTexts.CODE_SENT)}. ${arrivalMessage}.`; } const instructionMessage = isEmailMessage ? translate(DefaultTexts.CODE_EMAILED) : translate(DefaultTexts.CODE_TEXTED); return `${instructionMessage} ${Destination}. ${arrivalMessage}.`; }; const getDeliveryMethodText = (codeDeliveryDetails) => { const { DeliveryMedium } = codeDeliveryDetails ?? {}; const isEmailMessage = DeliveryMedium === 'EMAIL'; const isTextMessage = DeliveryMedium === 'SMS'; if (!isEmailMessage && isTextMessage) { return translate(DefaultTexts.WE_SENT_CODE); } return isEmailMessage ? translate(DefaultTexts.WE_EMAILED) : translate(DefaultTexts.WE_TEXTED); }; /** * FederatedSignIn */ const providerNameMap = { amazon: 'Amazon', apple: 'Apple', facebook: 'Facebook', google: 'Google', }; const getSignInWithFederationText = (route, provider) => { const isSignIn = route === 'signIn'; return translate(`Sign ${isSignIn ? 'In' : 'Up'} with ${providerNameMap[provider]}`); }; /** * SelectMfaType */ const getSelectMfaTypeByChallengeName = (challengeName) => { if (challengeName === 'MFA_SETUP') { return translate(DefaultTexts.MFA_SETUP_SELECTION); } return translate(DefaultTexts.MFA_SELECTION); }; const getUsernameLabelByLoginMechanism = (loginMechanism) => { switch (loginMechanism) { case 'email': return translate(DefaultTexts.EMAIL_ADDRESS); case 'phone_number': return translate(DefaultTexts.PHONE_NUMBER); case 'username': default: return translate(DefaultTexts.USERNAME); } }; const getMfaTypeLabelByValue = (mfaType) => { switch (mfaType) { case 'EMAIL': return translate(defaultTexts.EMAIL_OTP); case 'SMS': return translate(defaultTexts.SMS_MFA); case 'TOTP': return translate(defaultTexts.SOFTWARE_TOKEN_MFA); default: return translate(mfaType); } }; const authenticatorTextUtil = { /** Shared */ getBackToSignInText: () => translate(DefaultTexts.BACK_SIGN_IN), getChangePasswordText: () => translate(DefaultTexts.CHANGE_PASSWORD), getChangingText: () => translate(DefaultTexts.CHANGING_PASSWORD), getConfirmText: () => translate(DefaultTexts.CONFIRM), getConfirmingText: () => translate(DefaultTexts.CONFIRMING), getContinueText: () => translate(DefaultTexts.CONTINUE), getCopyText: () => translate(DefaultTexts.UPPERCASE_COPY), getHidePasswordText: () => translate(DefaultTexts.HIDE_PASSWORD), getLoadingText: () => translate(DefaultTexts.LOADING), getOrText: () => translate(DefaultTexts.OR), getResendCodeText: () => translate(DefaultTexts.RESEND_CODE), getSendCodeText: () => translate(DefaultTexts.SEND_CODE), getSendingText: () => translate(DefaultTexts.SENDING), getShowPasswordText: () => translate(DefaultTexts.SHOW_PASSWORD), getSubmitText: () => translate(DefaultTexts.SUBMIT), getSubmittingText: () => translate(DefaultTexts.SUBMITTING), /** SignInSignUpTabs */ getSignInTabText: () => translate(DefaultTexts.SIGN_IN_TAB), getSignUpTabText: () => translate(DefaultTexts.CREATE_ACCOUNT), /** SignIn */ getForgotPasswordText: (shortVersion) => translate(shortVersion ? DefaultTexts.FORGOT_PASSWORD : DefaultTexts.FORGOT_YOUR_PASSWORD), getSigningInText: () => translate(DefaultTexts.SIGNING_IN_BUTTON), getSignInText: () => translate(DefaultTexts.SIGN_IN_BUTTON), /** SignUp */ getCreatingAccountText: () => translate(DefaultTexts.CREATING_ACCOUNT), getCreateAccountText: () => translate(DefaultTexts.CREATE_ACCOUNT), getCreateAccountWithEmailText: () => translate(DefaultTexts.CREATE_ACCOUNT_WITH_EMAIL_OTP), getCreateAccountWithPasswordText: () => translate(DefaultTexts.CREATE_ACCOUNT_WITH_PASSWORD), getCreateAccountWithSmsText: () => translate(DefaultTexts.CREATE_ACCOUNT_WITH_SMS_OTP), /** ConfirmSignUp */ getDeliveryMessageText, getDeliveryMethodText, /** ConfirmSignIn */ getChallengeText, /** ForgotPassword */ getResetYourPasswordText: () => translate(DefaultTexts.RESET_PASSWORD), /** SetupEmail */ getSetupEmailText: () => translate(DefaultTexts.SETUP_EMAIL), /** SetupTotp */ getSetupTotpText: () => translate(DefaultTexts.SETUP_TOTP), // TODO: add defaultText for below getSetupTotpInstructionsText: () => translate('Copy and paste the secret key below into an authenticator app and then enter the code in the text field below.'), // TODO: add defaultText for "COPIED" getCopiedText: () => translate('COPIED'), /** FederatedSignIn */ getSignInWithFederationText, /** SelectMfaType */ getMfaTypeLabelByValue, getSelectMfaTypeByChallengeName, getSelectMfaTypeText: () => translate(DefaultTexts.SELECT_MFA_TYPE), /** VerifyUser */ getSkipText: () => translate(DefaultTexts.SKIP), getVerifyText: () => translate(DefaultTexts.VERIFY), getVerifyContactText: () => translate(DefaultTexts.VERIFY_CONTACT), getAccountRecoveryInfoText: () => translate(DefaultTexts.VERIFY_HEADING), /** Passwordless */ getPasskeyPromptHeadingText: () => translate(DefaultTexts.PASSKEY_PROMPT_HEADING), getPasskeyPromptDescriptionText: () => translate(DefaultTexts.PASSKEY_PROMPT_DESCRIPTION), getCreatePasskeyText: () => translate(DefaultTexts.CREATE_PASSKEY), getRegisteringText: () => translate(DefaultTexts.REGISTERING), getContinueWithoutPasskeyText: () => translate(DefaultTexts.CONTINUE_WITHOUT_PASSKEY), getPasskeyCreatedSuccessText: () => translate(DefaultTexts.PASSKEY_CREATED_SUCCESS), getPasskeyRegisteredText: () => translate(DefaultTexts.PASSKEY_REGISTERED), getPasskeyRegistrationFailedText: () => translate(DefaultTexts.PASSKEY_REGISTRATION_FAILED), getPasskeyLabelText: () => translate(DefaultTexts.PASSKEY_LABEL), getExistingPasskeysText: () => translate(DefaultTexts.EXISTING_PASSKEYS), getSetupAnotherPasskeyText: () => translate(DefaultTexts.SETUP_ANOTHER_PASSKEY), getSignInWithPasswordText: () => translate(DefaultTexts.SIGN_IN_WITH_PASSWORD), getSignInWithEmailText: () => translate(DefaultTexts.SIGN_IN_WITH_EMAIL), getSignInWithSmsText: () => translate(DefaultTexts.SIGN_IN_WITH_SMS), getSignInWithPasskeyText: () => translate(DefaultTexts.SIGN_IN_WITH_PASSKEY), getOtherSignInOptionsText: () => translate(DefaultTexts.OTHER_SIGN_IN_OPTIONS), getEnterUsernameFirstText: () => translate(DefaultTexts.ENTER_USERNAME_FIRST), getUsernameLabelByLoginMechanism, /** Validations */ // TODO: add defaultText getInvalidEmailText: () => translate('Please enter a valid email'), // TODO: add defaultText getRequiredFieldText: () => translate('This field is required'), }; // using `as const` so that keys are strongly typed export { authenticatorTextUtil };