Revert optimisations sidebar/fetch qui causaient des blocages navigateur
Retour a l'etat 408ab76. Les tentatives d'optimisation du nombre
de fetch (sidebar unique, config partagee, sequencement) causaient
des blocages sur Chrome/Firefox. On garde les features (forget wifi,
hotspot badge, UI wifi) mais on revient au chargement d'origine.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,31 +5,25 @@
|
||||
* - Shows/Hides "Screen" sidebar tab based on device type
|
||||
* - Updates sidebar device name
|
||||
* - Shows hotspot badge in sidebar when in hotspot mode
|
||||
*
|
||||
* Fetches config at window.onload (not DOMContentLoaded) to avoid
|
||||
* saturating the browser's 6-connection-per-domain limit.
|
||||
*/
|
||||
(function() {
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
let config = null;
|
||||
|
||||
// Observe DOM changes to apply config when sidebar/topbar are loaded
|
||||
// Fetch config once
|
||||
fetch('launcher.php?type=get_config_sqlite')
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
config = data;
|
||||
applyConfig(); // Apply immediately if elements are ready
|
||||
})
|
||||
.catch(error => console.error('Error loading config:', error));
|
||||
|
||||
// Observe DOM changes to handle dynamically loaded elements (sidebar, topbar)
|
||||
const observer = new MutationObserver(() => {
|
||||
if (config) applyConfig();
|
||||
});
|
||||
observer.observe(document.body, { childList: true, subtree: true });
|
||||
|
||||
// Fetch config after all initial resources are loaded
|
||||
window.addEventListener('load', () => {
|
||||
fetch('launcher.php?type=get_config_sqlite')
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
config = data;
|
||||
window._nebuleairConfig = data;
|
||||
applyConfig();
|
||||
document.dispatchEvent(new CustomEvent('nebuleair-config-ready', { detail: data }));
|
||||
})
|
||||
.catch(error => console.error('Error loading config:', error));
|
||||
});
|
||||
observer.observe(document.body, { childList: true, subtree: true });
|
||||
|
||||
function applyConfig() {
|
||||
if (!config) return;
|
||||
@@ -39,12 +33,13 @@
|
||||
// 1. Topbar Logo Logic
|
||||
const logo = document.getElementById('topbar-logo');
|
||||
if (logo && isModuleAirPro) {
|
||||
// prevent unnecessary re-assignments
|
||||
if (!logo.src.includes('logoModuleAir.png')) {
|
||||
logo.src = 'assets/img/logoModuleAir.png';
|
||||
}
|
||||
}
|
||||
|
||||
// 2. Sidebar Screen Tab Logic
|
||||
// 2. Sidebar Screen Tab Logic - Use class since ID might be duplicated (desktop/mobile)
|
||||
const navScreenElements = document.querySelectorAll('.nav-screen-item');
|
||||
if (navScreenElements.length > 0) {
|
||||
navScreenElements.forEach(navScreen => {
|
||||
@@ -73,4 +68,4 @@
|
||||
badge.style.display = (config.WIFI_status === 'hotspot') ? '' : 'none';
|
||||
});
|
||||
}
|
||||
})();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user