Initial QSfera import
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
import { withTranslation } from 'react-i18next';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
export const ERROR_LOGIN_VALIDATE_MISSINGUSERNAME = 'konnect.error.login.validate.missingUsername';
|
||||
export const ERROR_LOGIN_VALIDATE_MISSINGPASSWORD = 'konnect.error.login.validate.missingPassword';
|
||||
export const ERROR_LOGIN_FAILED = 'konnect.error.login.failed';
|
||||
export const ERROR_HTTP_NETWORK_ERROR = 'konnect.error.http.networkError';
|
||||
export const ERROR_HTTP_UNEXPECTED_RESPONSE_STATUS = 'konnect.error.http.unexpectedResponseStatus';
|
||||
export const ERROR_HTTP_UNEXPECTED_RESPONSE_STATE = 'konnect.error.http.unexpectedResponseState';
|
||||
|
||||
// Error with values.
|
||||
export class ExtendedError extends Error {
|
||||
values = undefined;
|
||||
|
||||
constructor(message, values) {
|
||||
super(message);
|
||||
if (Error.captureStackTrace !== undefined) {
|
||||
Error.captureStackTrace(this, ExtendedError);
|
||||
}
|
||||
this.values = values;
|
||||
}
|
||||
}
|
||||
|
||||
// Component to translate error text with values.
|
||||
function ErrorMessageComponent(props) {
|
||||
const { error, t, values } = props;
|
||||
|
||||
if (!error) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const id = error.id ? error.id : error.message;
|
||||
const messageDescriptor = Object.assign({}, {
|
||||
id,
|
||||
defaultMessage: error.id ? error.message : undefined,
|
||||
values: {
|
||||
...error.values,
|
||||
...values,
|
||||
},
|
||||
});
|
||||
|
||||
switch (messageDescriptor.id) {
|
||||
case ERROR_LOGIN_VALIDATE_MISSINGUSERNAME:
|
||||
return t("konnect.error.login.validate.missingUsername", "Enter a valid value.", messageDescriptor.values);
|
||||
case ERROR_LOGIN_VALIDATE_MISSINGPASSWORD:
|
||||
return t("konnect.error.login.validate.missingPassword", "Enter your password.");
|
||||
case ERROR_LOGIN_FAILED:
|
||||
return t("konnect.error.login.failed", "Logon failed. Please verify your credentials and try again.");
|
||||
case ERROR_HTTP_NETWORK_ERROR:
|
||||
return t("konnect.error.http.networkError", "Network error. Please check your connection and try again.");
|
||||
case ERROR_HTTP_UNEXPECTED_RESPONSE_STATUS:
|
||||
return t("konnect.error.http.unexpectedResponseStatus", "Unexpected HTTP response: {{status}}. Please check your connection and try again.", messageDescriptor.values);
|
||||
case ERROR_HTTP_UNEXPECTED_RESPONSE_STATE:
|
||||
return t("konnect.error.http.unexpectedResponseState", "Unexpected response state: {{state}}", messageDescriptor.values);
|
||||
default:
|
||||
}
|
||||
|
||||
const f = t;
|
||||
return f(messageDescriptor.defaultMessage, messageDescriptor.values);
|
||||
}
|
||||
|
||||
ErrorMessageComponent.propTypes = {
|
||||
error: PropTypes.object,
|
||||
t: PropTypes.func,
|
||||
values: PropTypes.any,
|
||||
};
|
||||
export const ErrorMessage = withTranslation()(ErrorMessageComponent);
|
||||
Reference in New Issue
Block a user