@@ -4,26 +4,109 @@ const res = document.getElementById('response');
4
4
const form = document . getElementById ( 'form' ) ;
5
5
const celsiusBtn = document . querySelector ( '.Celsius' ) ;
6
6
const fahrenheitBtn = document . querySelector ( '.Fahrenheit' ) ;
7
+ const KelvinBtn = document . querySelector ( '.Kelvin' ) ;
7
8
const element_result = document . getElementById ( 'element_result' ) ;
9
+ const Celsius_output = document . querySelector ( '.Celsius_output' ) ;
10
+ const Fahrenheit_output = document . querySelector ( '.Fahrenheit_output' ) ;
11
+ const Kelvin_output = document . querySelector ( '.Kelvin_output' ) ;
8
12
let sentence = '' ;
9
13
let temperatureInput = '' ;
14
+ let temperatureOutput = '' ;
10
15
11
16
function getTypeTemperatureInput ( ipt ) {
12
- if ( ipt === 'Celsius' ) {
13
- fahrenheitBtn . classList . remove ( 'selected' )
14
- celsiusBtn . classList . add ( 'selected' ) ;
15
- } else {
16
- fahrenheitBtn . classList . add ( 'selected' ) ;
17
- celsiusBtn . classList . remove ( 'selected' )
17
+ switch ( ipt ) {
18
+ case 'Celsius' : {
19
+ fahrenheitBtn . classList . remove ( 'selected' ) ;
20
+ KelvinBtn . classList . remove ( 'selected' ) ;
21
+ celsiusBtn . classList . add ( 'selected' ) ;
22
+ return temperatureInput = ipt ;
23
+ }
24
+ case 'Fahrenheit' : {
25
+ celsiusBtn . classList . remove ( 'selected' ) ;
26
+ KelvinBtn . classList . remove ( 'selected' ) ;
27
+ fahrenheitBtn . classList . add ( 'selected' ) ;
28
+ return temperatureInput = ipt ;
29
+ }
30
+ case 'Kelvin' : {
31
+ fahrenheitBtn . classList . remove ( 'selected' )
32
+ celsiusBtn . classList . remove ( 'selected' ) ;
33
+ KelvinBtn . classList . add ( 'selected' ) ;
34
+ return temperatureInput = ipt ;
35
+ }
18
36
}
19
- return temperatureInput = ipt ;
20
37
}
38
+ function getTypeTemperatureOutput ( ipt ) {
39
+ switch ( ipt ) {
40
+ case 'Celsius' : {
41
+ Fahrenheit_output . classList . remove ( 'selected' ) ;
42
+ Kelvin_output . classList . remove ( 'selected' ) ;
43
+ Celsius_output . classList . add ( 'selected' ) ;
44
+ return temperatureOutput = ipt ;
45
+ }
46
+ case 'Fahrenheit' : {
47
+ Celsius_output . classList . remove ( 'selected' ) ;
48
+ Kelvin_output . classList . remove ( 'selected' ) ;
49
+ Fahrenheit_output . classList . add ( 'selected' ) ;
50
+ return temperatureOutput = ipt ;
51
+ }
52
+ case 'Kelvin' : {
53
+ Fahrenheit_output . classList . remove ( 'selected' )
54
+ Celsius_output . classList . remove ( 'selected' ) ;
55
+ Kelvin_output . classList . add ( 'selected' ) ;
56
+ return temperatureOutput = ipt ;
57
+ }
58
+ }
59
+ }
60
+
21
61
function transformCelsiusToFahrenheit ( degCel ) {
22
62
return ( degCel * ( 9 / 5 ) + 32 ) ;
23
63
}
64
+ function transformCelsiusToKelvin ( celsius ) {
65
+ return celsius + 273.15 ;
66
+ }
24
67
function transformFahrenheitToCelsius ( degCel ) {
25
68
return ( degCel - 32 * 5 / 9 ) ;
26
- }
69
+ }
70
+ function transformFahrenheitToKelvin ( fahrenheit ) {
71
+ return ( fahrenheit - 32 ) * 5 / 9 + 273.15 ;
72
+ }
73
+ function transformKelvinToCelsius ( kelvin ) {
74
+ return kelvin - 273.15 ;
75
+ }
76
+ function transformKelvinToFahrenheit ( kelvin ) {
77
+ return ( kelvin - 273.15 ) * 9 / 5 + 32 ;
78
+ }
79
+
80
+ function getTransformFunction ( input , output , value ) {
81
+ if ( input === 'Celsius' ) {
82
+ switch ( output ) {
83
+ case 'Fahrenheit' : {
84
+ return transformCelsiusToFahrenheit ( value ) ;
85
+ }
86
+ case 'Kelvin' : {
87
+ return transformCelsiusToKelvin ( value ) ;
88
+ }
89
+ }
90
+ } if ( input === 'Fahrenheit' ) {
91
+ switch ( output ) {
92
+ case 'Celsius' : {
93
+ return transformFahrenheitToCelsius ( value ) ;
94
+ }
95
+ case 'Kelvin' : {
96
+ return transformFahrenheitToKelvin ( value ) ;
97
+ }
98
+ }
99
+ } if ( input === 'Kelvin' ) {
100
+ switch ( output ) {
101
+ case 'Fahrenheit' : {
102
+ return transformKelvinToFahrenheit ( value ) ;
103
+ }
104
+ case 'Celsius' : {
105
+ return transformKelvinToCelsius ( value ) ;
106
+ }
107
+ }
108
+ }
109
+ }
27
110
form . onkeydown = function ( e ) {
28
111
if ( e . keyCode == 13 ) {
29
112
e . preventDefault ( ) ;
@@ -32,14 +115,16 @@ form.onkeydown = function(e){
32
115
} ;
33
116
function getSentenceResult ( ) {
34
117
const value = + res . value ;
118
+ if ( isNaN ( value ) ) {
119
+ return element_result . innerHTML = 'Input data not correct.' ;
120
+ }
35
121
if ( temperatureInput === '' ) {
36
122
return element_result . innerHTML = 'Please enter valid conversion' ;
37
123
}
38
- if ( isNaN ( value ) ) {
39
- return element_result . innerHTML = 'Input data not correct. ' ;
124
+ else if ( temperatureOutput === temperatureInput ) {
125
+ return element_result . innerHTML = 'Please enter valid conversion ' ;
40
126
}
41
- const val = temperatureInput === 'Celsius' ? transformCelsiusToFahrenheit ( value ) : transformFahrenheitToCelsius ( value ) ;
42
- const labelTemperature = ( temperatureInput === 'Celsius' ) ? ' Fahrenheit' : ' Celsius' ;
43
- return element_result . innerHTML = `<p class='response'>${ value } ${ temperatureInput } give ${ parseInt ( val ) } ${ labelTemperature } </p>` ;
127
+ const val = getTransformFunction ( temperatureInput , temperatureOutput , value )
128
+ return element_result . innerHTML = `<p class='response'>${ value } ${ temperatureInput } give ${ parseInt ( val ) } ${ temperatureOutput } </p>` ;
44
129
45
130
}
0 commit comments