From 17feeca79a37aa728b9a562660ebb0dcab59a01b Mon Sep 17 00:00:00 2001 From: Phil Pluckthun Date: Tue, 4 Jun 2019 19:07:49 +0100 Subject: [PATCH] Add missing useCallback to useMutation --- src/hooks/useMutation.ts | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/hooks/useMutation.ts b/src/hooks/useMutation.ts index c103768109..3836b6e9a9 100644 --- a/src/hooks/useMutation.ts +++ b/src/hooks/useMutation.ts @@ -1,5 +1,5 @@ import { DocumentNode } from 'graphql'; -import { useContext } from 'react'; +import { useContext, useCallback } from 'react'; import { pipe, toPromise } from 'wonka'; import { Context } from '../context'; import { OperationResult } from '../types'; @@ -27,20 +27,23 @@ export const useMutation = ( data: undefined, }); - const executeMutation = (variables?: V) => { - setState({ fetching: true, error: undefined, data: undefined }); + const executeMutation = useCallback( + (variables?: V) => { + setState({ fetching: true, error: undefined, data: undefined }); - const request = createRequest(query, variables as any); + const request = createRequest(query, variables as any); - return pipe( - client.executeMutation(request), - toPromise - ).then(result => { - const { data, error } = result; - setState({ fetching: false, data, error }); - return result; - }); - }; + return pipe( + client.executeMutation(request), + toPromise + ).then(result => { + const { data, error } = result; + setState({ fetching: false, data, error }); + return result; + }); + }, + [client, query, setState] + ); return [state, executeMutation]; };