Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Final edition #30

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Final edition #30

wants to merge 2 commits into from

Conversation

ManaGh
Copy link

@ManaGh ManaGh commented Jun 16, 2023

This is a copy of jobs I've done before in other repository so I'm pushing all changes together here.

Contributors, PR Template

Self checklist

  • I have committed my files one by one, on purpose, and for a reason
  • I have titled my PR with ISSUE NUMBER | ISSUE TITLE
  • I have linked my PR to the paired issue with #123
  • I have tested my changes
  • My changes follow the style guide
  • My changes meet the acceptance criteria

Changelist

Briefly explain your PR.

Context

Link to ticket with fixes #123

Questions

Ask any questions you have for your reviewer.

This is a copy of jobs I've done before in other repository so I'm pushing all changes together here.
@ManaGh
Copy link
Author

ManaGh commented Jun 16, 2023

London9-Mana-Ghabraei-Frontend-RainyPlaytime

Copy link

@jonnywyatt jonnywyatt left a comment

Choose a reason for hiding this comment

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

Well done on building this Mana!
The page shows the weather icons but with no data, before you enter a city can you fix that, maybe with a prompt for the user to type a place name?


<section className="todayForecast">
<TodayForecast
weatherId={data?.list?.[0]?.weather?.[0]?.id}

Choose a reason for hiding this comment

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

Maybe if the data is missing, you could show a message instead? At the moment, running locally, it's showing blank values / NaN

<section className="todayForecast">
<TodayForecast
weatherId={data?.list?.[0]?.weather?.[0]?.id}
description={data?.list?.[0]?.weather?.[0]?.description}

Choose a reason for hiding this comment

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

You could destructure these values, to make it a bit more readable, eg -

const [firstItem] = data.list[0]

</section>
<section className="hourlyForecast">
{data?.list?.splice(0, 7)?.map((future) => (
<HourlyForecast

Choose a reason for hiding this comment

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

Every item in a list should be given a key prop (doc)

src/App.scss Outdated
object-fit: cover;
}

.description{

Choose a reason for hiding this comment

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

One way to avoid duplicating these two lines is to declare a utility class eg -

.center-horizontal {
  display: flex;
  justify-content: center;
}

Then use that class on the 3 elements in addition to .description, .temp and .current-container

src/App.scss Outdated Show resolved Hide resolved

return (
<header className="header">
<input

Choose a reason for hiding this comment

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

Best to wrap this in a <form /> element so the user can submit by pressing enter while in an input

<input
className="Location"

placeholder="Type in a city name"

Choose a reason for hiding this comment

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

For accessibility, inputs should have labels. If the label isn't visible in the design, you can hide it except for screen readers with a .visually-hidden class (ref - https://css-tricks.com/inclusively-hidden/)

};

function selectImage(weatherId) {
if (weatherId < 300) {

Choose a reason for hiding this comment

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

Could alternatively use a switch statement here

<div>
<Icon weatherId={weatherId} />
<h2 className="description">{description}</h2>
<h3 className="temp">

Choose a reason for hiding this comment

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

This doesn't need to be a heading as there's no content under it

</h3>

<div className="current-container">
<h4 className="humid-press">Humidity : {humidity}%</h4>

Choose a reason for hiding this comment

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

These can be divs instead of subheadings

src/App.js Outdated Show resolved Hide resolved
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