Files
criminalmindsapi/client/src/pages/home.js
T

63 lines
1.3 KiB
JavaScript
Raw Normal View History

2022-06-25 14:23:41 -05:00
import React, { useEffect, useState } from 'react';
2022-06-25 10:30:21 -05:00
import Greeting from '../components/greeting';
2022-06-25 14:23:41 -05:00
import CardHolder from '../components/cardHolder';
import CharacterCard from '../components/characterCard';
import Loading from '../components/loading';
2022-06-25 14:23:41 -05:00
import CharacterService from '../services/characterService';
const characterService = new CharacterService();
2022-06-24 23:23:06 -05:00
export default function Home() {
2022-06-25 14:23:41 -05:00
const [characters, setCharacters] = useState([]);
const getCharacters = async () => {
const res = await characterService.getCharacters();
// TODO: Handle a failed request.
if (!res.ok) return;
2022-06-25 14:23:41 -05:00
const characters = await res.json();
return setCharacters(characters);
}
useEffect(() => {
getCharacters();
}, []);
const getCharacterCards = () => {
return characters.map(character => {
return (
<CharacterCard
character={character}
/>
);
})
}
2022-06-24 23:23:06 -05:00
return (
<>
<Greeting />
2022-06-26 11:49:03 -05:00
{characters.length > 0 ?
2022-06-26 11:49:03 -05:00
<CardHolder>
2022-06-26 11:49:03 -05:00
{getCharacterCards()}
2022-06-26 11:49:03 -05:00
</CardHolder>
2022-06-26 11:49:03 -05:00
: <Loading />}
2022-06-24 23:23:06 -05:00
</>
);
}