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: 1 addition & 1 deletion docs/APIDOCUMENTATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -623,7 +623,7 @@ xee

> | name | type | data type | description |
> | ------------ | -------- | ------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- |
> | `memberGuid` | optional | string | The GUID of the member to update. If provided, the widget will initiate an OAuth update flow for this member. |
> | `memberGuid` | optional | string | The GUID of the member to update. If provided, the widget will initiate an OAuth update flow for this member. |
> | `config` | required | [`ClientConfigType`](../typings/connectProps.d.ts#L19) | The connect widget uses the config to set the initial state and behavior of the widget. [More details](./CLIENT_CONFIG.md) |

##### Responses
Expand Down
3 changes: 2 additions & 1 deletion docs/USER_FEATURES.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,11 @@ const userFeatures = [
When updating a member via OAuth, it is possible for the backend to return a different member GUID (`inbound_member_guid`) than the one used to initiate the flow. This commonly occurs during migrations from non-OAuth to OAuth connections, or when a user signs in with a different set of credentials at the same institution.

The Connect Widget handles this synchronization automatically by:

1. Detecting the GUID change upon successful completion of the OAuth flow.
2. Fetching the new member's full record using the `loadMemberByGuid` callback.
3. Updating the internal Redux state to reflect the new `currentMemberGuid` and including the new member record in the list of active members.
4. Seamlessly transitioning the user to the `Connecting` step with the synchronized member data.
<br />
<br />

[<-- Back to README](../README.md#props)
9 changes: 9 additions & 0 deletions src/const/language/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -415,6 +415,15 @@
"To complete your connection, please %1share%2 the following after signing in:": "Para completar su conexión, por favor, %1comparta%2 lo siguiente después de iniciar sesión:",
"Demo mode active": "Modo de demostración activo",
"Live institutions are not available in the demo environment. Please select *MX Bank* to test the connection process.": "Las instituciones en vivo no están disponibles en el entorno de demostración. Seleccione *MX Bank* para probar el proceso de conexión.",
"Connection unavailable": "Conexión no disponible",
"This institution is experiencing issues that prevent successful connections. It's unclear when this will be resolved.": "Esta institución está experimentando problemas que impiden establecer conexiones exitosas. No está claro cuándo se resolverá esta situación.",
"Back": "Retroceder",
"We couldn't find any accounts eligible for transfers. Please link a checking or savings account.": "No pudimos encontrar ninguna cuenta que cumpla con los requisitos para realizar transferencias. Vincule, por favor, una cuenta corriente o de ahorros.",
"This may be due to closed accounts, revoked access, or a connection issue. Please try again later or connect a different institution.": "Esto puede deberse a cuentas cerradas, acceso revocado o un problema de conexión. Intente nuevamente más tarde o conecte una institución diferente.",
"We can't access your accounts because some required permissions weren't granted.": "No podemos acceder a sus cuentas porque no se otorgaron algunos permisos requeridos.",
"We're unable to connect to this institution right now. Please try again later.": "Actualmente no podemos conectarnos a esta institución. Intente nuevamente más tarde.",
"The institution is temporarily unavailable due to maintenance. Please try again later.": "La institución no está disponible temporalmente debido a mantenimiento. Intente nuevamente más tarde.",
"This institution isn't responding right now. Please try again later.": "Esta institución no está respondiendo en este momento. Intente nuevamente más tarde.",
"connect/disclosure/button\u0004Continue": "Continuar",
"connect/disclosure/policy/text\u0004By clicking Continue, you agree to the ": "Al hacer clic en Continuar, tu aceptas la ",
"connect/disclosure/policy/link\u0004MX Privacy Policy.": "Política de privacidad de Money Experience.",
Expand Down
54 changes: 52 additions & 2 deletions src/const/language/es.po
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@ msgstr "Elija una imagen"
msgid "Oops! Something went wrong. Please try again later."
msgstr "¡Oh, no! Algo salió mal. Inténtelo de nuevo más tarde."

#: src/components/support/SupportMenu.js
#: src/views/actionableError/useActionableErrorMap.tsx src/views/mfa/MFAStep.js
#: src/components/support/SupportMenu.js src/views/mfa/MFAStep.js
#: src/views/loginError/SecondaryActions.js
#: src/views/credentials/Credentials.js
msgid "Get help"
Expand Down Expand Up @@ -2092,3 +2091,54 @@ msgstr ""
#: src/views/institutionStatusDetails/InstitutionStatusDetails.tsx
msgid "Back"
msgstr "Retroceder"

#: src/views/oauth/WaitingForOAuth.js
msgid "Failed to synchronize member data"
msgstr ""

#: src/views/actionableError/useActionableErrorMap.tsx
msgid ""
"We couldn't find any accounts eligible for transfers. Please link a checking "
"or savings account."
msgstr ""
"No pudimos encontrar ninguna cuenta que cumpla con los requisitos para "
"realizar transferencias. Vincule, por favor, una cuenta corriente o de "
"ahorros."

#: src/views/actionableError/useActionableErrorMap.tsx
msgid ""
"This may be due to closed accounts, revoked access, or a connection issue. "
"Please try again later or connect a different institution."
msgstr ""
"Esto puede deberse a cuentas cerradas, acceso revocado o un problema de "
"conexión. Intente nuevamente más tarde o conecte una institución diferente."

#: src/views/actionableError/useActionableErrorMap.tsx
msgid ""
"We can't access your accounts because some required permissions weren't "
"granted."
msgstr ""
"No podemos acceder a sus cuentas porque no se otorgaron algunos permisos "
"requeridos."

#: src/views/actionableError/useActionableErrorMap.tsx
msgid ""
"We're unable to connect to this institution right now. Please try again "
"later."
msgstr ""
"Actualmente no podemos conectarnos a esta institución. Intente nuevamente "
"más tarde."

#: src/views/actionableError/useActionableErrorMap.tsx
msgid ""
"The institution is temporarily unavailable due to maintenance. Please try "
"again later."
msgstr ""
"La institución no está disponible temporalmente debido a mantenimiento. "
"Intente nuevamente más tarde."

#: src/views/actionableError/useActionableErrorMap.tsx
msgid "This institution isn't responding right now. Please try again later."
msgstr ""
"Esta institución no está respondiendo en este momento. Intente nuevamente "
"más tarde."
11 changes: 11 additions & 0 deletions src/const/language/frCa.json
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,17 @@
"To complete your connection, please %1share%2 the following after signing in:": "Pour finaliser votre connexion, veuillez %1partager%2 les informations suivantes après vous être connecté :",
"Demo mode active": "Mode démo actif",
"Live institutions are not available in the demo environment. Please select *MX Bank* to test the connection process.": "Les établissements réels ne sont pas disponibles dans l'environnement de démonstration. Veuillez sélectionner *MX Bank* pour tester la procédure de connexion.",
"Connection unavailable": "Connexion indisponible",
"This institution is experiencing issues that prevent successful connections. It's unclear when this will be resolved.": "Cet établissement rencontre des problèmes qui empêchent d'établir des connexions. Il est difficile de déterminer quand la situation sera résolue.",
"Back": "Reculer",
"We couldn't find any accounts eligible for transfers. Please link a checking or savings account.": "Nous n'avons trouvé aucun compte admissible aux virements. Veuillez lier un compte chèques ou un compte d'épargne.",
"Successfully authenticated but no active or eligible accounts found. Verify account status at institution.": "Authentification réussie, mais aucun compte actif ou éligible trouvé. Vérifiez le statut du compte auprès de l'institution.",
"This may be due to closed accounts, revoked access, or a connection issue. Please try again later or connect a different institution.": "Cela peut être dû à des comptes fermés, un accès révoqué ou un problème de connexion. Veuillez réessayer plus tard ou connecter une autre institution.",
"OAuth access denied to required account data. User likely declined necessary permissions during OAuth flow. User may need to re-authorize and grant permissions.": "Accès OAuth refusé aux données de compte requises. L'utilisateur a probablement refusé les permissions nécessaires pendant le flux OAuth. L'utilisateur devra peut-être ré-autoriser et accorder les permissions.",
"We can't access your accounts because some required permissions weren't granted.": "Nous ne pouvons pas accéder à vos comptes car certaines permissions requises n'ont pas été accordées.",
"We're unable to connect to this institution right now. Please try again later.": "Nous ne parvenons pas à nous connecter à cette institution pour le moment. Veuillez réessayer plus tard.",
"The institution is temporarily unavailable due to maintenance. Please try again later.": "L'institution est temporairement indisponible en raison de la maintenance. Veuillez réessayer plus tard.",
"This institution isn't responding right now. Please try again later.": "Cette institution ne répond pas pour le moment. Veuillez réessayer plus tard.",
"connect/disclosure/policy/text\u0004By clicking Continue, you agree to the ": "En cliquant sur Continuer, vous acceptez la ",
"connect/disclosure/policy/link\u0004MX Privacy Policy.": "Politique de confidentialité de MX.",
"connect/disclosure/policy/link\u0004MX Privacy Policy": "Politique de confidentialité de MX.",
Expand Down
68 changes: 66 additions & 2 deletions src/const/language/frCa.po
Original file line number Diff line number Diff line change
Expand Up @@ -462,8 +462,7 @@ msgid "Oops! Something went wrong. Please try again later."
msgstr "Attention : un problème est survenu. Veuillez réessayer plus tard."

# TRANSLATED
#: src/components/support/SupportMenu.js
#: src/views/actionableError/useActionableErrorMap.tsx src/views/mfa/MFAStep.js
#: src/components/support/SupportMenu.js src/views/mfa/MFAStep.js
#: src/views/loginError/SecondaryActions.js
#: src/views/credentials/Credentials.js
msgid "Get help"
Expand Down Expand Up @@ -2171,3 +2170,68 @@ msgstr ""
#: src/views/institutionStatusDetails/InstitutionStatusDetails.tsx
msgid "Back"
msgstr "Reculer"

#: src/views/oauth/WaitingForOAuth.js
msgid "Failed to synchronize member data"
msgstr ""

#: src/views/actionableError/useActionableErrorMap.tsx
msgid ""
"We couldn't find any accounts eligible for transfers. Please link a checking "
"or savings account."
msgstr ""
"Nous n'avons trouvé aucun compte admissible aux virements. Veuillez lier un "
"compte chèques ou un compte d'épargne."

msgid ""
"Successfully authenticated but no active or eligible accounts found. Verify "
"account status at institution."
msgstr ""
"Authentification réussie, mais aucun compte actif ou éligible trouvé. "
"Vérifiez le statut du compte auprès de l'institution."

#: src/views/actionableError/useActionableErrorMap.tsx
msgid ""
"This may be due to closed accounts, revoked access, or a connection issue. "
"Please try again later or connect a different institution."
msgstr ""
"Cela peut être dû à des comptes fermés, un accès révoqué ou un problème de "
"connexion. Veuillez réessayer plus tard ou connecter une autre institution."

msgid ""
"OAuth access denied to required account data. User likely declined necessary "
"permissions during OAuth flow. User may need to re-authorize and grant "
"permissions."
msgstr ""
"Accès OAuth refusé aux données de compte requises. L'utilisateur a "
"probablement refusé les permissions nécessaires pendant le flux OAuth. "
"L'utilisateur devra peut-être ré-autoriser et accorder les permissions."

#: src/views/actionableError/useActionableErrorMap.tsx
msgid ""
"We can't access your accounts because some required permissions weren't "
"granted."
msgstr ""
"Nous ne pouvons pas accéder à vos comptes car certaines permissions requises "
"n'ont pas été accordées."

#: src/views/actionableError/useActionableErrorMap.tsx
msgid ""
"We're unable to connect to this institution right now. Please try again "
"later."
msgstr ""
"Nous ne parvenons pas à nous connecter à cette institution pour le moment. "
"Veuillez réessayer plus tard."

#: src/views/actionableError/useActionableErrorMap.tsx
msgid ""
"The institution is temporarily unavailable due to maintenance. Please try "
"again later."
msgstr ""
"L'institution est temporairement indisponible en raison de la maintenance. "
"Veuillez réessayer plus tard."

#: src/views/actionableError/useActionableErrorMap.tsx
msgid "This institution isn't responding right now. Please try again later."
msgstr ""
"Cette institution ne répond pas pour le moment. Veuillez réessayer plus tard."
2 changes: 1 addition & 1 deletion src/views/actionableError/ActionableError.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ export const ActionableError = () => {
truncate={false}
variant="Paragraph"
>
{currentMember.error.user_message}
{errorDetails?.userMessage || currentMember.error.user_message}
</Text>
</SlideDown>

Expand Down
17 changes: 17 additions & 0 deletions src/views/actionableError/useActionableErrorMap.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ type ActionableErrorAction = {
}
type ActionableErrorMapEntry = {
title: string
userMessage?: string
primaryAction: ActionableErrorAction
secondaryActions?: ActionableErrorAction
}
Expand All @@ -37,27 +38,43 @@ export const useActionableErrorMap = (jobDetailCode: number) => {
() => ({
[ACTIONABLE_ERROR_CODES.NO_ELIGIBLE_ACCOUNTS]: {
title: __('No eligible accounts'),
userMessage: __(
"We couldn't find any accounts eligible for transfers. Please link a checking or savings account.",
),
primaryAction: { label: __('Log in again'), action: goToCredentials },
secondaryActions: { label: __('Connect a different institution'), action: goToSearch },
},
[ACTIONABLE_ERROR_CODES.NO_ACCOUNTS]: {
title: __('No accounts found'),
userMessage: __(
'This may be due to closed accounts, revoked access, or a connection issue. Please try again later or connect a different institution.',
),
primaryAction: { label: __('Return to institution selection'), action: goToSearch },
},
[ACTIONABLE_ERROR_CODES.ACCESS_DENIED]: {
title: __('Additional permissions needed'),
userMessage: __(
"We can't access your accounts because some required permissions weren't granted.",
),
primaryAction: { label: __('Review instructions'), action: goToCredentials },
},
[ACTIONABLE_ERROR_CODES.INSTITUTION_DOWN]: {
title: __('Unable to connect'),
userMessage: __(
"We're unable to connect to this institution right now. Please try again later.",
),
primaryAction: { label: __('Return to institution selection'), action: goToSearch },
},
[ACTIONABLE_ERROR_CODES.INSTITUTION_MAINTENANCE]: {
title: __('Maintenance in progress'),
userMessage: __(
'The institution is temporarily unavailable due to maintenance. Please try again later.',
),
primaryAction: { label: __('Return to institution selection'), action: goToSearch },
},
[ACTIONABLE_ERROR_CODES.INSTITUTION_UNAVAILABLE]: {
title: __('Unable to connect'),
userMessage: __("This institution isn't responding right now. Please try again later."),
primaryAction: { label: __('Return to institution selection'), action: goToSearch },
},
}),
Expand Down
Loading