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

Math magicians: fetch data from API #4

Merged
merged 5 commits into from
Aug 26, 2023
Merged

Math magicians: fetch data from API #4

merged 5 commits into from
Aug 26, 2023

Conversation

HossainAraf
Copy link
Owner

Method Implemented:

  • Use the following external API: API Ninjas;
  • Create a new component for displaying a quote;
  • Fetch data inside of a new component;
  • Show a loading state;
  • Show an error state;
  • Import the new component into your main component (next to the Calculator) & It should be on the same page as the Calculator
  • Update style

Copy link

@DeliceLydia DeliceLydia left a comment

Choose a reason for hiding this comment

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

HI @HossainAraf,

Good job so far! There are some issues that you still need to work on to go to the next project but you are almost there!

Highlights

  • The useEffect hook has been used correctly
  • There is a loading state
  • There is an error state

Required Changes ♻️

Check the comments under the review.

Cheers, and Happy coding!👏👏👏

Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.


As described in the Code reviews limits policy you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.

Comment on lines 4 to 29
const JokeComponent = () => {
const [joke, setJoke] = useState(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(false);

useEffect(() => {
const myAPIKey = 'Ixgm2cYnlo7wGSvmiMQCVvfUJ6kVeTvgNZShaXEC';
const apiURL = 'https://api.api-ninjas.com/v1/dadjokes?limit=1';

const options = {
method: 'GET',
headers: { 'X-Api-Key': myAPIKey },
};

const fetchData = async () => {
try {
const response = await fetch(apiURL, options);
const data = await response.json();
setJoke(data[0].joke);
} catch (error) {
setError(true);
}
setLoading(false);
};

fetchData(); // Call the function to fetch data when the component mounts

Choose a reason for hiding this comment

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

  • I suggest that you change a function to Quote not Joke as the requirement says
  • Please change the API from Joke to Quote you can refer to this link

Copy link

@Alusp Alusp left a comment

Choose a reason for hiding this comment

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

Hi @HossainAraf,

Your project is complete! There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉

congrats

Highlights

  • The useEffect hook has been used correctly 👏
  • There is a loading state 👏
  • There is an error state 👏

Optional suggestions

Every comment with the [OPTIONAL] prefix won't stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better. Some of them were simply missed by the previous reviewer and addressing them will really improve your application.

Cheers and Happy coding!👏👏👏

Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me @Alusp in your question so I can receive the notification.


As described in the Code reviews limits policy you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.

Copy link

Choose a reason for hiding this comment

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

  • [Optional] When I refresh the browser two quotes display one after the other, it is supposed to be one quote per refresh. Please resolve that.

@HossainAraf HossainAraf merged commit 82800d1 into dev Aug 26, 2023
3 checks passed
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.

3 participants