@@ -8,8 +8,11 @@ calculatorDisplay.value = 0;
8
8
let number1 = 0 ;
9
9
let number2 = 0 ;
10
10
let answer = 0 ;
11
+
11
12
let operation ;
12
13
let operationDirty = true ;
14
+ let equalDirty = false ;
15
+
13
16
14
17
for ( i = 0 ; i < memoryButtons . length ; i ++ ) {
15
18
memoryButtons [ i ] . addEventListener ( 'click' , function ( e ) { handleMemory ( e ) ; } )
@@ -29,8 +32,16 @@ function handleMemory(e) {
29
32
30
33
function handleNumbers ( e ) {
31
34
console . log ( e . target . innerText ) ;
35
+
32
36
if ( e . target . innerText === 'C' ) {
33
37
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 ;
34
45
} else {
35
46
if ( operationDirty ) {
36
47
calculatorDisplay . value = '' ;
@@ -41,54 +52,86 @@ function handleNumbers(e) {
41
52
}
42
53
43
54
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 ) ;
45
60
46
- if ( ! number1 ) {
47
- number1 = parseFloat ( calculatorDisplay . value ) ;
48
- } else {
49
- number2 = parseFloat ( calculatorDisplay . value ) ;
50
- }
61
+ //Work on Zeros!
51
62
63
+ console . log ( 'Before Check' ) ;
52
64
console . log ( 'number1 : ' + number1 ) ;
53
65
console . log ( 'number2 : ' + number2 ) ;
66
+ console . log ( 'answer : ' + answer ) ;
54
67
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
+ }
59
80
}
60
81
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
+ }
61
90
operationDirty = true ;
62
91
}
63
92
64
93
function calculatorMath ( ) {
94
+
95
+ console . log ( 'Before Math' ) ;
96
+ console . log ( 'number1 : ' + number1 ) ;
97
+ console . log ( 'number2 : ' + number2 ) ;
98
+ console . log ( 'answer : ' + answer ) ;
99
+
65
100
if ( operation === '+' ) {
66
- number1 = number1 + number2 ;
67
- calculatorDisplay . value = number1 ;
101
+ answer = number1 + number2 ;
102
+ number1 = 0 ;
103
+ number2 = 0 ;
104
+ calculatorDisplay . value = answer ;
68
105
console . log ( 'Addition' ) ;
69
106
} 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 ;
72
111
console . log ( 'Subtraction' ) ;
73
112
} 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 ;
76
117
console . log ( 'Multiplication' ) ;
77
118
} 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 ;
84
121
number2 = 0 ;
85
- console . log ( 'Youre just clicking equals bruh' ) ;
122
+ calculatorDisplay . value = answer ;
123
+ console . log ( 'Division' ) ;
86
124
}
125
+
126
+ console . log ( 'After Math!' ) ;
127
+ console . log ( 'number1 : ' + number1 ) ;
128
+ console . log ( 'number2 : ' + number2 ) ;
129
+ console . log ( 'answer : ' + answer ) ;
87
130
}
88
131
89
132
function clearCalculator ( ) {
90
133
number1 = 0 ;
91
134
number2 = 0 ;
135
+ answer = 0 ;
92
136
calculatorDisplay . value = 0 ;
93
- operationDirty = true ;
94
137
}
0 commit comments