|
| 1 | +import { applyRippleEffect } from './main.js'; |
| 2 | + |
1 | 3 | const languageButton = document.querySelector('.language-button'); |
2 | 4 | const languageMenu = document.querySelector('.language-menu'); |
3 | 5 | const languageOptions = document.querySelectorAll('.language-option'); |
@@ -49,6 +51,7 @@ export async function loadTranslations() { |
49 | 51 | const response = await fetch(`locales/${lang}.json`); |
50 | 52 | translations = await response.json(); |
51 | 53 | applyTranslations(); |
| 54 | + applyRippleEffect(); |
52 | 55 | } |
53 | 56 |
|
54 | 57 | /** |
@@ -100,17 +103,20 @@ export function setupLanguageMenu() { |
100 | 103 | } |
101 | 104 | }); |
102 | 105 | const closeLanguageMenu = () => { |
103 | | - languageMenu.classList.remove("show"); |
104 | | - languageOverlay.style.display = 'none'; |
105 | | - } |
106 | | - languageMenu.addEventListener("click", (e) => { |
107 | | - if (e.target.classList.contains("language-option")) { |
108 | | - const lang = e.target.getAttribute("data-lang"); |
109 | | - localStorage.setItem('trickyAddonLanguage', lang); |
110 | | - loadTranslations(lang); |
111 | | - closeLanguageMenu(); |
| 106 | + setTimeout(() => { |
| 107 | + languageMenu.classList.remove("show"); |
| 108 | + languageOverlay.style.display = 'none'; |
| 109 | + }, 80) |
112 | 110 | } |
113 | | -}); |
| 111 | + languageMenu.addEventListener("click", async (e) => { |
| 112 | + if (e.target.classList.contains("language-option")) { |
| 113 | + const lang = e.target.getAttribute("data-lang"); |
| 114 | + localStorage.setItem('trickyAddonLanguage', lang); |
| 115 | + closeLanguageMenu(); |
| 116 | + await new Promise(resolve => setTimeout(resolve, 200)); |
| 117 | + loadTranslations(lang); |
| 118 | + } |
| 119 | + }); |
114 | 120 | } |
115 | 121 |
|
116 | 122 | /** |
|
0 commit comments