Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found

Submitted

Advice Generator App using React, SASS/SCSS, Axios and Advice Slip API

Melwyn 250

@melwynt

Desktop design screenshot for the Advice generator app coding challenge

This is a solution for...

  • HTML
  • CSS
  • JS
  • API
2junior
View challenge

Design comparison


SolutionDesign

Solution retrospective


The bigest challenge here was to retrieve a new advice on each new click on the dice. At first fetch or axios were not getting a new advice even though I was triggering a new request to the API url. This was due to fetch and axios caching data. To overcome this issue, the solution was to add a timestamp in the URL.

Overall I'm pretty happy of the outcome and it was also fun to great that glow effect when hovering the dice.

Hope you like this one!

I would be super grateful if you could follow me here or on Twitter @melwyncode

Thanks ❤️

Community feedback

@ianmuchina

Posted

Hello.

One solution is to get an advice slip using it's id. eg: Get advice 100 by going to https://api.adviceslip.com/advice/100 Currently, the valid ids are those between 1 and 224.

You can then generate a random number between 1 & 224 on the client side each time the button is clicked.

Here's an example with fetch

async function fetchRoll() {
   id = Math.floor(Math.random() * 224);
  
   // Get Remote Data
  let response = await fetch(`https://api.adviceslip.com/advice/${id}`);
  let data = await response.json();

  // Update DOM
  adviceId.innerText = data.slip.id;
  adviceText.innerText = data.slip.advice;
}

// When dice button is clicked
dice.onclick = fetchRoll;
0

Melwyn 250

@melwynt

Posted

@ianmuchina thanks for the feedback 🙌 The only issue I found about that one is if there is a new advice added. There was another solution to provide specific settings into Axios headers (no-cache) but it didn't work for me.

0

Please log in to post a comment

Log in with GitHub
Discord logo

Join our Discord community

Join thousands of Frontend Mentor community members taking the challenges, sharing resources, helping each other, and chatting about all things front-end!

Join our Discord