fix(calc-01): show errors in the display area

This commit is contained in:
2026-04-25 03:24:07 +02:00
parent c9be42f252
commit 0e72f64c3b
3 changed files with 10 additions and 12 deletions
+10 -4
View File
@@ -4,7 +4,6 @@ const screen = document.getElementById('screen');
const stackEl = document.getElementById('stack');
const displayEl = document.getElementById('display');
const errorEl = document.getElementById('error');
const modeLabel = document.getElementById('modeLabel');
const angleMode = document.getElementById('angleMode');
const modeMenuButton = document.getElementById('modeMenuButton');
@@ -96,6 +95,7 @@ let isMovingStackItem = false;
let stackSnapshotBeforeMove = null;
let stackViewOffset = 0;
let editRestoreValue = null;
let statusMessage = '';
function handleEscapeAction() {
if (calc.isEditing) {
@@ -124,6 +124,7 @@ function handleEscapeAction() {
}
function pressKey(key) {
statusMessage = '';
clearStackSelection();
editXWithKey(key);
render();
@@ -372,13 +373,14 @@ function render() {
displayEl.textContent = `MOVING: ${stackCursor}`;
} else if (hasStackSelection()) {
displayEl.textContent = `SELECTED: ${stackCursor}`;
} else if (statusMessage) {
displayEl.textContent = statusMessage;
} else {
displayEl.textContent = 'READY';
}
modeLabel.textContent = calc.angleMode;
modeMenuButton.textContent = calc.angleMode.toUpperCase();
angleMode.value = calc.angleMode;
errorEl.textContent = '';
}
function pushEditingValueIfNeeded() {
@@ -395,6 +397,7 @@ function pushEditingValueIfNeeded() {
function execute(name) {
try {
statusMessage = '';
if (name === 'enter') {
if (calc.isEditing) {
pushEditingValueIfNeeded();
@@ -425,7 +428,8 @@ function execute(name) {
syncInputFromState();
render();
} catch (error) {
errorEl.textContent = error.message;
statusMessage = error.message;
render();
}
}
@@ -549,6 +553,7 @@ function handleKeydown(event) {
}
try {
statusMessage = '';
if (action.type === 'escapeKey') {
event.preventDefault();
handleEscapeAction();
@@ -616,7 +621,8 @@ function handleKeydown(event) {
execute(action.value);
}
} catch (error) {
errorEl.textContent = error.message;
statusMessage = error.message;
render();
}
}