Skip to content

Commit dedbae3

Browse files
committed
fix-api
1 parent 78f694a commit dedbae3

File tree

2 files changed

+48
-34
lines changed

2 files changed

+48
-34
lines changed

src/pages/activities/RandomAnimeQuote.js

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { useEffect, useState } from "react";
2-
import axios from "axios";
32
import "../../styles/pages/activities/RandomQuote.css";
43

54
export const RandomAnimeQuote = () => {
@@ -9,11 +8,21 @@ export const RandomAnimeQuote = () => {
98
const generateQuote = async () => {
109
try {
1110
setQuote(null);
12-
const res = await axios.get("/api/v1/quotes/random");
13-
setQuote(res.data.data);
14-
} catch (error) {
15-
console.log(error);
16-
setError(error);
11+
setError(null);
12+
13+
const response = await fetch("https://animotto-api.onrender.com/api/quotes/random");
14+
if (!response.ok) throw new Error("Network response was not ok");
15+
16+
const data = await response.json();
17+
18+
setQuote({
19+
quote: data.quote,
20+
character: data.character,
21+
anime: data.anime.name || data.anime.altName || "Unknown"
22+
});
23+
} catch (err) {
24+
console.error(err);
25+
setError(err);
1726
}
1827
};
1928

@@ -27,26 +36,29 @@ export const RandomAnimeQuote = () => {
2736
<div className="description">
2837
Generate any random anime quote to get some inspiration!
2938
</div>
39+
3040
{quote && (
3141
<div className="rquote-content">
32-
<div className="rquote-quote">{quote.content}</div>
42+
<div className="rquote-quote">{quote.quote}</div>
3343
<div className="rquote-author">
34-
- {quote.character.name} ({quote.anime.name})
44+
- {quote.character} ({quote.anime})
3545
</div>
3646
</div>
3747
)}
48+
3849
{error && (
3950
<div className="rquote-content error">
40-
Too many requests have been sent to the API. Please try again after an
41-
hour.
51+
Error fetching quote. Please try again later.
4252
</div>
4353
)}
54+
4455
{!quote && !error && (
4556
<div className="spinner-wrapper">
4657
<div className="spinner"></div>
4758
</div>
4859
)}
49-
<button className="rquote-button" onClick={() => generateQuote()}>
60+
61+
<button className="rquote-button" onClick={generateQuote}>
5062
Generate Quote
5163
</button>
5264
</div>

src/pages/activities/RandomQuote.js

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,51 @@
11
import { useEffect, useState } from "react";
22
import axios from "axios";
3-
import "../../styles/pages/activities/RandomQuote.css";
3+
import "../../styles/pages/activities/RandomQuote.css"; // Reuse your styles
44

55
export const RandomQuote = () => {
6-
const [quote, setQuote] = useState(null);
6+
const [joke, setJoke] = useState(null);
77
const [error, setError] = useState(null);
88

9-
const generateQuote = () => {
10-
setQuote(null);
11-
axios({
12-
method: "GET",
13-
url: "https://api.qutable.io/random",
14-
})
15-
.then((res) => setQuote(res.data))
16-
.catch((error) => setError(error));
9+
const generateJoke = () => {
10+
setJoke(null);
11+
setError(null);
12+
13+
axios
14+
.get("https://official-joke-api.appspot.com/random_joke")
15+
.then((res) => setJoke(res.data))
16+
.catch((err) => setError(err));
1717
};
1818

1919
useEffect(() => {
20-
generateQuote();
20+
generateJoke();
2121
}, []);
2222

2323
return (
2424
<div className="rquote-root">
25-
<h1 class="header">Random Quote Generator</h1>
26-
<div class="description">
27-
Generate any random quote to get some inspiration!
25+
<h1 className="header">Random Joke Generator</h1>
26+
<div className="description">
27+
Get a random joke to brighten your day 😄
2828
</div>
29-
{quote && (
29+
30+
{joke && (
3031
<div className="rquote-content">
31-
<div className="rquote-quote">{quote.content}</div>
32-
<div className="rquote-author">- {quote.author}</div>
32+
<div className="rquote-quote">{joke.setup}</div>
33+
<div className="rquote-author">{joke.punchline}</div>
3334
</div>
3435
)}
36+
3537
{error && (
36-
<div className="rquote-content error">
37-
{error.message}
38-
</div>
38+
<div className="rquote-content error">{error.message}</div>
3939
)}
40-
{!quote && !error && (
40+
41+
{!joke && !error && (
4142
<div className="spinner-wrapper">
4243
<div className="spinner"></div>
4344
</div>
4445
)}
45-
<button className="rquote-button" onClick={generateQuote}>
46-
Generate Quote
46+
47+
<button className="rquote-button" onClick={generateJoke}>
48+
Generate Joke
4749
</button>
4850
</div>
4951
);

0 commit comments

Comments
 (0)