Skip to content

Commit a252d8b

Browse files
Worked on Functionality
1 parent 7b16421 commit a252d8b

File tree

2 files changed

+68
-25
lines changed

2 files changed

+68
-25
lines changed

index.js

Lines changed: 67 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,11 @@ calculatorDisplay.value = 0;
88
let number1 = 0;
99
let number2 = 0;
1010
let answer = 0;
11+
1112
let operation;
1213
let operationDirty = true;
14+
let equalDirty = false;
15+
1316

1417
for (i = 0; i < memoryButtons.length; i++) {
1518
memoryButtons[i].addEventListener('click', function(e) { handleMemory(e); })
@@ -29,8 +32,16 @@ function handleMemory(e) {
2932

3033
function handleNumbers(e) {
3134
console.log(e.target.innerText);
35+
3236
if (e.target.innerText === 'C') {
3337
clearCalculator();
38+
equalDirty = false;
39+
} else if (equalDirty) {
40+
console.log('Reset After Equals')
41+
clearCalculator();
42+
calculatorDisplay.value = e.target.innerText;
43+
equalDirty = false;
44+
operationDirty = false;
3445
} else {
3546
if (operationDirty) {
3647
calculatorDisplay.value = '';
@@ -41,54 +52,86 @@ function handleNumbers(e) {
4152
}
4253

4354
function handleOperations(e) {
44-
console.log(e.target.innerText);
55+
let newOperation = e.target.innerText;
56+
console.log('operation is ' + operation);
57+
console.log('newOperation is ' + newOperation);
58+
console.log('equal dirty = ' + equalDirty);
59+
console.log('operation dirty = ' + operationDirty);
4560

46-
if (!number1) {
47-
number1 = parseFloat(calculatorDisplay.value);
48-
} else {
49-
number2 = parseFloat(calculatorDisplay.value);
50-
}
61+
//Work on Zeros!
5162

63+
console.log('Before Check');
5264
console.log('number1 : ' + number1);
5365
console.log('number2 : ' + number2);
66+
console.log('answer : ' + answer);
5467

55-
calculatorMath();
56-
if (e.target.innerText !== operation) {
57-
console.log('initialize operation');
58-
operation = e.target.innerText;
68+
if (!equalDirty && !operationDirty) {
69+
if (!number1 && !answer) {
70+
number1 = parseFloat(calculatorDisplay.value);
71+
} else if (!number1 && answer) {
72+
number1 = answer;
73+
number2 = parseFloat(calculatorDisplay.value);
74+
calculatorMath();
75+
} else {
76+
console.log('setting number 2');
77+
number2 = parseFloat(calculatorDisplay.value);
78+
calculatorMath();
79+
}
5980
}
6081

82+
if (newOperation !== operation && newOperation !== '=') {
83+
console.log('initialize operation');
84+
operation = newOperation;
85+
equalDirty = false;
86+
} else if (newOperation === '=') {
87+
operation = newOperation;
88+
equalDirty = true;
89+
}
6190
operationDirty = true;
6291
}
6392

6493
function calculatorMath() {
94+
95+
console.log('Before Math');
96+
console.log('number1 : ' + number1);
97+
console.log('number2 : ' + number2);
98+
console.log('answer : ' + answer);
99+
65100
if (operation === '+') {
66-
number1 = number1 + number2;
67-
calculatorDisplay.value = number1;
101+
answer = number1 + number2;
102+
number1 = 0;
103+
number2 = 0;
104+
calculatorDisplay.value = answer;
68105
console.log('Addition');
69106
} else if (operation === '-') {
70-
number1 = number1 - number2;
71-
calculatorDisplay.value = number1;
107+
answer = number1 - number2;
108+
number1 = 0;
109+
number2 = 0;
110+
calculatorDisplay.value = answer;
72111
console.log('Subtraction');
73112
} else if (operation === '*') {
74-
number1 = number1 * number2;
75-
calculatorDisplay.value = number1;
113+
answer = number1 * number2;
114+
number1 = 0;
115+
number2 = 0;
116+
calculatorDisplay.value = answer;
76117
console.log('Multiplication');
77118
} else if (operation === '/') {
78-
number1 = number1 / number2;
79-
calculatorDisplay.value = number1;
80-
console.log('Division');
81-
}
82-
else {
83-
calculatorDisplay.value = number1;
119+
answer = number1 / number2;
120+
number1 = 0;
84121
number2 = 0;
85-
console.log('Youre just clicking equals bruh');
122+
calculatorDisplay.value = answer;
123+
console.log('Division');
86124
}
125+
126+
console.log('After Math!');
127+
console.log('number1 : ' + number1);
128+
console.log('number2 : ' + number2);
129+
console.log('answer : ' + answer);
87130
}
88131

89132
function clearCalculator() {
90133
number1 = 0;
91134
number2 = 0;
135+
answer = 0;
92136
calculatorDisplay.value = 0;
93-
operationDirty = true;
94137
}

styles.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ h1 {
1212
width: 610px;
1313
height: 75px;
1414
font-size: 30px;
15-
direction: rtl;
15+
text-align: right;
1616
margin-bottom: 10px;
1717
}
1818

0 commit comments

Comments
 (0)