@boomerang-io/utils
Version:
A library of reusable utilities and hooks for React webapps on the Boomerang platform.
52 lines (48 loc) • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = formatErrorMessage;
var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function formatErrorMessage(_ref) {
var _error$response;
let {
error,
defaultTitle = "Request Failed",
defaultMessage = "Please try again"
} = _ref;
let title = defaultTitle;
let message = defaultMessage;
const data = error === null || error === 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,
message
};
}
// if returning an object for the title
if ((0, _isPlainObject.default)(data.error)) {
const errorObj = data.error;
if (errorObj.message) {
title = errorObj.message;
}
} else {
const errorTitle = data.error || data.title;
if (errorTitle) {
title = errorTitle;
}
// set message if its there
const errorMessage = data.detail || data.message;
if (errorMessage) {
message = errorMessage;
}
}
title = "".concat(title, ".");
message = "".concat(message, ".");
return {
title,
message
};
}