Scripts/resources/[ps]/ps-ui/html/js/menu.js

60 lines
1.6 KiB
JavaScript
Raw Permalink Normal View History

2024-12-29 20:28:24 +00:00
let Items = [];
let Open = false;
function CreateMenu(data) {
Items = [];
for (let i = 0; i < data.length; i++) {
let e = "";
let header = data[i].header ? data[i].header : "";
let text = data[i].text ? data[i].text : "";
let icon = data[i].icon ? data[i].icon : "";
let color = data[i].color ? data[i].color: "";
e = $(`
<div class="item" onclick="MenuSelect(${i})">
<div class="menu-icon">
<span style="color:${color};"><i class="${icon}"></i></span>
</div>
<div class="menu-text">
<div class="header">${header}</div>
<div class="text">${text}</div>
</div>
</div>`
);
Items[i] = data[i];
$('#menu-items').append(e);
}
Open = true;
}
window.addEventListener('message', (event) => {
if (event.data.action === 'menu-open' && event.data.data != null) {
CreateMenu(event.data.data)
}
});
document.addEventListener("keydown", function(ev) {
let key_pressed = ev.key;
let valid_keys = ['Escape'];
if (valid_keys.includes(key_pressed) && Open) {
switch (key_pressed) {
case 'Escape':
MenuClose()
break;
}
}
});
function MenuClose() {
$.post('https://ps-ui/menuClose', JSON.stringify({"ok":true}));
$(".item").remove();
Open = false
}
function MenuSelect(id) {
let data = Items[id];
$.post(`https://ps-ui/MenuSelect`, JSON.stringify({"data":data, "ok":true}));
MenuClose();
}