index.js
1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
require('./message-box.scss');
var messageBoxTlp = '<span class="message"></span>';
function MessageBox() {
this.element = null;
this.message = null;
}
MessageBox.LEVELS = ['info', 'warning', 'success', 'default'];
MessageBox.prototype.load = function (element) {
this.element = element;
this.element.classList.add('message-box');
this.element.innerHTML = messageBoxTlp;
this.hide();
};
MessageBox.prototype.hide = function(message) {
if (message !== this.message) return;
this.message = null;
this.element.classList.remove('active');
MessageBox.LEVELS.forEach(function(level) {
this.element.classList.remove(level);
}, this);
};
MessageBox.prototype.show = function(level, message, time) {
var self = this;
level = MessageBox.LEVELS.indexOf(level) == -1 ? 'info' : level;
this.hide();
self.element.classList.add('active');
self.element.classList.add(level);
self.element.querySelector('.message').innerHTML = message;
self.message = {
text: message
};
var ref = self.message;
if (time) {
setTimeout(function () {
self.hide(ref);
}, time + 1);
}
return this.message;
};
module.exports = MessageBox;