fix: re-render sidebar when module config loads

- Convert sidebar.js IIFE to window.renderSidebar() so it can be re-rendered
- Call window.renderSidebar(data) from app-init.js after fetching modules
- Ensures sidebar reflects actual tenant module config, not stale localStorage
This commit is contained in:
2026-05-28 00:36:07 +00:00
parent 9f04bfe0bb
commit 77541e4c52
2 changed files with 14 additions and 9 deletions

View File

@@ -190,6 +190,9 @@
if (data) {
localStorage.setItem('pos_modules', JSON.stringify(data));
window.POS_USER.modules = data;
if (typeof window.renderSidebar === 'function') {
window.renderSidebar(data);
}
}
}).catch(function() {});
} catch(e) {}

View File

@@ -3,7 +3,7 @@
* Replaces existing sidebar in each page with a consistent, themed version.
* Uses i18n t() for all labels when available.
*/
(function() {
window.renderSidebar = function(modulesOverride) {
'use strict';
// i18n helper — falls back to raw string if i18n.js not loaded
@@ -18,9 +18,13 @@
var currentLang = localStorage.getItem('pos_lang') || 'es';
var modules = {};
try {
modules = JSON.parse(localStorage.getItem('pos_modules') || '{}');
} catch(e) { modules = {}; }
if (modulesOverride && typeof modulesOverride === 'object') {
modules = modulesOverride;
} else {
try {
modules = JSON.parse(localStorage.getItem('pos_modules') || '{}');
} catch(e) { modules = {}; }
}
function moduleEnabled(key) {
// Default to true if not configured yet
@@ -135,10 +139,6 @@
if (main) main.classList.add('pos-main-offset');
// ── Tablet/mobile: sidebar toggle + overlay ─────────────────────
// Creates a hamburger button + overlay for screens < 1024px.
// The CSS in pos-glass.css hides the sidebar by default on tablets
// and shows it as a slide-in drawer when .open is added.
var sidebar = document.querySelector('.pos-sidebar, .sidebar, #sidebar');
var overlay = document.getElementById('sidebar-overlay');
@@ -193,5 +193,7 @@
// Reveal sidebar smoothly after replacement to avoid flash/stun
document.body.classList.add('sidebar-ready');
};
})();
// Initial render
window.renderSidebar();