Create.tsx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import React, {useState} from 'react';
  2. import {Form, Button} from 'react-bootstrap';
  3. import {withRouter, RouterState, Router} from 'found';
  4. import environment from '../../../graphqlEnvironment';
  5. import {createPokemon} from './CreatePokemon';
  6. function onSubmit(
  7. e: Event,
  8. router: Router,
  9. nickname: string,
  10. pokedexNumber: number
  11. ): void {
  12. e.preventDefault();
  13. createPokemon(environment, router, nickname, pokedexNumber);
  14. }
  15. const Create: React.FC<RouterState> = ({
  16. router,
  17. }: RouterState): React.ReactElement<void> => {
  18. const [nickname, setNickname] = useState('');
  19. const [pokedexNumber, setPokedexNumber] = useState(1);
  20. return (
  21. <Form onSubmit={e => onSubmit(e, router, nickname, pokedexNumber)}>
  22. <Form.Group controlId='nickname'>
  23. <Form.Label>Nickname</Form.Label>
  24. <Form.Control
  25. onChange={e => setNickname(e.target.value)}
  26. placeholder='Pokemon Nickname'
  27. />
  28. </Form.Group>
  29. <Form.Group controlId='pokedexNumber'>
  30. <Form.Label>National Pokedex Number</Form.Label>
  31. <Form.Control
  32. max={809}
  33. min={1}
  34. onChange={e => setPokedexNumber(e.target.value)}
  35. placeholder='Nation Pokedex Number'
  36. type='number'
  37. />
  38. </Form.Group>
  39. <Button type='submit' variant='primary'>
  40. Submit
  41. </Button>
  42. </Form>
  43. );
  44. };
  45. export default withRouter(Create);