diff --git a/src/components/LanguageSwitcher.astro b/src/components/LanguageSwitcher.astro index b3675e2..ae14626 100644 --- a/src/components/LanguageSwitcher.astro +++ b/src/components/LanguageSwitcher.astro @@ -42,7 +42,7 @@ const checkBase = "wr:size-4 wr:opacity-0 wr:scale-90 wr:transition"; - + {showLabel && Language} @@ -101,14 +101,19 @@ const checkBase = "wr:size-4 wr:opacity-0 wr:scale-90 wr:transition"; const itemSelector = `[data-set-lang][data-owner="${containerId}"]`; function reflectUI(code) { - // set label + + const flagEl = host.querySelector("[data-current-flag]"); + if (flagEl) { + const lang = languages.find(l => l.code === code) || { flag: "mdi:earth" }; + flagEl.setAttribute("name", lang.flag || "mdi:earth"); + } + const labelEl = host.querySelector("[data-current-label]"); if (labelEl) { const lang = languages.find(l => l.code === code) || { label: code }; labelEl.textContent = lang.label; } - // mark active items (remember they are portaled) document.querySelectorAll(itemSelector).forEach(el => { const active = el.getAttribute("data-set-lang") === code; el.setAttribute("aria-checked", active ? "true" : "false");