import { Formik, Form } from 'formik' import * as Yup from 'yup' import { Mutation } from 'react-apollo' import { adopt } from 'react-adopt' import { TextInput } from '../../lib/forms' import { USER_SIGNUP, CURRENT_USER } from './graphql' const initialValues = { name: 'Tomi', email: 'tomi@cvetic.ch', password: '1234', passwordAgain: '1234' } const validationSchema = Yup.object({ name: Yup.string() .required('Required') .max(40, 'Must be 40 characters or less'), email: Yup.string() .email('Invalid email address') .required('Required'), password: Yup.string() .min(4, 'Must have at least 8 characters'), passwordAgain: Yup.string() .oneOf([Yup.ref('password'), null], 'Passwords must match') }) async function onSubmit (values, mutation) { try { const user = await mutation({ variables: values }) console.log(user) } catch (error) { console.log(error) } } const SignupAdoption = adopt({ mutation: ({ render }) => ( {(signup, { data, error, loading }) => render({ signup, data, error, loading, render })} ), form: ({ mutation, render }) => ( onSubmit(values, mutation)} > {render} ) }) const SignupForm = props => ( {({ form, mutation: { signup, data, error, loading } }) => (
)}
) export default SignupForm