Skip to content

Commit 107dd94

Browse files
authored
Merge pull request #27 from dailker/main
fix(calculator): add high contrast theme support and fix input issues
2 parents 38fc1a5 + 6300f47 commit 107dd94

4 files changed

Lines changed: 43 additions & 10 deletions

File tree

src/components/Desktop.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ const appComponents = {
3232
monitor: MonitorApp,
3333
filemanager: FilemanagerApp,
3434
calculator: Calculator,
35-
Calculator: Calculator,
3635
};
3736

3837
export default function Desktop() {

src/pages/apps/calculator.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,14 @@ export default function Calculator() {
5555
);
5656
}
5757

58-
setWaitingForOperand(true);
59-
setOperation(nextOperation);
58+
if (nextOperation === '=') {
59+
setWaitingForOperand(false);
60+
setOperation('');
61+
setPreviousValue(null);
62+
} else {
63+
setWaitingForOperand(true);
64+
setOperation(nextOperation);
65+
}
6066
};
6167

6268
const calculate = (firstValue, secondValue, operation) => {
@@ -100,6 +106,7 @@ export default function Calculator() {
100106
break;
101107
case 'MR':
102108
setDisplay(String(memory));
109+
setWaitingForOperand(false);
103110
setLastAction('Memory recalled');
104111
break;
105112
case 'M+':
@@ -181,7 +188,7 @@ export default function Calculator() {
181188

182189
window.addEventListener('keydown', handleKeyDown);
183190
return () => window.removeEventListener('keydown', handleKeyDown);
184-
}, [display]);
191+
}, [display, waitingForOperand, operation, previousValue]);
185192

186193
return (
187194
<div className={`${theme.calculator.bg} p-6 h-full flex flex-col`}>

src/system/apps/Calculator.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ export default new App({
33
id: 'calculator',
44
name: 'Calculator',
55
icon: '🧮',
6-
component: 'Calculator',
6+
component: 'calculator',
77
});

src/themes/highContrastTheme.js

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,27 @@ export const highContrastTheme = {
33
name: 'High Contrast Theme',
44
desktop: 'bg-black',
55
taskbar: 'bg-black border-t border-white',
6-
window: { bg: 'bg-black', border: 'border-white', header: 'bg-black border-b border-white', text: 'text-white', content: 'text-white bg-black' },
6+
window: {
7+
bg: 'bg-black',
8+
border: 'border-white',
9+
header: 'bg-black border-b border-white',
10+
text: 'text-white',
11+
content: 'text-white bg-black',
12+
},
713
startMenu: 'bg-black border border-white',
814
glass: 'bg-black/50 border border-white',
9-
text: { primary: 'text-white', secondary: 'text-gray-200', window: 'text-white', startMenu: 'text-white' },
15+
text: {
16+
primary: 'text-white',
17+
secondary: 'text-gray-200',
18+
window: 'text-white',
19+
startMenu: 'text-white',
20+
},
1021
app: {
1122
bg: 'bg-black',
1223
text: 'text-white',
1324
input: 'bg-black border-white text-white placeholder-gray-300',
14-
button: 'bg-black hover:bg-white text-white hover:text-black border border-white',
25+
button:
26+
'bg-black hover:bg-white text-white hover:text-black border border-white',
1527
table: 'bg-black border-white',
1628
tableHeader: 'bg-black text-white',
1729
tableCell: 'bg-black text-white border-white',
@@ -25,5 +37,20 @@ export const highContrastTheme = {
2537
dropdown_item_hover: 'hover:bg-yellow-400 hover:text-black',
2638
toolbar_button_active: 'bg-yellow-400 text-black',
2739
},
28-
notification: 'bg-black text-white border border-white'
29-
};
40+
calculator: {
41+
bg: 'bg-black',
42+
display: 'bg-black border-2 border-white',
43+
displayText: 'text-white',
44+
displaySubtext: 'text-gray-300',
45+
numberButton:
46+
'bg-black hover:bg-white text-white hover:text-black border-2 border-white',
47+
operatorButton:
48+
'bg-yellow-400 hover:bg-yellow-300 text-black border-2 border-white',
49+
equalsButton: 'bg-white hover:bg-gray-200 text-black border-2 border-white',
50+
functionButton:
51+
'bg-black hover:bg-gray-800 text-white border-2 border-gray-400',
52+
memoryButton:
53+
'bg-black hover:bg-yellow-400 text-white hover:text-black border-2 border-yellow-400',
54+
},
55+
notification: 'bg-black text-white border border-white',
56+
};

0 commit comments

Comments
 (0)