Skip to content

Commit 8e63c66

Browse files
authored
Support error code for email / phone adding unsupported (#29855)
matrix-org/matrix-spec-proposals#4178
1 parent f25fbde commit 8e63c66

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

src/AddThreepid.ts

+8
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ export default class AddThreepid {
7979
} catch (err) {
8080
if (err instanceof MatrixError && err.errcode === "M_THREEPID_IN_USE") {
8181
throw new UserFriendlyError("settings|general|email_address_in_use", { cause: err });
82+
} else if (err instanceof MatrixError && err.errcode === "M_THREEPID_MEDIUM_NOT_SUPPORTED") {
83+
throw new UserFriendlyError("settings|general|email_adding_unsupported_by_hs", { cause: err });
8284
}
8385
// Otherwise, just blurt out the same error
8486
throw err;
@@ -121,6 +123,8 @@ export default class AddThreepid {
121123
* @param {string} phoneCountry The ISO 2 letter code of the country to resolve phoneNumber in
122124
* @param {string} phoneNumber The national or international formatted phone number to add
123125
* @return {Promise} Resolves when the text message has been sent. Then call haveMsisdnToken().
126+
*
127+
* @throws {UserFriendlyError} An appropriate user-friendly error if the verification code could not be sent.
124128
*/
125129
public async addMsisdn(phoneCountry: string, phoneNumber: string): Promise<IRequestMsisdnTokenResponse> {
126130
try {
@@ -136,6 +140,10 @@ export default class AddThreepid {
136140
} catch (err) {
137141
if (err instanceof MatrixError && err.errcode === "M_THREEPID_IN_USE") {
138142
throw new UserFriendlyError("settings|general|msisdn_in_use", { cause: err });
143+
} else if (err instanceof MatrixError && err.errcode === "M_THREEPID_MEDIUM_NOT_SUPPORTED") {
144+
throw new UserFriendlyError("settings|general|msisdn_adding_unsupported_by_hs", { cause: err });
145+
} else if (err instanceof MatrixError && err.errcode === "M_INVALID_PARAM") {
146+
throw new UserFriendlyError("settings|general|invalid_phone_number", { cause: err });
139147
}
140148
// Otherwise, just blurt out the same error
141149
throw err;

src/i18n/strings/en_EN.json

+3
Original file line numberDiff line numberDiff line change
@@ -2634,6 +2634,7 @@
26342634
"discovery_needs_terms_title": "Let people find you",
26352635
"display_name": "Display Name",
26362636
"display_name_error": "Unable to set display name",
2637+
"email_adding_unsupported_by_hs": "This homeserver does not support adding email addresses to your account.",
26372638
"email_address_in_use": "This email address is already in use",
26382639
"email_address_label": "Email Address",
26392640
"email_not_verified": "Your email address hasn't been verified yet",
@@ -2658,7 +2659,9 @@
26582659
"error_share_msisdn_discovery": "Unable to share phone number",
26592660
"identity_server_no_token": "No identity access token found",
26602661
"identity_server_not_set": "Identity server not set",
2662+
"invalid_phone_number": "The phone number supplied does not appear to be valid.",
26612663
"language_section": "Language",
2664+
"msisdn_adding_unsupported_by_hs": "This homeserver does not support adding phone numbers to your account.",
26622665
"msisdn_in_use": "This phone number is already in use",
26632666
"msisdn_label": "Phone Number",
26642667
"msisdn_verification_field_label": "Verification code",

0 commit comments

Comments
 (0)