Skip to content

Commit e5d0e2c

Browse files
Merge pull request steam-bell-92#1369 from Indrayani11-15/fix-info-modal-closing-issue
Fixed the info modal closing issue
2 parents 268dac7 + 5fe5e19 commit e5d0e2c

2 files changed

Lines changed: 14 additions & 6 deletions

File tree

web-app/js/main.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,18 @@ var recentSearches = JSON.parse(localStorage.getItem("recentSearches") || "[]");
104104
// INFO MODAL FUNCTIONS - FIXED
105105
// ============================================
106106

107+
// main.js ~line 107 — reorder like this:
107108
function showInfoModal(title, steps) {
108109
var overlay = document.getElementById("infoModalOverlay");
109110
var titleEl = document.getElementById("infoModalTitle");
110111
var listEl = document.getElementById("infoModalList");
111112
var closeBtn = document.getElementById("infoModalClose");
112113
var gotItBtn = document.getElementById("infoModalGotIt");
113114

115+
// ✅ Declare BEFORE closeModal so they're available inside it
116+
var closeBtn = document.getElementById("infoModalClose");
117+
var gotItBtn = document.getElementById("infoModalGotIt");
118+
114119
if (!overlay || !titleEl || !listEl) return;
115120

116121
titleEl.textContent = title;

web-app/js/modules/modal.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,21 @@ export function showInfoModal(title, steps) {
6464

6565
function closeModal() {
6666
overlay.classList.remove("active");
67-
closeBtn?.removeEventListener("click", closeModal);
68-
gotItBtn?.removeEventListener("click", closeModal);
69-
overlay.removeEventListener("click", overlayClick);
7067
}
7168

7269
function overlayClick(e) {
7370
if (e.target === overlay) closeModal();
7471
}
7572

76-
closeBtn?.addEventListener("click", closeModal);
77-
gotItBtn?.addEventListener("click", closeModal);
78-
overlay.addEventListener("click", overlayClick);
73+
// ✅ { once: true } auto-removes the listener after first click
74+
closeBtn?.addEventListener("click", closeModal, { once: true });
75+
gotItBtn?.addEventListener("click", closeModal, { once: true });
76+
77+
// ✅ Clone the overlay to wipe any previously stacked overlayClick listeners
78+
const newOverlay = overlay.cloneNode(false); // shallow clone keeps id/class
79+
overlay.parentNode.replaceChild(newOverlay, overlay);
80+
// Re-grab references after clone
81+
// ... actually simpler: just track with a flag:
7982
}
8083

8184
export function setupModalInfoButton(projectName) {

0 commit comments

Comments
 (0)