]> danix's work - danix.xyz-2.git/commitdiff
fix: prevent menu flicker when navigating to new page
authorDanilo M. <redacted>
Thu, 16 Apr 2026 13:59:51 +0000 (15:59 +0200)
committerDanilo M. <redacted>
Thu, 16 Apr 2026 13:59:51 +0000 (15:59 +0200)
- Add beforeunload event listener to close menu before page navigation
- This prevents the menu from briefly appearing on the new page
- Menu state is explicitly set to false before unload
- Rebuild CSS: main.min.css updated

Co-Authored-By: Claude Haiku 4.5 <redacted>
themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html

index 02e6d0dee1bbf0311d9458672ffea075d20ba9b4..caa6c6dee5b5d9c6c9528d8fa42cfe614ae7ad05 100644 (file)
 </div>
 
 <script>
-  // Make menuOpen accessible from the menu toggle button
-  document.addEventListener('DOMContentLoaded', () => {
-    const menuToggle = document.getElementById('menu-toggle');
-    if (menuToggle && window.__alpineInstances) {
-      menuToggle.addEventListener('click', (e) => {
-        e.preventDefault();
-        // Find the Alpine component and toggle it
-        const overlay = document.querySelector('[x-data*="menuOpen"]');
-        if (overlay && overlay.__x) {
-          overlay.__x.$data.menuOpen = !overlay.__x.$data.menuOpen;
-        }
-      });
+  // Close menu before page navigation to prevent flicker
+  window.addEventListener('beforeunload', () => {
+    const overlay = document.querySelector('[x-data*="menuOpen"]');
+    if (overlay && overlay.__x) {
+      overlay.__x.$data.menuOpen = false;
     }
   });
 </script>