From 603463c27e860fc3fc07f1afafd0b647a2371dac Mon Sep 17 00:00:00 2001 From: JelNiSlaw Date: Fri, 22 Dec 2023 14:11:48 +0100 Subject: [PATCH] handle concurrent button highlights --- public/scripts/password-generator.js | 9 ++++++++- public/styles/password-generator.css | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/public/scripts/password-generator.js b/public/scripts/password-generator.js index 57bd250..c912c31 100644 --- a/public/scripts/password-generator.js +++ b/public/scripts/password-generator.js @@ -8,6 +8,11 @@ const charsets = { let password = null; +let concurrentButtonActions = { + "copy-success": 0, + "copy-error": 0, +}; + const preferences = { form: document.getElementById("password-preferences"), autoGenerate: document.getElementById("auto-generate"), @@ -108,9 +113,11 @@ async function copyPassword() { } const className = success ? "copy-success" : "copy-error"; const copyButton = document.getElementById("password-copy"); + concurrentButtonActions[className] += 1; copyButton.classList.add(className); setTimeout(() => { - copyButton.classList.remove(className); + const concurrentActions = (concurrentButtonActions[className] -= 1); + if (concurrentActions <= 0) copyButton.classList.remove(className); }, 1_000); } diff --git a/public/styles/password-generator.css b/public/styles/password-generator.css index 9cb01bd..f2ecd27 100644 --- a/public/styles/password-generator.css +++ b/public/styles/password-generator.css @@ -40,7 +40,7 @@ button { transition-timing-function: ease-out; } -button:hover { +button:not(.copy-success):not(.copy-error):hover { background: var(--gray-20); }