patch menu build to use loaded language

This commit is contained in:
Stewart Allen 2026-02-22 16:20:52 -05:00
commit e7654b83b5

View file

@ -1,6 +1,7 @@
/** Copyright Stewart Allen <sa@grid.space> -- All Rights Reserved */
import { $, h } from '../../moto/webui.js';
import { api } from './api.js';
const { div, span, label, input, button, i, hr } = h;
@ -12,6 +13,10 @@ function on(actions, id) {
return actions && typeof actions[id] === 'function' ? { onclick: actions[id] } : {};
}
function tr(key, fallback) {
return api.language?.current?.[key] || fallback || key;
}
function menuItem(actions, { id, lk, xlk, text, title, iconClass, className, children }) {
const attr = {
...(id ? { id } : {}),
@ -23,8 +28,9 @@ function menuItem(actions, { id, lk, xlk, text, title, iconClass, className, chi
...(lk ? { lk } : {}),
...(xlk ? { xlk } : {})
};
const resolved = lk ? tr(lk, text) : xlk ? tr(xlk, text) : text;
return div(attr, [
text !== undefined ? label({ ...lblAttr, _: text }) : undefined,
resolved !== undefined ? label({ ...lblAttr, _: resolved }) : undefined,
iconClass ? span([icon(iconClass)]) : undefined,
children
].filter(v => v !== undefined));
@ -37,8 +43,9 @@ function dropMenu(actions, side, items) {
}
function topMenu(actions, { text, lk, iconClass, side = 'left', right = false, items }) {
const resolved = lk ? tr(lk, text) : text;
return span({ class: right ? 'menu-right' : undefined }, [
text !== undefined ? label({ ...(lk ? { lk } : {}), _: text }) : undefined,
resolved !== undefined ? label({ ...(lk ? { lk } : {}), _: resolved }) : undefined,
iconClass ? icon(iconClass) : undefined,
dropMenu(actions, side, items)
]);