-
Notifications
You must be signed in to change notification settings - Fork 0
/
popup-notify.js
66 lines (55 loc) · 1.46 KB
/
popup-notify.js
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
57
58
59
60
61
62
63
64
65
66
'use-strict';
const notificationType = {
success: 0,
error: 1,
warning: 2,
info: 3
};
const $ = document;
const header = $.querySelector('header');
function sendPopUpNotify(
message = 'Nenhuma mensagem definida.',
type = notificationType.warning,
durationMs = 1500
) {
//
let imgPath = '';
switch (type) {
//
case notificationType.info:
imgPath = './assets/icons/info-icon.svg';
break;
case notificationType.success:
imgPath = './assets/icons/success-icon.svg';
break;
case notificationType.warning:
imgPath = './assets/icons/warning_shield.svg';
break;
case notificationType.error:
imgPath = './assets/icons/warning_shield.svg';
break;
}
const htmlTemplate = `<img src="${imgPath}"><p>${message}</p>`;
const notifyCard = document.createElement('div');
notifyCard.classList.add('notify-card');
notifyCard.innerHTML = htmlTemplate;
let slideIn = true;
header.appendChild(notifyCard);
notifyCard.querySelector('img').addEventListener('load', _ => {
//
notifyCard.addEventListener('transitionend', _ => {
//
if (slideIn) {
//
setTimeout(_ => {
slideIn = false;
notifyCard.classList.remove('notify-card-slide-in');
}, durationMs);
} else {
notifyCard.remove();
}
});
notifyCard.classList.add('notify-card-slide-in', 'notify-card-shadow');
});
}
export { notificationType, sendPopUpNotify };