App.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import './assets/scss/_page-styles/rickandmortyapi.scss';
  2. // hw19 (22.10.2022)
  3. import dataEpisodes from './assets/json/dataEpisodes.json';
  4. import dataCharacters from './assets/json/dataCharacters.json';
  5. const CharactersItem = ({name, gender, image}) =>
  6. <li className="characters-list__item">
  7. <h3 className="characters-list__name">{name}</h3>
  8. <p>{gender}</p>
  9. <img className="characters-list__image"
  10. alt={name}
  11. src={image}
  12. />
  13. </li>
  14. const EpisodeItem = ({name, air_date, children}) =>
  15. <>
  16. <h1 className="episode__name">{name}</h1>
  17. <time className="episode__air-date">{air_date}</time>
  18. {children}
  19. </>
  20. const Episode = () =>
  21. dataEpisodes.map(item => (
  22. <div className="episode" key={Math.random()}>
  23. <EpisodeItem name={item.name}
  24. air_date={item.air_date}
  25. >
  26. <ul className="characters-list">
  27. {dataCharacters.map(character => (
  28. <CharactersItem key={Math.random()}
  29. name={character.name}
  30. gender={character.gender}
  31. image={character.image}
  32. />
  33. ))}
  34. </ul>
  35. </EpisodeItem>
  36. </div>
  37. ))
  38. const App = () =>
  39. <div className="App">
  40. <section className="episodes">
  41. <Episode />
  42. </section>
  43. </div>
  44. export default App;