From 7e23c4b3341ac6b8a08111265680773380aeccf7 Mon Sep 17 00:00:00 2001 From: Ardis Lu Date: Sat, 4 Nov 2023 20:28:52 -0700 Subject: [PATCH] Show spinner and disable button while fetching --- index.html | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 1078dbd..d669664 100644 --- a/index.html +++ b/index.html @@ -167,6 +167,30 @@ transition: filter 150ms; } + button:disabled { + cursor: not-allowed; + filter: brightness(0.9); + } + + .inline-spinner { + display: none; + box-sizing: border-box; + block-size: 1.5em; + inline-size: 1.5em; + border: 0.25em solid transparent; + border-block-start: 0.25em solid var(--secondary); + border-radius: 50%; + margin-inline-start: 8px; + transform: translateY(25%); + animation: spin 1s infinite; + } + + @keyframes spin { + 100% { + transform: translateY(25%) rotate(360deg); + } + } + output#table { display: none; } @@ -261,7 +285,11 @@ - +
+ + +
+ @@ -322,6 +350,10 @@ document.querySelector('form').addEventListener('submit', async event => { event.preventDefault(); + event.submitter.disabled = true; + const spinner = document.querySelector('.inline-spinner'); + spinner.style.setProperty('display', 'inline-block'); + const status = event.target.elements['status']; status.textContent = ''; // Clear previous status, if any @@ -372,6 +404,8 @@ address.textContent = `0x${response.result.slice(26)}`; } + event.submitter.disabled = false; + spinner.style.setProperty('display', 'none'); document.querySelector('output#table').style.display = 'block'; }); -- 2.47.3