From db742c8cf8f328a3bed6be8c8d77c339bb08d5fa Mon Sep 17 00:00:00 2001 From: Sergey Pivnev Date: Fri, 27 Sep 2024 16:12:05 -0400 Subject: [PATCH] Added fetch from API --- src/App.jsx | 54 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 21 deletions(-) diff --git a/src/App.jsx b/src/App.jsx index b7bde75..afc47b1 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,51 +1,63 @@ -import { useState } from "react"; +import { useEffect, useState } from "react"; import ResultCard from "./components/ResultCard"; import QuestionCard from "./components/QuestionCard"; import { shuffleArray } from "./lib/utils"; import rawTriviaQuestion from "./lib/data"; const triviaQuestion = rawTriviaQuestion.results[0]; +const TRIVIA_API = 'https://opentdb.com/api.php?amount=1&category=9&type=multiple'; function App() { - const [selectedAnswer, setSelectedAnswer] = useState(null); - const [questionData, setQuestionData] = useState(triviaQuestion); + const [currentAnswer, setCurrentAnswer] = useState(null); + const [currentQuestionData, setCurrentQuestionData] = useState(triviaQuestion); - const selectAnswer = (selection) => { - setSelectedAnswer(selection); + const handleAnswerSelect = (answer) => { + setCurrentAnswer(answer); }; - let card; - - if (selectedAnswer) { - card = ( + let cardDisplay; + if (currentAnswer) { + cardDisplay = ( ); } else { - let options = [ - questionData.correct_answer, - ...questionData.incorrect_answers, + let answerOptions = [ + currentQuestionData.correct_answer, + ...currentQuestionData.incorrect_answers, ]; - card = ( + cardDisplay = ( ); } + const fetchNewTrivia = async () => { + const triviaFetch = fetch(TRIVIA_API); + triviaFetch + .then((response) => response.json()) + .then((data) => { + setCurrentQuestionData(data.results[0]); + setCurrentAnswer(null); + console.log(data.results[0]); + }) + .catch((error) => console.error('Error:', error)); + }; + return (

Trivia App

- - {card} + + {cardDisplay}
); } -export default App; +export default App; \ No newline at end of file