fix: toggle calc sample menus on repeated clicks

This commit is contained in:
2026-05-15 21:50:36 +02:00
parent 9cbddfa0c2
commit 432523c23f
+14 -7
View File
@@ -343,13 +343,16 @@ function closeModeMenu() {
} }
} }
function openModeMenu() { function toggleModeMenu() {
closeModeMenu(); if (modeMenuEl) {
closeModeMenu();
return;
}
closeConstMenu();
const rect = modeButton.getBoundingClientRect(); const rect = modeButton.getBoundingClientRect();
modeMenuEl = document.createElement('div'); modeMenuEl = document.createElement('div');
modeMenuEl.className = 'mode-menu'; modeMenuEl.className = 'mode-menu';
modeMenuEl.style.top = `${rect.bottom + 6 + window.scrollY}px`; modeMenuEl.style.top = `${rect.bottom + 6 + window.scrollY}px`;
modeMenuEl.style.left = `${rect.left + window.scrollX}px`;
modeOptions.forEach((mode) => { modeOptions.forEach((mode) => {
const button = document.createElement('button'); const button = document.createElement('button');
button.type = 'button'; button.type = 'button';
@@ -370,7 +373,7 @@ function openModeMenu() {
modeButton.addEventListener('click', (event) => { modeButton.addEventListener('click', (event) => {
event.stopPropagation(); event.stopPropagation();
openModeMenu(); toggleModeMenu();
}); });
window.addEventListener('resize', () => { window.addEventListener('resize', () => {
@@ -432,8 +435,12 @@ function closeConstMenu() {
} }
} }
function openConstMenu() { function toggleConstMenu() {
closeConstMenu(); if (constMenuEl) {
closeConstMenu();
return;
}
closeModeMenu();
const rect = constButton.getBoundingClientRect(); const rect = constButton.getBoundingClientRect();
constMenuEl = document.createElement('div'); constMenuEl = document.createElement('div');
constMenuEl.className = 'mode-menu'; constMenuEl.className = 'mode-menu';
@@ -461,7 +468,7 @@ function openConstMenu() {
constButton.addEventListener('click', (event) => { constButton.addEventListener('click', (event) => {
event.stopPropagation(); event.stopPropagation();
openConstMenu(); toggleConstMenu();
}); });
leftButton.addEventListener('click', () => {}); leftButton.addEventListener('click', () => {});