createTraining.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { Formik, Form } from 'formik'
  2. import { Mutation } from 'react-apollo'
  3. import { adopt } from 'react-adopt'
  4. import * as Yup from 'yup'
  5. import { TextInput } from '../lib/forms'
  6. import { CREATE_TRAINING } from '../lib/graphql'
  7. const TrainingAdoption = adopt({
  8. training: ({ render }) => (<Mutation mutation={CREATE_TRAINING}>{render}</Mutation>),
  9. form: ({ render }) => (
  10. <Formik
  11. initialVariables={{
  12. title: '',
  13. trainingDate: ''
  14. }}
  15. validationSchema={{
  16. title: Yup.string(),
  17. trainingDate: Yup.date()
  18. }}
  19. onSubmit={ev => console.log(ev.target)}
  20. >
  21. {render}
  22. </Formik>)
  23. })
  24. const CreateTraining = props => (
  25. <TrainingAdoption>
  26. {({ training, form }) => (
  27. <Form>
  28. <h2>Create Training</h2>
  29. <TextInput
  30. label='title'
  31. name='title'
  32. type='text'
  33. placeholder='title'
  34. />
  35. <TextInput
  36. label='Training date'
  37. name='trainingDate'
  38. type='date'
  39. />
  40. <button type='submit'>Create!</button>
  41. </Form>
  42. )}
  43. </TrainingAdoption>
  44. )
  45. export default CreateTraining