From 432523c23f2552a19c934cdd5891eceb1d6456c6 Mon Sep 17 00:00:00 2001 From: MatMoul Date: Fri, 15 May 2026 21:50:36 +0200 Subject: [PATCH] fix: toggle calc sample menus on repeated clicks --- samples/calc-02/index.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/samples/calc-02/index.js b/samples/calc-02/index.js index 46f7290..cf4ccef 100644 --- a/samples/calc-02/index.js +++ b/samples/calc-02/index.js @@ -343,13 +343,16 @@ function closeModeMenu() { } } -function openModeMenu() { - closeModeMenu(); +function toggleModeMenu() { + if (modeMenuEl) { + closeModeMenu(); + return; + } + closeConstMenu(); const rect = modeButton.getBoundingClientRect(); modeMenuEl = document.createElement('div'); modeMenuEl.className = 'mode-menu'; modeMenuEl.style.top = `${rect.bottom + 6 + window.scrollY}px`; - modeMenuEl.style.left = `${rect.left + window.scrollX}px`; modeOptions.forEach((mode) => { const button = document.createElement('button'); button.type = 'button'; @@ -370,7 +373,7 @@ function openModeMenu() { modeButton.addEventListener('click', (event) => { event.stopPropagation(); - openModeMenu(); + toggleModeMenu(); }); window.addEventListener('resize', () => { @@ -432,8 +435,12 @@ function closeConstMenu() { } } -function openConstMenu() { - closeConstMenu(); +function toggleConstMenu() { + if (constMenuEl) { + closeConstMenu(); + return; + } + closeModeMenu(); const rect = constButton.getBoundingClientRect(); constMenuEl = document.createElement('div'); constMenuEl.className = 'mode-menu'; @@ -461,7 +468,7 @@ function openConstMenu() { constButton.addEventListener('click', (event) => { event.stopPropagation(); - openConstMenu(); + toggleConstMenu(); }); leftButton.addEventListener('click', () => {});