import React, { Component } from 'react'; import { Mutation, Query } from 'react-apollo'; import { SIGNIN_MUTATION, CURRENT_USER_QUERY } from '../queries'; import Error from './ErrorMessage'; import Form from './styles/Form'; class Signin extends Component { state = { email: `wesbos@gmail.com`, password: 'abc123', }; loginUser = async (e, signin, refetchUser) => { e.preventDefault(); const res = await signin(); localStorage.setItem('token', res.data.signin.token); await refetchUser(); // TODO refetch current user query }; update = (proxy, payload) => { const data = proxy.readQuery({ query: CURRENT_USER_QUERY }); data.me = payload.data.signin.user; proxy.writeQuery({ query: CURRENT_USER_QUERY, data }); }; saveToState = e => { const { name, value } = e.target; this.setState({ [name]: value }); }; render() { // TODO / ASK - do I really have to wrap this in a query just to access the refetch function return ( {({ refetch }) => ( {(signin, { data, loading, error }) => (
this.loginUser(e, signin, refetch)}>
)}
)}
); } } export default Signin;