MCPcopy Create free account
hub / github.com/SuboptimalEng/coding-tutorials / App

Function App

react-anime/src/App.tsx:16–119  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

14}
15
16export const App = () => {
17 // const [likedAnime, setLikedAnime] = useState<Array<IAnime>>([]);
18 // const [dislikedAnime, setDislikedAnime] = useState<Array<IAnime>>([]);
19 const [query, setQuery] = useState<string>('naruto');
20 const [results, setResults] = useState<Array<IAnime>>([]);
21 const [showFavorites, setShowFavorites] = useState<boolean>(false);
22 const [favorites, setFavorites] = useState<Array<IAnime>>([]);
23
24 // Fetch anime data on page load.
25 useEffect(() => {
26 fetchAnimeData();
27 }, []); // eslint-disable-line react-hooks/exhaustive-deps
28
29 useEffect(() => {
30 console.log(favorites);
31 }, [favorites]);
32
33 useEffect(() => {
34 console.log(showFavorites);
35 }, [showFavorites]);
36
37 // Testing useEffect.
38 // useEffect(() => {
39 // console.log(query);
40 // }, [query]);
41
42 const fetchAnimeData = (): void => {
43 setShowFavorites(false);
44
45 // Define the config we'll need for our Api request
46 const url = `https://api.jikan.moe/v3/search/anime?q=${query}`;
47
48 // Make the HTTP Api request
49 fetch(url)
50 .then((response: Response) => response.json())
51 .then((data) => {
52 setResults([...data.results]);
53 })
54 .catch((error) => {
55 alert('Error, check console');
56 console.error(error);
57 });
58 };
59
60 const toggleFavoritesSection = () => {
61 setShowFavorites(!showFavorites);
62 };
63
64 return (
65 <div className="font-sans antialiased min-h-screen bg-gray-100 text-gray-900 py-8 flex flex-col place-items-center">
66 <div className="text-center flex flex-col space-y-8 w-7/12 lg:w-5/12 h-full">
67 {/* Search */}
68 <div className="flex space-x-4 justify-center">
69 <div>
70 <input
71 type="text"
72 value={query}
73 onChange={(e) => setQuery(e.target.value)}

Callers

nothing calls this directly

Calls 1

fetchAnimeDataFunction · 0.85

Tested by

no test coverage detected