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
-7
View File
@@ -362,13 +362,6 @@ button:active {
letter-spacing: 0.08em; letter-spacing: 0.08em;
} }
.error {
margin-top: 12px;
min-height: 20px;
color: #ff9f9f;
font-family: "Courier New", monospace;
font-size: 13px;
}
.hint { .hint {
color: #cfd7e3; color: #cfd7e3;
-1
View File
@@ -62,7 +62,6 @@
</section> </section>
</div> </div>
<div id="error" class="error"></div>
</div> </div>
</div> </div>
+10 -4
View File
@@ -4,7 +4,6 @@ const screen = document.getElementById('screen');
const stackEl = document.getElementById('stack'); const stackEl = document.getElementById('stack');
const displayEl = document.getElementById('display'); const displayEl = document.getElementById('display');
const errorEl = document.getElementById('error');
const modeLabel = document.getElementById('modeLabel'); const modeLabel = document.getElementById('modeLabel');
const angleMode = document.getElementById('angleMode'); const angleMode = document.getElementById('angleMode');
const modeMenuButton = document.getElementById('modeMenuButton'); const modeMenuButton = document.getElementById('modeMenuButton');
@@ -96,6 +95,7 @@ let isMovingStackItem = false;
let stackSnapshotBeforeMove = null; let stackSnapshotBeforeMove = null;
let stackViewOffset = 0; let stackViewOffset = 0;
let editRestoreValue = null; let editRestoreValue = null;
let statusMessage = '';
function handleEscapeAction() { function handleEscapeAction() {
if (calc.isEditing) { if (calc.isEditing) {
@@ -124,6 +124,7 @@ function handleEscapeAction() {
} }
function pressKey(key) { function pressKey(key) {
statusMessage = '';
clearStackSelection(); clearStackSelection();
editXWithKey(key); editXWithKey(key);
render(); render();
@@ -372,13 +373,14 @@ function render() {
displayEl.textContent = `MOVING: ${stackCursor}`; displayEl.textContent = `MOVING: ${stackCursor}`;
} else if (hasStackSelection()) { } else if (hasStackSelection()) {
displayEl.textContent = `SELECTED: ${stackCursor}`; displayEl.textContent = `SELECTED: ${stackCursor}`;
} else if (statusMessage) {
displayEl.textContent = statusMessage;
} else { } else {
displayEl.textContent = 'READY'; displayEl.textContent = 'READY';
} }
modeLabel.textContent = calc.angleMode; modeLabel.textContent = calc.angleMode;
modeMenuButton.textContent = calc.angleMode.toUpperCase(); modeMenuButton.textContent = calc.angleMode.toUpperCase();
angleMode.value = calc.angleMode; angleMode.value = calc.angleMode;
errorEl.textContent = '';
} }
function pushEditingValueIfNeeded() { function pushEditingValueIfNeeded() {
@@ -395,6 +397,7 @@ function pushEditingValueIfNeeded() {
function execute(name) { function execute(name) {
try { try {
statusMessage = '';
if (name === 'enter') { if (name === 'enter') {
if (calc.isEditing) { if (calc.isEditing) {
pushEditingValueIfNeeded(); pushEditingValueIfNeeded();
@@ -425,7 +428,8 @@ function execute(name) {
syncInputFromState(); syncInputFromState();
render(); render();
} catch (error) { } catch (error) {
errorEl.textContent = error.message; statusMessage = error.message;
render();
} }
} }
@@ -549,6 +553,7 @@ function handleKeydown(event) {
} }
try { try {
statusMessage = '';
if (action.type === 'escapeKey') { if (action.type === 'escapeKey') {
event.preventDefault(); event.preventDefault();
handleEscapeAction(); handleEscapeAction();
@@ -616,7 +621,8 @@ function handleKeydown(event) {
execute(action.value); execute(action.value);
} }
} catch (error) { } catch (error) {
errorEl.textContent = error.message; statusMessage = error.message;
render();
} }
} }