Ignore global notifications that do not contain a message

This commit is contained in:
Brett Sun 2016-03-10 12:45:21 +01:00
parent dcdae7b7b1
commit 4cd093aaa8
3 changed files with 18 additions and 11 deletions

View File

@ -26,11 +26,13 @@ let CreateEditionsForm = React.createClass({
},
handleSuccess(response) {
let notification = new GlobalNotificationModel(response.notification, 'success', 10000);
const { handleSuccess } = this.props;
const notification = new GlobalNotificationModel(response.notification, 'success', 10000);
GlobalNotificationActions.appendGlobalNotification(notification);
if(this.props.handleSuccess) {
this.props.handleSuccess(response);
if (typeof handleSuccess === 'function') {
handleSuccess(response);
}
},

View File

@ -2,18 +2,21 @@
export default class GlobalNotificationModel {
constructor(message, type = 'info', dismissAfter = 5000) {
if(message) {
if (message) {
this.message = message;
} else {
throw new Error('A notifications message must be defined.');
console.logGlobal(new Error('Global notification did not contain a message and was ignored'), {
dismissAfter,
type
});
}
if(type === 'info' || type === 'success' || type === 'warning' || type === 'danger') {
if (type === 'info' || type === 'success' || type === 'warning' || type === 'danger') {
this.type = type;
} else {
throw new Error('A notification\'s type either has to be info, success, warning, danger. Not: ' + type);
throw new Error(`A notification's type either has to be info, success, warning, danger. Not: ${type}`);
}
this.dismissAfter = dismissAfter;
}
}
}

View File

@ -16,10 +16,12 @@ class GlobalNotificationStore {
}
onAppendGlobalNotification(newNotification) {
this.notificationQueue.push(newNotification);
if (newNotification && newNotification.message) {
this.notificationQueue.push(newNotification);
if (!this.notificationsPaused && this.notificationStatus === 'ready') {
this.showNextNotification();
if (!this.notificationsPaused && this.notificationStatus === 'ready') {
this.showNextNotification();
}
}
}