From a991ca4626fcb794d709c40e79883ab0c24d5a6b Mon Sep 17 00:00:00 2001 From: Russell Ballestrini Date: Fri, 11 Jul 2025 16:16:48 -0400 Subject: [PATCH] improve UX: close button closes settings panel first, then modal on second click --- src/uncloseai-embed-modal.js | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/uncloseai-embed-modal.js b/src/uncloseai-embed-modal.js index 89e1e1f..4af8371 100644 --- a/src/uncloseai-embed-modal.js +++ b/src/uncloseai-embed-modal.js @@ -221,11 +221,7 @@ async function openUncloseaiEmbeddedModalNew() { const closeBtn = document.createElement("button"); closeBtn.textContent = "✕"; closeBtn.className = "uncloseai-btn-close"; - closeBtn.onclick = () => { - modal.close(); - document.body.removeChild(modal); - uncloseaiEmbeddedModalOpen = false; - }; + // Close button handler will be set after settings panel is created // Add settings/menu button const menuBtn = document.createElement("button"); @@ -590,6 +586,22 @@ async function openUncloseaiEmbeddedModalNew() { localStorage.setItem("hermesSettingsOpen", settingsOpen.toString()); }; + // Set close button handler now that settings panel is available + closeBtn.onclick = () => { + // If settings panel is open, close it first + if (settingsOpen) { + settingsOpen = false; + settingsPanel.classList.toggle("open", settingsOpen); + localStorage.setItem("hermesSettingsOpen", settingsOpen.toString()); + return; // Don't close modal yet + } + + // Settings closed or not open, close the modal + modal.close(); + document.body.removeChild(modal); + uncloseaiEmbeddedModalOpen = false; + }; + // Quick action buttons const controls = document.createElement("div"); controls.className = "uncloseai-modal-controls";