mirror of https://github.com/hashicorp/consul
41 lines
949 B
JavaScript
41 lines
949 B
JavaScript
|
import Component from '@ember/component';
|
||
|
|
||
|
import { inject as service } from '@ember/service';
|
||
|
|
||
|
export default Component.extend({
|
||
|
tagName: '',
|
||
|
notify: service('flashMessages'),
|
||
|
dom: service('dom'),
|
||
|
oncomplete: function() {},
|
||
|
init: function() {
|
||
|
this._super(...arguments);
|
||
|
this.guid = this.dom.guid(this);
|
||
|
},
|
||
|
didInsertElement: function() {
|
||
|
const $el = this.dom.element(`#${this.guid}`);
|
||
|
const options = {
|
||
|
timeout: 6000,
|
||
|
extendedTimeout: 300,
|
||
|
dom: $el.innerHTML,
|
||
|
};
|
||
|
if (this.sticky) {
|
||
|
options.sticky = true;
|
||
|
}
|
||
|
$el.remove();
|
||
|
this.notify.clearMessages();
|
||
|
if (typeof this.after === 'function') {
|
||
|
Promise.resolve(this.after())
|
||
|
.catch(e => {
|
||
|
if (e.name !== 'TransitionAborted') {
|
||
|
throw e;
|
||
|
}
|
||
|
})
|
||
|
.then(res => {
|
||
|
this.notify.add(options);
|
||
|
});
|
||
|
} else {
|
||
|
this.notify.add(options);
|
||
|
}
|
||
|
},
|
||
|
});
|