import UserView from './userView';
import global from './global';
const arrayError = [
'useris-error-empty-terms',
'useris-error-pin',
'useris-error-msg',
'useris-error-op',
'useris-error-password',
'useris-error-password2',
'useris-error-old-password',
'useris-error-repeated-password',
'useris-error-password-not-changed',
'useris-error-password-match',
'useris-error-password-not-valid',
'useris-error-newton-error',
'useris-username-error',
'useris-nickname-not-changed',
'useris-error-required-input',
'useris-error-invalid-number'
];
const UserViewInstance = new UserView();
export function manageErrorWithClass(error) {
global.logger.log('ErrorManager: ', error);
let errorName = '';
if (error) {
errorName = error.message || error;
}
if (errorName && arrayError.indexOf(errorName) >= 0) {
UserViewInstance.showElementByClass(errorName);
}
}
export function manageErrorInContainer(error, containerId) {
global.logger.log('ErrorManager: ', 'Container Error:', `${error} in ${containerId}`);
let errorName = '';
if (error) {
errorName = error.message || error;
}
if (errorName && arrayError.indexOf(errorName) >= 0) {
UserViewInstance.showElementByClassInContainer(errorName, containerId);
}
}
export function cleanError() {
arrayError.forEach((singleError) => {
UserViewInstance.hideElementByClass(singleError);
});
}
export function cleanErrorEvo() {
let errorElements = [];
arrayError.forEach((singleError) => {
errorElements = UserViewInstance.getElementByQuerySelectorAll(`.${singleError}`);
if (errorElements) {
errorElements.forEach((element) => {
if (element.style) {
element.style.display = 'none';
}
});
}
});
}
/**
* @memberOf Useris
* @function triggerError
*
* @description Expose the useris error manager
* to the web application to show error or warning message.
*
* @param {string} error div to show for the error
*
* @example
* Useris.triggerError('useris-error-newton-error');
*/
export function manageError(error, containerId) {
if (containerId) {
manageErrorInContainer(error, containerId);
} else {
manageErrorWithClass(error);
}
}
export default {
manageError,
manageErrorInContainer,
manageErrorWithClass,
cleanError,
cleanErrorEvo
};