Commit ace51c31 authored by Claire Bontempo's avatar Claire Bontempo
Browse files

priortize adapter error over model error

parent bc99b9fd
Showing with 16 additions and 15 deletions
+16 -15
......@@ -11,7 +11,7 @@ import layout from '../templates/components/message-error';
* <MessageError @model={{model}} />
* ```
*
* @param model=null{DS.Model} - An Ember data model that will be used to bind error statest to the internal
* @param model=null{DS.Model} - An Ember data model that will be used to bind error states to the internal
* `errors` property.
* @param errors=null{Array} - An array of error strings to show.
* @param errorMessage=null{String} - An Error string to display.
......@@ -24,34 +24,35 @@ export default Component.extend({
displayErrors: computed(
'errorMessage',
'model.{isError,adapterError.message,adapterError.errors.@each}',
'errors',
'errors.[]',
'model.adapterError.{errors.[],message}',
'model.isError',
'parentView.mountModel.{adapterError,isError}',
function () {
const errorMessage = this.errorMessage;
const errors = this.errors;
const modelIsError = this.model?.isError;
if (errorMessage) {
return [errorMessage];
}
if (errors && errors.length > 0) {
return errors;
}
const modelIsError = this.model?.isError || this.parentView?.mountModel.isError;
if (modelIsError) {
if (!this.model.adapterError) {
let adapterError = this.model?.adapterError || this.parentView?.mountModel?.adapterError;
if (!adapterError) {
return;
}
if (this.model.adapterError.errors.length > 0) {
return this.model.adapterError.errors.map((e) => {
if (adapterError.errors.length > 0) {
return adapterError.errors.map((e) => {
if (typeof e === 'object') return e.title || e.message || JSON.stringify(e);
return e;
});
}
return [this.model.adapterError.message];
return [adapterError.message];
}
if (errorMessage) {
return [errorMessage];
}
if (errors && errors.length > 0) {
return errors;
}
return 'no error';
}
),
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment