fix(calc-01): show errors in the display area
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -62,7 +62,6 @@
|
|||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="error" class="error"></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user