Fix keyboard handler: Escape clears input, remove parentheses input

pull/1052/head
delta student 11 months ago
parent a29c54c690
commit 3c3cebfaad

@ -56,22 +56,32 @@ buttons.forEach(btn => {
}); });
}); });
// Keyboard support document.addEventListener('keydown', (e) => {
window.addEventListener('keydown', (e) => { // Only digits, operators, and decimal
if ((e.key >= '0' && e.key <= '9') || '+-*/().%'.includes(e.key)) { if ("0123456789+-*/.%".includes(e.key)) {
currentExpression += e.key; currentExpression += e.key;
updateDisplay(); updateDisplay();
resultDisplay.value = ''; resultDisplay.value = '';
} else if (e.key === 'Enter') { }
const sanitized = sanitizeExpression(currentExpression); // Evaluate on Enter
resultDisplay.value = calculateExpression(sanitized); else if (e.key === 'Enter') {
} else if (e.key === 'Backspace') { e.preventDefault(); // Prevent form submission
currentExpression = currentExpression.slice(0, -1); const sanitized = sanitizeExpression(currentExpression);
updateDisplay(); resultDisplay.value = calculateExpression(sanitized);
resultDisplay.value = ''; }
} else if (e.key.toLowerCase() === 'c') { // Delete last character
currentExpression = ''; else if (e.key === 'Backspace') {
updateDisplay(); e.preventDefault(); // Prevent browser back navigation
resultDisplay.value = ''; currentExpression = currentExpression.slice(0, -1);
} updateDisplay();
resultDisplay.value = '';
}
// Clear using Escape key
else if (e.key === 'Escape') {
e.preventDefault();
currentExpression = '';
updateDisplay();
resultDisplay.value = '';
}
}); });

Loading…
Cancel
Save