fipamo/src/com/ui/Notifications.js
Are0h 2501a19685 UI design tweaks
There were some inconsistencies in the UI due to all the changes that
were made to the styleshets, so I fixed the obvious ones that were show
stoppers.

There's more in there to be smoothed out, so this is just the start.
2022-05-10 18:05:41 -07:00

101 lines
2.4 KiB
JavaScript

import anime from 'animejs/lib/anime.es.js';
const notifcation = document.getElementById('notifications');
const notify = document.getElementById('notify-message');
const messageText = document.getElementById('message-text');
const notifyText = document.getElementById('notify-text');
const notifyProgress = document.getElementById('notify-progress');
const iconGood = document.getElementById('notify-good');
const iconLame = document.getElementById('notify-lame');
const iconWorking = document.getElementById('notify-working');
export default class Notfications {
//--------------------------
// constructor
//--------------------------
constructor() {}
//--------------------------
// methods
//--------------------------
alert(text, status) {
iconWorking.style.display = 'none';
iconGood.style.display = 'none';
iconLame.style.display = 'none';
var color = '';
if (status !== null) {
anime({
targets: notifyProgress,
opacity: 0,
easing: 'easeInOutQuint',
duration: 500
});
if (status) {
color = '#32cd32';
iconWorking.style.display = 'none';
iconGood.style.display = 'block';
} else {
color = '#F64747';
iconWorking.style.display = 'none';
iconLame.style.display = 'block';
}
} else {
color = '#200317';
iconWorking.style.display = 'block';
anime({
targets: notifyProgress,
opacity: 1,
easing: 'easeInOutQuint',
duration: 500
});
}
messageText.innerHTML = text;
anime({
targets: notifcation,
marginTop: '-10',
easing: 'easeInOutQuint',
duration: 10,
complete: () => {
anime({
targets: notify,
rotateX: '0',
easing: 'easeInOutQuint',
duration: 700
});
anime({
targets: notifyText,
backgroundColor: color,
easing: 'easeInOutQuint',
duration: 700,
complete: () => {
setTimeout(() => {
if (status !== null) {
anime({
targets: notify,
rotateX: '-120',
easing: 'easeInOutQuint',
duration: 700,
complete: () => {
anime({
targets: notifcation,
marginTop: '-55',
easing: 'easeInOutQuint',
delay: 700,
duration: 50
});
//notifcation.style.display = 'none';
}
});
}
}, 1000);
}
});
}
});
}
//--------------------------
// event handlers
//--------------------------
}