user dropdown now closes when certain actions are taken or clicked outside of dialog

This commit is contained in:
2025-12-21 01:14:46 -05:00
parent 6d66d711ff
commit 60eac10545

View File

@@ -37,6 +37,20 @@
function dropdownUser(): void {
let dropdown = document.querySelector("#userDropdown");
dropdown.classList.toggle("hidden");
if (!dropdown.classList.contains("hidden")) {
document.addEventListener("click", clickOutside)
}
}
function clickOutside(event: Event): void {
let dropdown = document.querySelector("#userDropdown")
let toggleBtn = document.querySelector("#userDropdownButton")
if (!dropdown.contains(event.target as Node) && !toggleBtn.contains(event.target as Node)) {
dropdown.classList.add("hidden")
document.removeEventListener("click", clickOutside)
}
}
</script>
@@ -78,7 +92,10 @@
</li>
{:else}
<li>
<button on:click={loginToAniList}
<button on:click={() => {
dropdownUser()
loginToAniList()
}}
class="block px-4 py-2 w-full hover:bg-gray-600 truncate hover:text-white">
<span class="maple-font text-lg mr-4">A</span>Login to AniList
</button>
@@ -95,7 +112,10 @@
</li>
{:else}
<li>
<button on:click={loginToMAL}
<button on:click={() => {
dropdownUser()
loginToMAL()
}}
class="block px-4 py-2 w-full hover:bg-gray-600 truncate hover:text-white">
<span class="maple-font text-lg mr-4">M</span>Login to MyAnimeList
</button>
@@ -112,7 +132,10 @@
</li>
{:else}
<li>
<button on:click={loginToSimkl}
<button on:click={() => {
dropdownUser()
loginToSimkl()
}}
class="block px-4 py-2 w-full hover:bg-gray-600 truncate hover:text-white">
<span class="maple-font text-lg mr-4">S</span>Login to Simkl
</button>