graphql(loginWithFacebook, { props: ({ mutate }) => ({ loginWithFacebook: (deviceInfo, accessToken) => mutate({ variables: { deviceInfo, accessToken }, update: (proxy, { data }) => { // Keep session persist.willSetSessionToken(data.loginWithFacebook.sessionToken) // Read the data from our cache for this query. let cached = proxy.readQuery({ query: userProfile }) // Errors cached.errors = data.errors // User cached.user = data.loginWithFacebook.user // Authen cached.authen = { isLoggedIn: data.loginWithFacebook.isLoggedIn, sessionToken: data.loginWithFacebook.sessionToken, __typename: 'Authen' } // Write our data back to the cache. proxy.writeQuery({ query: userProfile, data: cached }) } }) }) })