From e5338f69ee5a82f1bdf60c82d087d9b4fbbbd6f2 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 8 Apr 2026 17:48:41 -0700 Subject: [PATCH 1/3] fix: replace userDropdown id with class to fix mobile dropdown Using getElementById('userDropdown') breaks when multiple dropdown elements exist (e.g., desktop sidebar + mobile hamburger menu both render a user dropdown). Only the first element is found, leaving the other non-functional. Switch all templates to use querySelectorAll('.userDropdown') so every dropdown instance toggles correctly. Closes #398 Co-Authored-By: Claude Opus 4.6 --- .../templates/layouts/admin-layout-v2.template.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/core/src/templates/layouts/admin-layout-v2.template.ts b/packages/core/src/templates/layouts/admin-layout-v2.template.ts index 8280c5ad2..5aa15c942 100644 --- a/packages/core/src/templates/layouts/admin-layout-v2.template.ts +++ b/packages/core/src/templates/layouts/admin-layout-v2.template.ts @@ -319,16 +319,20 @@ export function adminLayoutV2(data: AdminLayoutData): string { // User dropdown toggle function toggleUserDropdown() { - const dropdown = document.getElementById('userDropdown'); - dropdown.classList.toggle('hidden'); + const dropdowns = document.querySelectorAll('.userDropdown'); + dropdowns.forEach(function(dropdown) { + dropdown.classList.toggle('hidden'); + }); } // Close dropdown when clicking outside document.addEventListener('click', function(event) { - const dropdown = document.getElementById('userDropdown'); + const dropdowns = document.querySelectorAll('.userDropdown'); const button = event.target.closest('button'); if (!button || !button.getAttribute('onclick')) { - dropdown.classList.add('hidden'); + dropdowns.forEach(function(dropdown) { + dropdown.classList.add('hidden'); + }); } }); @@ -802,7 +806,7 @@ function renderTopBar(pageTitle: string, user?: any): string { -