UNPKG

@shopify/react-graphql

Version:

Tools for creating type-safe and asynchronous GraphQL components for React

50 lines (45 loc) 1.35 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React = require('react'); var apolloClient = require('./apollo-client.js'); function useMutation(mutation, options = {}) { const { client: overrideClient, variables, optimisticResponse, refetchQueries, awaitRefetchQueries, update, context, fetchPolicy, errorPolicy } = options; const client = apolloClient["default"](overrideClient); const runMutation = React.useCallback((perMutationOptions = {}) => { const mutateVariables = { ...(variables || {}), ...(perMutationOptions.variables || {}) }; delete perMutationOptions.variables; return client.mutate({ mutation, variables: mutateVariables, optimisticResponse, refetchQueries, awaitRefetchQueries, update, context, fetchPolicy, errorPolicy, ...perMutationOptions }); }, // eslint-disable-next-line react-hooks/exhaustive-deps [client, mutation, refetchQueries, awaitRefetchQueries, update, context, fetchPolicy, errorPolicy, // eslint-disable-next-line react-hooks/exhaustive-deps JSON.stringify(variables), // eslint-disable-next-line react-hooks/exhaustive-deps JSON.stringify(optimisticResponse)]); return runMutation; } exports["default"] = useMutation;