From 2b2b4de4dddeae7de92a5c0e2f0417d950b60df1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20=C5=BBegle=C5=84?= Date: Mon, 14 Mar 2022 10:53:39 +0100 Subject: [PATCH] Fix mutations without onCompleted (#1914) --- src/auth/utils.ts | 26 ++++++++++---------------- src/hooks/makeMutation.ts | 4 +++- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/auth/utils.ts b/src/auth/utils.ts index 1e8f249ba..4426dcc17 100644 --- a/src/auth/utils.ts +++ b/src/auth/utils.ts @@ -17,35 +17,29 @@ export const displayDemoMessage = ( }); }; -const getAllErrorMessages = (error: ApolloError) => { - const errorMessages = []; - - if (error.graphQLErrors.length) { - error.graphQLErrors.forEach(err => { - errorMessages.push(err.message); - }); - } - +const getNetworkErrors = (error: ApolloError): string[] => { const networkErrors = error.networkError as ServerErrorWithName; - if (error.networkError) { + if (networkErrors) { // Apparently network errors can be an object or an array if (Array.isArray(networkErrors.result)) { networkErrors.result.forEach(result => { if (result.errors) { - result.errors.forEach(({ message }) => { - errorMessages.push(message); - }); + return result.errors.map(({ message }) => message); } }); - } else { - errorMessages.push(networkErrors.result.errors.message); } + return networkErrors.result.errors.message; } - return errorMessages; + return []; }; +const getAllErrorMessages = (error: ApolloError) => [ + ...(error.graphQLErrors?.map(err => err.message) || []), + ...getNetworkErrors(error) +]; + export const showAllErrors = ({ notify, error diff --git a/src/hooks/makeMutation.ts b/src/hooks/makeMutation.ts index 66281f204..470d18a6e 100644 --- a/src/hooks/makeMutation.ts +++ b/src/hooks/makeMutation.ts @@ -53,7 +53,9 @@ export function useMutation( notify }); - onCompleted(data); + if (onCompleted) { + onCompleted(data); + } }, onError: (err: ApolloError) => { if (err.graphQLErrors) {