Skip to content

SeaTurtles - Adriana G.#70

Open
adrianajg wants to merge 20 commits into
ada-c17:mainfrom
adrianajg:main
Open

SeaTurtles - Adriana G.#70
adrianajg wants to merge 20 commits into
ada-c17:mainfrom
adrianajg:main

Conversation

@adrianajg

Copy link
Copy Markdown

Hello!

Please note that I replaced the landscape requirement with a thermometer icon that changes depending on the temperature. I also replaced the drop-down menu for weather conditions to icons, and instead used the drop-down menu to select the state (I did this purely for aesthetics as I liked how the weather icons looked at the bottom of the screen.)

Please also note that there is SO much refactoring that needs to be done. I didn't have time to delete comments or fix the many bugs that exist, but this is what I have so far.

Improvements I would make if I had more time:

  • clean up code in general
  • add background boxes around the temperature elements on the second and third "pages" or scroll regions like I have on the first page
  • Fix city and state displays for cities and states that have multiple words (for example New York vs Charlotte).
  • Make chosen weather default on third page be the same as the searched weather results on the second page

Feature I wanted to add:

  • API call to use user's IP address to set default location for that user.

@kelsey-steven-ada kelsey-steven-ada left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work Adriana! I've left some comments & suggestions, please take a look when you have time and let me know if there's anything I can clarify =]

Comment thread src/index.js Outdated
Comment on lines +1 to +10
// const axios = require('axios')
// require('dotenv').config()

// const { default: axios } = require("axios");

// console.log(document.getElementById('curr-loc'));

// console.log(process.env.LOCATIONIQ_KEY)

// let currTemp = parseInt(document.getElementById('temp-now').textContent);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We want to clean up unused code & comments before opening our PRs to make sure they don't make it into the main/deployment branch of our projects.

Comment thread src/index.js
Comment on lines +16 to +18
let tempText = document.getElementById('temp-now');
let highTempText = document.getElementById('hi-temp');
let lowTempText = document.getElementById('low-temp');

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the idea of pulling element lookups to the top of the page so they're stored in a variable at the time we need them!

It looks like there's a mix styles across the file with these 3 elements being looked up & stored up here and other elements looked up directly in the functions. For consistency, we would want to pick one style to use across the project, with the caveat that if there is an element that is only conditionally aded to the DOM based on user events, that specific item may need to be looked up later inside a function when it is guaranteed to exist.

Comment thread src/index.js
Comment on lines +194 to +209
if (STATE.currTemp < 50) {
chosenTempText.id = 'cold';
chosenTherm.src = './assets/thermometer-icons/cold.png';
} else if (STATE.currTemp < 60) {
chosenTempText.id = 'cool';
chosenTherm.src = './assets/thermometer-icons/cool.png';
} else if (STATE.currTemp < 70) {
chosenTempText.id = 'warm';
chosenTherm.src = './assets/thermometer-icons/warm.png';
} else if (STATE.currTemp < 80) {
chosenTempText.id = 'hot';
chosenTherm.src = './assets/thermometer-icons/hot.png';
} else {
chosenTempText.id = 'scorching';
chosenTherm.src = './assets/thermometer-icons/scorching.png';
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When we have large if-statements like this where each if-block performs the same operations with slightly different values, it can be worth making a helper function that handles the updates to reduce places we're repeating code and could accumulate small typos. With the helper function, each of the ifs here would call that function passing the desired parameters rather than setting attributes themselves.

const updateTempColor = () => {

    ...

    if (STATE.currTemp < 50) {
        updateChosenTempTextAndImage('cold', './assets/thermometer-icons/cold.png');
    } else if ...

}

...

const updateChosenTempTextAndImage = (category, imagePath) => {
    chosenTempText.id = category;
    chosenTherm.src = imagePath;
}

Comment thread index.html
<source src="assets/sunny.mp4" type="video/mp4">
</video>
<container class="page" id="page-1">
<div id="spacer-1"></div>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would strongly recommend using CSS to set padding & margins to create space between elements over adding empty block elements like divs

Comment thread index.html
Comment on lines +20 to +31
<div id="content-1">
<h1 id="title">What's the Weather?</h1>
<h2 id="subtitle">Dealer's choice!</h2>
<p><b>Ever wish you could control the weather?</b> Now you can! With
<b>What's the Weather</b> now anyone can decide what kind of day
it'll be! Simply play with the buttons and make
it <b><em>your day!</em></b></p>
</div>
<div class="scroll">
<h3>Check the weather</h3>
<img src="./assets/down-chevron.png" alt="down chevron arrow"></img>
</div>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would recommend replacing the divs here with elements that have more semantic meaning like section. This applies to most of the div uses I see across the HTML. We should reserve div for when no other semantic element makes sense or we need a container for styling that does not otherwise have meaning to the layout.

Comment thread index.html
<video playsinline autoplay muted loop poster="assets/down-chevron.png" id="bgvid-3">
<source id="page3-conditions" src="assets/Lightning.mp4" type="video/mp4">
</video>
<container class="page" id="page-3">

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really neat paged layout!

Comment thread src/index.js

return [latitude, longitude];
})
.then((response) => {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice use of .then chaining to fire the calls off in sequence! This function is a bit long, if we wanted to divide it up for clarity, we could move the /weather endpoint call to its own function and call the new function from a .then block here.

Comment thread src/index.js
displayCity.textContent = input;
};

const displayChosenState = () => {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really nice use of helper functions to divide up the actions we want to take into smaller portions that are easier to read and test.

Comment thread styles/index.css
animation: neon-scorching .08s ease-in-out infinite alternate;
}

@keyframes neon-scorching {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Love the neon effects on the temperature!

Comment thread index.html
</span>
</div>
<div class="real-temp">
<img id="thermometer-image" src="./assets/thermometer-icons/cold.png" alt="thermometer" />

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like how the thermometers turned out! Very cute ^_^

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants