disable text inputs on long calculations

This commit is contained in:
filifa 2025-12-11 23:49:35 -05:00
parent 9cc7835a2c
commit 9efbe26cdd
1 changed files with 8 additions and 0 deletions

View File

@ -46,6 +46,7 @@ function evaluate() {
worker.postMessage({command: "compute", queue, m}); worker.postMessage({command: "compute", queue, m});
timeoutId = setTimeout(() => { timeoutId = setTimeout(() => {
document.querySelector("#result").value = "calculating..."; document.querySelector("#result").value = "calculating...";
switchInputs(false);
switchButtons(false); switchButtons(false);
}, 500); }, 500);
} }
@ -115,17 +116,24 @@ function switchButtons(enabled) {
} }
} }
function switchInputs(enabled) {
document.querySelector("#expr").disabled = !enabled;
document.querySelector("#modulus").disabled = !enabled;
}
let timeoutId = null; let timeoutId = null;
const worker = new Worker("./workers/compute.js"); const worker = new Worker("./workers/compute.js");
worker.addEventListener("message", (message) => { worker.addEventListener("message", (message) => {
clearTimeout(timeoutId); clearTimeout(timeoutId);
document.querySelector("#result").value = message.data; document.querySelector("#result").value = message.data;
switchInputs(true);
switchButtons(true); switchButtons(true);
}); });
worker.addEventListener("error", (e) => { worker.addEventListener("error", (e) => {
console.log(e); console.log(e);
clearTimeout(timeoutId); clearTimeout(timeoutId);
document.querySelector("#result").value = e.message; document.querySelector("#result").value = e.message;
switchInputs(true);
switchButtons(true); switchButtons(true);
}); });