feat: HUB-18 thème commun — barre v0.5.0 + init thème Hub (2.84.1, fusion #132)
This commit is contained in:
@@ -1214,6 +1214,30 @@
|
||||
function initTheme() {
|
||||
const saved = localStorage.getItem("obsigate-theme") || "dark";
|
||||
applyTheme(saved);
|
||||
// Thème commun de la suite (HUB-18, fusion #132) : la barre
|
||||
// commune (barre v0.5.0) applique la préférence du Hub
|
||||
// (sombre/clair/système) à l'ouverture — directement sur
|
||||
// data-theme, et via l'événement « draco:theme » pour que le
|
||||
// mécanisme propre d'ObsiGate suive (icône et libellé du bouton,
|
||||
// feuilles highlight.js). applyTheme mémorise le mode appliqué
|
||||
// dans « obsigate-theme » : la préférence du Hub devient le
|
||||
// choix local courant, et le bouton de bascule reste le maître
|
||||
// pour la suite de la session (aucune ré-application de la barre
|
||||
// après l'ouverture). « systeme » arrive déjà résolu en mode
|
||||
// effectif (detail.mode) par la barre. Repli : si le Hub ne
|
||||
// répond pas, aucun événement n'arrive et le choix local
|
||||
// ci-dessus reste seul maître, comme avant.
|
||||
document.addEventListener("draco:theme", (e) => {
|
||||
const mode = e && e.detail && e.detail.mode;
|
||||
if (mode === "dark" || mode === "light") applyTheme(mode);
|
||||
});
|
||||
// Si la barre s'est initialisée AVANT ce module (ordre des
|
||||
// scripts defer/module selon la page), sa préférence déjà
|
||||
// résolue depuis son cache est reprise ici.
|
||||
const barre = window.DRACO_BAR;
|
||||
if (barre && (barre.themeMode === "dark" || barre.themeMode === "light")) {
|
||||
applyTheme(barre.themeMode);
|
||||
}
|
||||
}
|
||||
|
||||
function applyTheme(theme) {
|
||||
|
||||
Reference in New Issue
Block a user