Index.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import React from 'react';
  2. import {graphql, QueryRenderer, ReadyState} from 'react-relay';
  3. import {IndexQueryResponse} from '../../../__generated__/IndexQuery.graphql';
  4. import environment from '../../../graphqlEnvironment';
  5. import PokemonShow from './Show';
  6. function PokemonIndex(): React.ReactNode {
  7. return (
  8. <QueryRenderer
  9. environment={environment}
  10. query={graphql`
  11. query IndexQuery {
  12. pokemonConnection {
  13. edges {
  14. node {
  15. id
  16. ...Show_pokemon
  17. }
  18. }
  19. }
  20. }
  21. `}
  22. render={({error, props}: ReadyState<IndexQueryResponse>): React.ReactNode => {
  23. if (error) {
  24. return <div>Error!</div>;
  25. }
  26. if (!props) {
  27. return <div>Loading...</div>;
  28. }
  29. return (
  30. <ul>
  31. {props.pokemonConnection.edges.map(
  32. (edge): React.ReactNode => (
  33. <li key={edge.node.id}>
  34. <PokemonShow pokemon={edge.node} />
  35. </li>
  36. )
  37. )}
  38. </ul>
  39. );
  40. }}
  41. variables={{}}
  42. />
  43. );
  44. }
  45. export default PokemonIndex;