From 397dc422c5a1578b36674472d62d089ea4157cbb Mon Sep 17 00:00:00 2001 From: creations Date: Sat, 26 Apr 2025 06:25:39 -0400 Subject: [PATCH] fix issue with status indactor --- public/js/index.js | 48 +++++++++++++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/public/js/index.js b/public/js/index.js index d753b0f..682f298 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -419,25 +419,43 @@ async function updatePresence(data) { status = data.discord_status; } - let updatedStatusIndicator = avatarWrapper.querySelector(".status-indicator"); - const updatedMobileIcon = avatarWrapper.querySelector( - ".platform-icon.mobile-only", - ); + for (const el of avatarWrapper.querySelectorAll(".platform-icon")) { + const platformType = ["mobile-only", "desktop-only", "web-only"].find(type => el.classList.contains(type)); - if (platform.mobile && !updatedMobileIcon) { - avatarWrapper.innerHTML += ` - - - - `; - } else if (!platform.mobile && updatedMobileIcon) { - updatedMobileIcon.remove(); - avatarWrapper.innerHTML += `
`; + if (!platformType) continue; + + const active = + (platformType === "mobile-only" && platform.mobile) || + (platformType === "desktop-only" && platform.desktop) || + (platformType === "web-only" && platform.web); + + if (!active) { + el.remove(); + } else { + el.setAttribute("class", `platform-icon ${platformType} ${status}`); + } } - updatedStatusIndicator = avatarWrapper.querySelector(".status-indicator"); + if (platform.mobile && !avatarWrapper.querySelector(".platform-icon.mobile-only")) { + const mobileIcon = document.createElementNS("http://www.w3.org/2000/svg", "svg"); + mobileIcon.setAttribute("class", `platform-icon mobile-only ${status}`); + mobileIcon.setAttribute("viewBox", "0 0 1000 1500"); + mobileIcon.setAttribute("fill", "#43a25a"); + mobileIcon.setAttribute("aria-label", "Mobile"); + mobileIcon.setAttribute("width", "17"); + mobileIcon.setAttribute("height", "17"); + mobileIcon.innerHTML = ` + + `; + avatarWrapper.appendChild(mobileIcon); + } - if (updatedStatusIndicator) { + const updatedStatusIndicator = avatarWrapper.querySelector(".status-indicator"); + if (!updatedStatusIndicator) { + const statusDiv = document.createElement("div"); + statusDiv.className = `status-indicator ${status}`; + avatarWrapper.appendChild(statusDiv); + } else { updatedStatusIndicator.className = `status-indicator ${status}`; }