add missing src2/kiri
This commit is contained in:
parent
7d22cc1029
commit
c9667476ee
34 changed files with 15187 additions and 0 deletions
75
src2/kiri/alerts.js
Normal file
75
src2/kiri/alerts.js
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
/** Copyright Stewart Allen <sa@grid.space> -- All Rights Reserved */
|
||||
|
||||
import { api } from './api.js';
|
||||
|
||||
let alerts = [];
|
||||
|
||||
function show(message, time) {
|
||||
if (message === undefined || message === null) {
|
||||
return update(true);
|
||||
}
|
||||
let rec = [message, Date.now(), time, true];
|
||||
if (api.feature.alert_event) {
|
||||
api.event.emit('alert', rec);
|
||||
} else {
|
||||
alerts.push(rec);
|
||||
setTimeout( update, time+0.02);
|
||||
update();
|
||||
}
|
||||
return rec;
|
||||
}
|
||||
|
||||
function hide(rec, recs) {
|
||||
if (Array.isArray(recs)) {
|
||||
for (let r of recs) {
|
||||
hide(r);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (api.feature.alert_event) {
|
||||
api.event.emit('alert.cancel', rec);
|
||||
return;
|
||||
}
|
||||
if (Array.isArray(rec)) {
|
||||
rec[3] = false;
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
function update(clear) {
|
||||
if (clear) {
|
||||
alerts = [];
|
||||
}
|
||||
const now = Date.now();
|
||||
const { ui } = api;
|
||||
// filter out by age and active flag
|
||||
alerts = alerts.filter(alert => {
|
||||
return alert[3] && (now - alert[1]) < ((alert[2] || 5) * 1000);
|
||||
});
|
||||
// limit to 5 showing
|
||||
while (alerts.length > 5) {
|
||||
alerts.shift();
|
||||
}
|
||||
// return if called before UI configured
|
||||
if (!ui.alert) {
|
||||
return;
|
||||
}
|
||||
if (alerts.length > 0) {
|
||||
ui.alert.text.innerHTML = alerts.map(v => ['<p>',v[0],'</p>'].join('')).join('');
|
||||
ui.alert.dialog.style.display = 'flex';
|
||||
} else {
|
||||
ui.alert.dialog.style.display = 'none';
|
||||
}
|
||||
}
|
||||
|
||||
export {
|
||||
hide,
|
||||
show,
|
||||
update
|
||||
};
|
||||
|
||||
export default {
|
||||
hide,
|
||||
show,
|
||||
update
|
||||
};
|
||||
Loading…
Reference in a new issue