Create.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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(e: Event, router: Router, nickname: string, pokedexNumber: number): void {
  7. e.preventDefault();
  8. createPokemon(environment, router, nickname, pokedexNumber);
  9. }
  10. const Create: React.FC<RouterState> = ({router}: RouterState): React.ReactElement<void> => {
  11. const [nickname, setNickname] = useState('');
  12. const [pokedexNumber, setPokedexNumber] = useState(1);
  13. return (
  14. <Form onSubmit={e => onSubmit(e, router, nickname, pokedexNumber)}>
  15. <Form.Group controlId='nickname'>
  16. <Form.Label>Nickname</Form.Label>
  17. <Form.Control onChange={e => setNickname(e.target.value)} placeholder='Pokemon Nickname' />
  18. </Form.Group>
  19. <Form.Group controlId='pokedexNumber'>
  20. <Form.Label>National Pokedex Number</Form.Label>
  21. <Form.Control
  22. max={809}
  23. min={1}
  24. onChange={e => setPokedexNumber(e.target.value)}
  25. placeholder='Nation Pokedex Number'
  26. type='number'
  27. />
  28. </Form.Group>
  29. <Button type='submit' variant='primary'>
  30. Submit
  31. </Button>
  32. </Form>
  33. );
  34. };
  35. export default withRouter(Create);