Files
ignis/packages/bridge/src/status-bar.js

36 lines
919 B
JavaScript
Raw Normal View History

2026-03-30 01:05:20 +02:00
const STATUS_LABELS = {
open: "Ignis server: Connected",
2026-03-30 01:05:20 +02:00
connecting: "Ignis server: Connecting...",
closed: "Ignis server: Disconnected",
};
const STATUS_DOT_CLASSES = {
open: "ignis-statusbar-connected",
connecting: "ignis-statusbar-connecting",
closed: "ignis-statusbar-disconnected",
2026-03-30 01:05:20 +02:00
};
function initStatusBar(plugin) {
const ws = window.__ignis.ws;
2026-03-30 01:05:20 +02:00
const item = plugin.addStatusBarItem();
item.addClass("ignis-statusbar-item");
const dot = item.createEl("span", {
cls: "ignis-statusbar-dot",
});
item.setAttribute("data-tooltip-position", "top");
function render(state) {
dot.className = `ignis-statusbar-dot ${STATUS_DOT_CLASSES[state] || STATUS_DOT_CLASSES.closed}`;
item.setAttribute("aria-label", STATUS_LABELS[state] || STATUS_LABELS.closed);
}
2026-03-30 01:05:20 +02:00
render(ws.isOpen() ? "open" : "closed");
2026-03-30 01:05:20 +02:00
return ws.onStateChange(render);
2026-03-30 01:05:20 +02:00
}
module.exports = { initStatusBar };