diff --git a/js/ui/chart.js b/js/ui/chart.js index 3a5978c..bda3a10 100644 --- a/js/ui/chart.js +++ b/js/ui/chart.js @@ -509,11 +509,17 @@ constructor() { settingsPopup.classList.toggle('hidden'); }); - document.addEventListener('click', (e) => { - if (!settingsPopup.contains(e.target) && e.target !== btnSettings) { + document.addEventListener('click', closeSettingsPopup); + document.addEventListener('touchstart', closeSettingsPopup, { passive: true }); + + function closeSettingsPopup(e) { + const isInside = settingsPopup.contains(e.target) || e.target === btnSettings; + const isSettingsButton = e.target.closest('#btnSettings'); + + if (!isInside && !isSettingsButton) { settingsPopup.classList.add('hidden'); } - }); + } } // Initialize state from storage