From 90400a09ead697dee6a20296879600c01f465c36 Mon Sep 17 00:00:00 2001 From: clfreville2 Date: Sun, 19 Nov 2023 12:39:00 +0100 Subject: [PATCH] Cancel previous timeout --- src/digicode.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/digicode.js b/src/digicode.js index b13dc06..6254676 100644 --- a/src/digicode.js +++ b/src/digicode.js @@ -8,6 +8,9 @@ const display = /** @type {HTMLDivElement} */ (document.getElementById('display' const light = /** @type {HTMLDivElement} */ (document.getElementById('light')); const keypad = /** @type {HTMLDivElement} */ (document.getElementById('keypad')); +/** @type {number|null} */ +let taskId = null; + /** * @param {number} len * @returns {string} @@ -30,6 +33,10 @@ function resetCode() { * @param {number} digit */ function composeDigit(digit) { + if (taskId !== null) { + clearTimeout(taskId); + taskId = null; + } builder += digit.toString(); display.innerText = builder + '_'.repeat(CODE.length - builder.length); light.classList.remove(IS_SUCCESS, IS_ERROR); @@ -37,7 +44,7 @@ function composeDigit(digit) { light.classList.add(IS_SUCCESS); } else { light.classList.add(IS_ERROR); - setTimeout(resetCode, DELAY); + taskId = setTimeout(resetCode, DELAY); } }