From 481ca4e450ef386e749900c09a221f09aa1c2564 Mon Sep 17 00:00:00 2001 From: sarah Date: Tue, 7 Jun 2022 12:10:59 -0700 Subject: [PATCH 01/15] initial html/css wireframe --- index.html | 41 ++++++++++++++++++++++++++++++++++++++++- styles/index.css | 30 ++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 68b320b9a..fe1ba2736 100644 --- a/index.html +++ b/index.html @@ -5,8 +5,47 @@ Weather Report + - +
+

Weather for the lovely city of

+
+
+
+
+
+

Temperature

+
+ +

(Temperature Value)

+ + +
+
+
+

Sky

+
+
+
+
+

City Name

+
+
+
+
+
+

+ Weather Garden +

+

+ sky is here +

+

+ ground is here +

+
+
+
\ No newline at end of file diff --git a/styles/index.css b/styles/index.css index e69de29bb..3c49d321c 100644 --- a/styles/index.css +++ b/styles/index.css @@ -0,0 +1,30 @@ + + + +#weatherFrame { + display: grid; + grid-template-columns: 1fr 1fr; +} + +#clickables{ + display: flexbox; +} + +/* #tempBlock { + grid-column: 1 2; + grid-row: 1 2 +} + +#skyBlock { + grid-column: 1 2; + grid-row: 2 3; +} + +#cityBlock{ + grid-column: 1 2; + grid-row: 3 4; +} + +#gardenBlock { + grid-column: 2 3; +} */ \ No newline at end of file From 4a4ce4af0c9a96453426c4b01adc8d2a29352013 Mon Sep 17 00:00:00 2001 From: Morgan Adkisson Date: Tue, 7 Jun 2022 12:13:06 -0700 Subject: [PATCH 02/15] wireframe illustration added to assets --- assets/wireframe-illustration.png | Bin 0 -> 70671 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/wireframe-illustration.png diff --git a/assets/wireframe-illustration.png b/assets/wireframe-illustration.png new file mode 100644 index 0000000000000000000000000000000000000000..a1d3d496342a235606aaf294f28a88ebc5ee0c41 GIT binary patch literal 70671 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

K-Fb?sGjmd)ZNJsB^&Ct^DG?x4$+Akh$cj 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%0DPb|3wz9YD3TJr0p}eNZxqWDRc&Og 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 W@wS6uV)NjC2lpM>o3h8!=l=n@0DR;C literal 0 HcmV?d00001 From 7590718bbb78fda81630e0a78f5162e1184ddd4c Mon Sep 17 00:00:00 2001 From: sarah Date: Tue, 7 Jun 2022 13:04:56 -0700 Subject: [PATCH 03/15] add textbox and selector, adapt html/css to look more like wireframe --- index.html | 22 ++++++++++++++++++---- styles/index.css | 34 ++++++++++++++++++++++------------ 2 files changed, 40 insertions(+), 16 deletions(-) diff --git a/index.html b/index.html index fe1ba2736..4ca616a3f 100644 --- a/index.html +++ b/index.html @@ -17,20 +17,34 @@

Weather for the lovely city of

Temperature

- -

(Temperature Value)

- - +
+
+ +

(Temperature Value)

+ +
+ +

Sky

+ +

City Name

+ +
+
diff --git a/styles/index.css b/styles/index.css index 3c49d321c..86d1e9558 100644 --- a/styles/index.css +++ b/styles/index.css @@ -1,30 +1,40 @@ - +button { + background: cyan; + padding: 10px; + border-radius: 25px; +} #weatherFrame { - display: grid; - grid-template-columns: 1fr 1fr; + display: flex; + flex-direction: row; } #clickables{ display: flexbox; } -/* #tempBlock { - grid-column: 1 2; - grid-row: 1 2 +#clickables > section{ + padding: 10px; + margin: 10px; + background: grey; + border-radius: 25px; } -#skyBlock { - grid-column: 1 2; - grid-row: 2 3; +#tempButtonLayout { + display: flex; + flex-direction: row; } -#cityBlock{ +/* #skyBlock { grid-column: 1 2; - grid-row: 3 4; + grid-row: 2 3; +} */ + +#cityBlock ::placeholder{ + color:lightgray; } -#gardenBlock { +/* #gardenBlock { grid-column: 2 3; } */ \ No newline at end of file From 08601e84035779924c856a13aed4039b6ead8c8c Mon Sep 17 00:00:00 2001 From: sarah Date: Thu, 9 Jun 2022 10:20:54 -0700 Subject: [PATCH 04/15] add .js links --- index.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/index.html b/index.html index 4ca616a3f..6cdc7e1c1 100644 --- a/index.html +++ b/index.html @@ -6,6 +6,7 @@ Weather Report +
@@ -62,4 +63,6 @@

+ + \ No newline at end of file From a0a56552bb0eb38d26aca7e13a2e0d1f42ac797c Mon Sep 17 00:00:00 2001 From: sarah Date: Thu, 9 Jun 2022 10:58:55 -0700 Subject: [PATCH 05/15] City text box updates site title --- index.html | 10 +++++----- src/index.js | 12 ++++++++++++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index 6cdc7e1c1..518533a8b 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,7 @@
-

Weather for the lovely city of

+

Weather for the lovely city of Seattle

@@ -42,10 +42,10 @@

Sky

City Name

- -
- + + +
@@ -63,6 +63,6 @@

- + \ No newline at end of file diff --git a/src/index.js b/src/index.js index e69de29bb..eed3cc42e 100644 --- a/src/index.js +++ b/src/index.js @@ -0,0 +1,12 @@ +const updateTitleCity = () => { + let titleCity = document.querySelector('#titleCity'); + console.log(cityName.value); + titleCity.textContent = `${cityName.value}`; +}; + +const registerEventHandlers = () => { + const cityInput = document.querySelector('#cityName'); + cityInput.addEventListener('input', updateTitleCity); +}; + +document.addEventListener('DOMContentLoaded', registerEventHandlers); From 228b82f9b8a10b02feada21d5af0ce41a2cbc615 Mon Sep 17 00:00:00 2001 From: Morgan Adkisson Date: Thu, 9 Jun 2022 10:59:48 -0700 Subject: [PATCH 06/15] pulling --- index.html | 2 +- src/index.js | 7 +++++++ styles/index.css | 7 ++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 6cdc7e1c1..8a0571254 100644 --- a/index.html +++ b/index.html @@ -21,7 +21,7 @@

Temperature

-

(Temperature Value)

+

diff --git a/src/index.js b/src/index.js index e69de29bb..922f36148 100644 --- a/src/index.js +++ b/src/index.js @@ -0,0 +1,7 @@ +const incrementButton = document.getElementById('tempUp'); +const decrementButton = document.getElementById('tempDown'); +document.getElementById('tempValue') = 60; + +incrementButton.addEventListener('click', function () { + console.log(tempValue); +}); diff --git a/styles/index.css b/styles/index.css index 86d1e9558..d6cc34c83 100644 --- a/styles/index.css +++ b/styles/index.css @@ -26,6 +26,10 @@ button { flex-direction: row; } +#tempChanger p { + font-size: 50px; +} + /* #skyBlock { grid-column: 1 2; grid-row: 2 3; @@ -37,4 +41,5 @@ button { /* #gardenBlock { grid-column: 2 3; -} */ \ No newline at end of file +} */ + From 97585074fdc81f9c535f4b95693879b86ceeb337 Mon Sep 17 00:00:00 2001 From: sarah Date: Fri, 10 Jun 2022 00:04:56 -0700 Subject: [PATCH 07/15] wave-05 sky selector changes sky --- index.html | 10 ++++++---- src/index.js | 16 ++++++++++++++++ styles/index.css | 15 ++++++++++++--- 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/index.html b/index.html index 518533a8b..4ca7f7f78 100644 --- a/index.html +++ b/index.html @@ -31,8 +31,8 @@

Temperature

Sky

- - @@ -53,13 +53,15 @@

City Name

Weather Garden

+ +

- sky is here + ☁️ ☁️ ☁️ ☀️ ☁️ ☁️

ground is here

- +
diff --git a/src/index.js b/src/index.js index eed3cc42e..926a577a6 100644 --- a/src/index.js +++ b/src/index.js @@ -1,12 +1,28 @@ +const GARDENSKIES = { + sunny: '☁️ ☁️ ☁️ ☀️ ☁️ ☁️', + cloudy: '☁️☁️ ☁️ ☁️☁️ ☁️ 🌤 ☁️ ☁️☁️', + rainy: '🌧🌈⛈🌧🌧💧⛈🌧🌦🌧💧🌧🌧', + snowy: '🌨❄️🌨🌨❄️❄️🌨❄️🌨❄️❄️🌨🌨', +}; + const updateTitleCity = () => { let titleCity = document.querySelector('#titleCity'); console.log(cityName.value); titleCity.textContent = `${cityName.value}`; }; +const updateWeatherGardenSky = () => { + let gardenSky = document.querySelector('#gardenSky'); + console.log(`${weatherSelector.value}`); + gardenSky.textContent = GARDENSKIES[weatherSelector.value]; +}; + const registerEventHandlers = () => { const cityInput = document.querySelector('#cityName'); cityInput.addEventListener('input', updateTitleCity); + + const weatherSelector = document.querySelector('#weatherSelector'); + weatherSelector.addEventListener('change', updateWeatherGardenSky); }; document.addEventListener('DOMContentLoaded', registerEventHandlers); diff --git a/styles/index.css b/styles/index.css index 86d1e9558..17b6cb2ba 100644 --- a/styles/index.css +++ b/styles/index.css @@ -8,6 +8,8 @@ button { #weatherFrame { display: flex; flex-direction: row; + gap: 50px; + align-items: flex-start; } #clickables{ @@ -35,6 +37,13 @@ button { color:lightgray; } -/* #gardenBlock { - grid-column: 2 3; -} */ \ No newline at end of file +#garden { + display: flex; + flex-direction: column; + gap: 50px; + background: lightgreen; + border-radius: 10px; + padding: 5px; + text-align: center; +} + From 60e084b4466d4316ee9c589774106690b6386261 Mon Sep 17 00:00:00 2001 From: Morgan Adkisson Date: Fri, 10 Jun 2022 10:07:44 -0700 Subject: [PATCH 08/15] created reset button for wave 06 --- assets/wireframe | 0 index.html | 2 +- src/index.js | 7 +++++++ 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 assets/wireframe diff --git a/assets/wireframe b/assets/wireframe new file mode 100644 index 000000000..e69de29bb diff --git a/index.html b/index.html index 30fc31a2a..01ad16a95 100644 --- a/index.html +++ b/index.html @@ -45,7 +45,7 @@

City Name

- +
diff --git a/src/index.js b/src/index.js index a67e741c0..be758fd11 100644 --- a/src/index.js +++ b/src/index.js @@ -46,9 +46,16 @@ const updateTitleCity = () => { titleCity.textContent = `${cityName.value}`; }; +const resetCity = () => { + document.querySelector('#titleCity').textContent = 'Seattle'; + document.querySelector('#cityName').value = ''; +}; + const registerEventHandlers = () => { const cityInput = document.querySelector('#cityName'); cityInput.addEventListener('input', updateTitleCity); + const resetBtn = document.querySelector('#resetBtn'); + resetBtn.addEventListener('click', resetCity); const incrementButton = document.querySelector('#tempUp'); incrementButton.addEventListener('click', incrementTemp); const decrementButton = document.querySelector('#tempDown'); From 79553b99318dc726dc63472ea431c1cbccd0c52a Mon Sep 17 00:00:00 2001 From: sarah Date: Fri, 10 Jun 2022 11:04:13 -0700 Subject: [PATCH 09/15] wave-04 API call and temp update --- src/index.js | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index ff49fe480..8ce3a5c4b 100644 --- a/src/index.js +++ b/src/index.js @@ -8,6 +8,9 @@ const state = { tempValue: 60, }; +const kelvinToFahrenheit = (temperature) => + (temperature - 273.15) * (9 / 5) + 32; + const incrementTemp = () => { state.tempValue += 1; const tempValue = document.querySelector('.tempValue'); @@ -48,19 +51,56 @@ const helperTempDependentLayout = (temp, el) => { const updateTitleCity = () => { let titleCity = document.querySelector('#titleCity'); - console.log(cityName.value); + // console.log(cityName.value); titleCity.textContent = `${cityName.value}`; }; const resetCity = () => { document.querySelector('#titleCity').textContent = 'Seattle'; document.querySelector('#cityName').value = ''; +}; + const updateWeatherGardenSky = () => { let gardenSky = document.querySelector('#gardenSky'); console.log(`${weatherSelector.value}`); gardenSky.textContent = GARDENSKIES[weatherSelector.value]; }; +const getCityWeather = () => { + axios + .get('http://127.0.0.1:5000/location', { + params: { q: `${cityName.value}` }, + }) + .then((response) => { + // console.log(response.data); + axios + .get('http://127.0.0.1:5000/weather', { + params: { + lat: response.data[0]['lat'], + lon: response.data[0]['lon'], + }, + }) + .then((response) => { + // console.log(response.data); + console.log( + `temp in ${cityName.value} is ${response.data.current.temp}` + ); + console.log( + `temp in ${cityName.value} is ${Math.round( + kelvinToFahrenheit(response.data.current.temp) + )}` + ); + state.tempValue = Math.round( + kelvinToFahrenheit(response.data.current.temp) + ); + console.log(state.tempValue); + const tempValue = document.querySelector('.tempValue'); + tempValue.textContent = state.tempValue; + helperTempDependentLayout(state.tempValue, tempValue); + }); + }); +}; + const registerEventHandlers = () => { const cityInput = document.querySelector('#cityName'); cityInput.addEventListener('input', updateTitleCity); @@ -72,6 +112,8 @@ const registerEventHandlers = () => { incrementButton.addEventListener('click', incrementTemp); const decrementButton = document.querySelector('#tempDown'); decrementButton.addEventListener('click', decrementTemp); + const getTempButton = document.querySelector('#getTemp'); + getTempButton.addEventListener('click', getCityWeather); }; document.addEventListener('DOMContentLoaded', registerEventHandlers); From 4723e36ab245c65a38e7d873863eebbbeec1c96c Mon Sep 17 00:00:00 2001 From: sarah Date: Fri, 10 Jun 2022 11:13:00 -0700 Subject: [PATCH 10/15] helper function update temp --- src/index.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/index.js b/src/index.js index 8ce3a5c4b..0d52b4d08 100644 --- a/src/index.js +++ b/src/index.js @@ -11,18 +11,20 @@ const state = { const kelvinToFahrenheit = (temperature) => (temperature - 273.15) * (9 / 5) + 32; -const incrementTemp = () => { - state.tempValue += 1; +const updateTemp = () => { const tempValue = document.querySelector('.tempValue'); tempValue.textContent = state.tempValue; helperTempDependentLayout(state.tempValue, tempValue); }; +const incrementTemp = () => { + state.tempValue += 1; + updateTemp(); +}; + const decrementTemp = () => { state.tempValue -= 1; - const tempValue = document.querySelector('.tempValue'); - tempValue.textContent = state.tempValue; - helperTempDependentLayout(state.tempValue, tempValue); + updateTemp(); }; const helperTempDependentLayout = (temp, el) => { @@ -94,9 +96,7 @@ const getCityWeather = () => { kelvinToFahrenheit(response.data.current.temp) ); console.log(state.tempValue); - const tempValue = document.querySelector('.tempValue'); - tempValue.textContent = state.tempValue; - helperTempDependentLayout(state.tempValue, tempValue); + updateTemp(); }); }); }; From 0930c3f5dfecfdc0b149c099d1ffdfbf4a2a76e5 Mon Sep 17 00:00:00 2001 From: Morgan Adkisson Date: Fri, 10 Jun 2022 11:14:38 -0700 Subject: [PATCH 11/15] pulling --- src/index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index ff49fe480..c11455bde 100644 --- a/src/index.js +++ b/src/index.js @@ -4,6 +4,7 @@ const GARDENSKIES = { rainy: '🌧🌈⛈🌧🌧💧⛈🌧🌦🌧💧🌧🌧', snowy: '🌨❄️🌨🌨❄️❄️🌨❄️🌨❄️❄️🌨🌨', }; + const state = { tempValue: 60, }; @@ -40,7 +41,7 @@ const helperTempDependentLayout = (temp, el) => { landscape = '🌲🌲⛄️🌲⛄️🍂🌲🍁🌲🌲⛄️🍂🌲'; } else if (temp < 50) { color = 'teal'; - landscape = '❄️🌲⛄️🌲❄️❄️🏂⛄️🌲❄️⛷🌲❄️❄️🌲'; + landscape = '❄️🌲⛄️🌲❄️🏂⛄️🌲❄️⛷🌲❄️🌲'; } el.style.color = color; landscapeLayout.textContent = landscape; @@ -55,6 +56,8 @@ const updateTitleCity = () => { const resetCity = () => { document.querySelector('#titleCity').textContent = 'Seattle'; document.querySelector('#cityName').value = ''; +}; + const updateWeatherGardenSky = () => { let gardenSky = document.querySelector('#gardenSky'); console.log(`${weatherSelector.value}`); From 93adfa69d2262490780ecdba26c31c57688979d1 Mon Sep 17 00:00:00 2001 From: Morgan Adkisson Date: Fri, 10 Jun 2022 20:29:29 -0700 Subject: [PATCH 12/15] refactored helper function for temp text and landscape changes - conditions object created to hold values --- index.html | 4 ++-- src/index.js | 36 +++++++++++++++++++----------------- styles/index.css | 2 +- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/index.html b/index.html index 2229de62b..81e828317 100644 --- a/index.html +++ b/index.html @@ -21,7 +21,7 @@

Temperature

-

60

+

60

@@ -59,7 +59,7 @@

☁️ ☁️ ☁️ ☀️ ☁️ ☁️

- "🌾🌾_🍃_🪨__🛤_🌾🌾🌾_🍃" + 🌾🌾_🍃_🪨__🛤_🌾🌾🌾_🍃

diff --git a/src/index.js b/src/index.js index 8d4b37f74..1f52bda48 100644 --- a/src/index.js +++ b/src/index.js @@ -5,6 +5,14 @@ const GARDENSKIES = { snowy: '🌨❄️🌨🌨❄️❄️🌨❄️🌨❄️❄️🌨🌨', }; +const CONDITIONS = { + hot: { landscape: '🌵__🐍_🦂_🌵🌵__🐍_🏜_🦂', text: 'red' }, + warm: { landscape: '🌸🌿🌼__🌷🌻🌿_☘️🌱_🌻🌷', text: 'orange' }, + moderate: { landscape: '🌾🌾_🍃_🪨__🛤_🌾🌾🌾_🍃', text: 'yellow' }, + chilly: { landscape: '🌲🌲⛄️🌲⛄️🍂🌲🍁🌲🌲⛄️🍂🌲', text: 'green' }, + cold: { landscape: '❄️🌲⛄️🌲❄️🏂⛄️🌲❄️⛷🌲❄️🌲', text: 'teal' }, +}; + const state = { tempValue: 60, }; @@ -13,9 +21,9 @@ const kelvinToFahrenheit = (temperature) => (temperature - 273.15) * (9 / 5) + 32; const updateTemp = () => { - const tempValue = document.querySelector('.tempValue'); + const tempValue = document.querySelector('#tempValue'); tempValue.textContent = state.tempValue; - helperTempDependentLayout(state.tempValue, tempValue); + conditionLayout(state.tempValue, tempValue); }; const incrementTemp = () => { @@ -28,28 +36,22 @@ const decrementTemp = () => { updateTemp(); }; -const helperTempDependentLayout = (temp, el) => { +const conditionLayout = (temp, el) => { const landscapeLayout = document.querySelector('#gardenLandscape'); - let color = ''; - let landscape = ''; + let currentCondition = ''; if (temp >= 80) { - color = 'red'; - landscape = '🌵__🐍_🦂_🌵🌵__🐍_🏜_🦂'; + currentCondition = CONDITIONS.hot; } else if (temp < 80 && temp >= 70) { - color = 'orange'; - landscape = '🌸🌿🌼__🌷🌻🌿_☘️🌱_🌻🌷'; + currentCondition = CONDITIONS.warm; } else if (temp < 70 && temp >= 60) { - color = 'yellow'; - landscape = '🌾🌾_🍃_🪨__🛤_🌾🌾🌾_🍃'; + currentCondition = CONDITIONS.moderate; } else if (temp < 60 && temp >= 50) { - color = 'green'; - landscape = '🌲🌲⛄️🌲⛄️🍂🌲🍁🌲🌲⛄️🍂🌲'; + currentCondition = CONDITIONS.chilly; } else if (temp < 50) { - color = 'teal'; - landscape = '❄️🌲⛄️🌲❄️🏂⛄️🌲❄️⛷🌲❄️🌲'; + currentCondition = CONDITIONS.cold; } - el.style.color = color; - landscapeLayout.textContent = landscape; + el.style.color = currentCondition.text; + landscapeLayout.textContent = currentCondition.landscape; }; const updateTitleCity = () => { diff --git a/styles/index.css b/styles/index.css index 34a185ed8..a7d7c0038 100644 --- a/styles/index.css +++ b/styles/index.css @@ -27,7 +27,7 @@ button { flex-direction: row; } -.tempValue { +#tempValue { font-size: 50px; color: yellow; } From 2f84ba62f2e70fe2727484fc55f2f56576cd7d8a Mon Sep 17 00:00:00 2001 From: Morgan Adkisson Date: Sun, 12 Jun 2022 18:07:24 -0700 Subject: [PATCH 13/15] added a low and high temperature box to the temp section - this gets updated with the daily temps when the real time button is pressed --- index.html | 9 +++++++-- package.json | 3 +-- src/index.js | 30 ++++++++++++++++++------------ styles/index.css | 33 +++++++++++++-------------------- 4 files changed, 39 insertions(+), 36 deletions(-) diff --git a/index.html b/index.html index 81e828317..b2986892d 100644 --- a/index.html +++ b/index.html @@ -6,7 +6,6 @@ Weather Report -
@@ -24,7 +23,13 @@

Temperature

60

- +
+
+

Today's Low:

+

Today's High:

+
+ +
diff --git a/package.json b/package.json index 9cf5ca65b..b32116095 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,4 @@ -{ - "dependencies": { +{ "dependencies": { "axios": "^0.27.2" } } diff --git a/src/index.js b/src/index.js index 1f52bda48..974f5ad8f 100644 --- a/src/index.js +++ b/src/index.js @@ -15,6 +15,8 @@ const CONDITIONS = { const state = { tempValue: 60, + cityLow: null, + cityHigh: null, }; const kelvinToFahrenheit = (temperature) => @@ -38,7 +40,7 @@ const decrementTemp = () => { const conditionLayout = (temp, el) => { const landscapeLayout = document.querySelector('#gardenLandscape'); - let currentCondition = ''; + let currentCondition = null; if (temp >= 80) { currentCondition = CONDITIONS.hot; } else if (temp < 80 && temp >= 70) { @@ -71,13 +73,20 @@ const updateWeatherGardenSky = () => { gardenSky.textContent = GARDENSKIES[weatherSelector.value]; }; +const displayCityHighAndLow = () => { + let dailyLow = document.querySelector('#dailyLow'); + let dailyHigh = document.querySelector('#dailyHigh'); + dailyLow.innerText = `Today's Low: ${state.cityLow}`; + dailyHigh.innerText = `Today's High: ${state.cityHigh}`; +}; + const getCityWeather = () => { axios .get('http://127.0.0.1:5000/location', { params: { q: `${cityName.value}` }, }) .then((response) => { - // console.log(response.data); + console.log(response.data); axios .get('http://127.0.0.1:5000/weather', { params: { @@ -86,20 +95,17 @@ const getCityWeather = () => { }, }) .then((response) => { - // console.log(response.data); - console.log( - `temp in ${cityName.value} is ${response.data.current.temp}` - ); - console.log( - `temp in ${cityName.value} is ${Math.round( - kelvinToFahrenheit(response.data.current.temp) - )}` - ); state.tempValue = Math.round( kelvinToFahrenheit(response.data.current.temp) ); - console.log(state.tempValue); updateTemp(); + state.cityLow = Math.round( + kelvinToFahrenheit(response.data.daily[0].temp.min) + ); + state.cityHigh = Math.round( + kelvinToFahrenheit(response.data.daily[0].temp.max) + ); + displayCityHighAndLow(); }); }); }; diff --git a/styles/index.css b/styles/index.css index a7d7c0038..360c11f02 100644 --- a/styles/index.css +++ b/styles/index.css @@ -32,26 +32,6 @@ button { color: yellow; } -/* .tempValue--red { - color: red; -} - -.tempValue--orange { - color: orange; -} - -.tempValue--yellow { - color: yellow; -} - -.tempValue--green { - color: green; -} - -.tempValue--teal { - color: teal; -} */ - #cityBlock ::placeholder{ color:lightgray; } @@ -70,6 +50,19 @@ button { justify-content: space-around; } +#dailyRange { + font-size: large; + background-color: rgba(134, 203, 208, 0.384); + padding: 5px; + border-radius: 10px; +} + +#realTimeDisplay { + display: flex; + flex-direction: column; + justify-content: space-around; +} + /* #skyBlock { grid-column: 1 2; grid-row: 2 3; From a2d69d5f6f9be1bf04be30a8b50c059475717399 Mon Sep 17 00:00:00 2001 From: sarah Date: Sun, 12 Jun 2022 22:29:58 -0700 Subject: [PATCH 14/15] default and reset set temp display to current in Seattle; also styling --- index.html | 2 +- src/index.js | 4 +++- styles/index.css | 41 ++++++++++++++++++++++++----------------- 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/index.html b/index.html index b2986892d..f14896a37 100644 --- a/index.html +++ b/index.html @@ -20,7 +20,7 @@

Temperature

-

60

+

diff --git a/src/index.js b/src/index.js index 974f5ad8f..852472f89 100644 --- a/src/index.js +++ b/src/index.js @@ -65,6 +65,7 @@ const updateTitleCity = () => { const resetCity = () => { document.querySelector('#titleCity').textContent = 'Seattle'; document.querySelector('#cityName').value = ''; + getCityWeather(); }; const updateWeatherGardenSky = () => { @@ -83,7 +84,7 @@ const displayCityHighAndLow = () => { const getCityWeather = () => { axios .get('http://127.0.0.1:5000/location', { - params: { q: `${cityName.value}` }, + params: { q: `${cityName.value ? cityName.value : 'Seattle'}` }, }) .then((response) => { console.log(response.data); @@ -126,3 +127,4 @@ const registerEventHandlers = () => { }; document.addEventListener('DOMContentLoaded', registerEventHandlers); +document.addEventListener('DOMContentLoaded', getCityWeather); diff --git a/styles/index.css b/styles/index.css index 360c11f02..5ce20e17c 100644 --- a/styles/index.css +++ b/styles/index.css @@ -1,14 +1,19 @@ button { - background: cyan; + background: lightblue; padding: 10px; border-radius: 25px; } #weatherFrame { - display: flex; - flex-direction: row; - gap: 50px; - align-items: flex-start; + display: grid; + grid-template-columns: 1fr 1.5fr; + gap: 30px; + padding: 10px; + min-width: max-content; + max-width: 100%; +} +#weatherFrame h2{ + margin-top: 0px; } #clickables{ @@ -16,7 +21,7 @@ button { } #clickables > section{ - padding: 10px; + padding: 25px; margin: 10px; background: grey; border-radius: 25px; @@ -36,11 +41,19 @@ button { color:lightgray; } +#gardenBlock { + min-width: max-content; + max-width: 75%; +} +#gardenBlock h2{ + text-align: center; +} + #garden { display: flex; flex-direction: column; - gap: 50px; - background: lightgreen; + gap: 100px; + background: lightblue; border-radius: 10px; padding: 5px; text-align: center; @@ -63,13 +76,7 @@ button { justify-content: space-around; } -/* #skyBlock { - grid-column: 1 2; - grid-row: 2 3; -} */ - - -/* #gardenBlock { - grid-column: 2 3; -} */ +#titleCity { + font-style: italic; +} From cb02e35c7962cfd72c30c27046d7d6b5476d2f70 Mon Sep 17 00:00:00 2001 From: Morgan Adkisson Date: Sun, 12 Jun 2022 23:14:17 -0700 Subject: [PATCH 15/15] added current description to temperature block, added some styling, and .catch to axios calls --- index.html | 1 + src/index.js | 18 ++++++++++++++++-- styles/index.css | 9 +++++---- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/index.html b/index.html index b2986892d..53e238661 100644 --- a/index.html +++ b/index.html @@ -27,6 +27,7 @@

Temperature

Today's Low:

Today's High:

+

Description:

diff --git a/src/index.js b/src/index.js index 974f5ad8f..2963de7d6 100644 --- a/src/index.js +++ b/src/index.js @@ -17,6 +17,7 @@ const state = { tempValue: 60, cityLow: null, cityHigh: null, + weatherDescription: null, }; const kelvinToFahrenheit = (temperature) => @@ -73,11 +74,13 @@ const updateWeatherGardenSky = () => { gardenSky.textContent = GARDENSKIES[weatherSelector.value]; }; -const displayCityHighAndLow = () => { +const displayCurrentConditions = () => { let dailyLow = document.querySelector('#dailyLow'); let dailyHigh = document.querySelector('#dailyHigh'); + let description = document.querySelector('#dailyDescription'); dailyLow.innerText = `Today's Low: ${state.cityLow}`; dailyHigh.innerText = `Today's High: ${state.cityHigh}`; + description.innerText = `Description: ${state.weatherDescription}`; }; const getCityWeather = () => { @@ -95,6 +98,7 @@ const getCityWeather = () => { }, }) .then((response) => { + console.log(response.data); state.tempValue = Math.round( kelvinToFahrenheit(response.data.current.temp) ); @@ -105,8 +109,18 @@ const getCityWeather = () => { state.cityHigh = Math.round( kelvinToFahrenheit(response.data.daily[0].temp.max) ); - displayCityHighAndLow(); + state.weatherDescription = + response.data.daily[0].weather[0].description; + displayCurrentConditions(); + }) + .catch((error) => { + console.log('error', error); + console.log('error response', error.response); }); + }) + .catch((error) => { + console.log('error', error); + console.log('error response', error.response); }); }; diff --git a/styles/index.css b/styles/index.css index 360c11f02..825186692 100644 --- a/styles/index.css +++ b/styles/index.css @@ -25,6 +25,11 @@ button { #tempButtonLayout { display: flex; flex-direction: row; + justify-content: space-around; + border-style: double; + border-radius: 10px; + padding: 20px; + background-color: rgba(240, 255, 255, 0.225); } #tempValue { @@ -46,10 +51,6 @@ button { text-align: center; } -#tempButtonLayout { - justify-content: space-around; -} - #dailyRange { font-size: large; background-color: rgba(134, 203, 208, 0.384);