Rocket.Chat.ReactNative/app/views/LoginView/handleLoginErrors.ts

36 lines
1.1 KiB
TypeScript

import i18n from '../../i18n';
// https://github.com/RocketChat/Rocket.Chat/blob/cd5cbe2ac60939d4d94a62926b43322be9168ce0/packages/web-ui-registration/src/LoginForm.tsx#L28
const LOGIN_SUBMIT_ERRORS = {
'error-user-is-not-activated': {
i18n: 'Before_you_can_login'
},
'error-app-user-is-not-allowed-to-login': {
i18n: 'App_users_are_not_allowed_to_log_in_directly'
},
'user-not-found': {
i18n: 'User_not_found_or'
},
'error-login-blocked-for-ip': {
i18n: 'Login_has_been_temporarily_blocked_for_this_IP'
},
'error-login-blocked-for-user': {
i18n: 'Login_has_been_temporarily_blocked_for_this_User'
},
'error-license-user-limit-reached': {
i18n: 'The_maximum_number_of_users_has_been_reached'
},
'error-invalid-email': {
i18n: 'Invalid_Email'
}
};
export const handleLoginErrors = (error: keyof typeof LOGIN_SUBMIT_ERRORS): string => {
const errorKey = Object.keys(LOGIN_SUBMIT_ERRORS).find(key => error.includes(key)) as keyof typeof LOGIN_SUBMIT_ERRORS;
const e = errorKey ? LOGIN_SUBMIT_ERRORS[errorKey].i18n : 'Login_error';
if (i18n.isTranslated(e)) {
return i18n.t(e);
}
return i18n.t('Login_error');
};