@boomerang-io/utils
Version:
A library of reusable utilities and hooks for React webapps on the Boomerang platform.
59 lines (45 loc) • 1.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = formatErrorMessage;
var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function formatErrorMessage(_ref) {
var _error$response;
var error = _ref.error,
_ref$defaultTitle = _ref.defaultTitle,
defaultTitle = _ref$defaultTitle === void 0 ? "Request Failed" : _ref$defaultTitle,
_ref$defaultMessage = _ref.defaultMessage,
defaultMessage = _ref$defaultMessage === void 0 ? "Please try again" : _ref$defaultMessage;
var title = defaultTitle;
var message = defaultMessage;
var data = error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data; // No data, bail early and return default messages
if (!data) {
return {
title: title,
message: message
};
} // if returning an object for the title
if ((0, _isPlainObject.default)(data.error)) {
var errorObj = data.error;
if (errorObj.message) {
title = errorObj.message;
}
} else {
var errorTitle = data.error || data.title;
if (errorTitle) {
title = errorTitle;
} // set message if its there
var errorMessage = data.detail || data.message;
if (errorMessage) {
message = errorMessage;
}
}
title = "".concat(title, ".");
message = "".concat(message, ".");
return {
title: title,
message: message
};
}