import React, { Component } from 'react'; import { Mutation } from 'react-apollo'; import gql from 'graphql-tag'; import Router from 'next/router'; import Form from './styles/Form'; import formatMoney from '../lib/formatMoney'; import Error from './ErrorMessage'; const CREATE_ITEM_MUTATION = gql` mutation CREATE_ITEM_MUTATION( $title: String! $description: String! $price: Int! $image: String $largeImage: String ) { createItem( title: $title description: $description price: $price image: $image largeImage: $largeImage ) { id } } `; class CreateItem extends Component { state = { title: 'Cool Shoes', description: 'I love those shoes', image: 'dog.jpg', largeImage: 'large-dog.jpg', price: 1000, }; handleChange = e => { const { name, type, value } = e.target; const val = type === 'number' ? parseFloat(value) : value; this.setState({ [name]: val }); }; render() { return ( {(createItem, { loading, error }) => (
{ // Stop the form from submitting e.preventDefault(); // call the mutation const res = await createItem(); // change them to the single item page console.log(res); Router.push({ pathname: '/item', query: { id: res.data.createItem.id }, }); }} >