Merge pull request #525 from mirumee/fix/network-error

Display correct error if there were no graphql errors
This commit is contained in:
Dominik Żegleń 2020-05-11 18:50:06 +02:00 committed by GitHub
commit 65d7659262
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 13 additions and 10 deletions

View file

@ -52,6 +52,7 @@ All notable, unreleased changes to this project will be documented in this file.
- Handle session expiration - #520 by @dominik-zeglen - Handle session expiration - #520 by @dominik-zeglen
- Update product stock management to newest design - #515 by @dominik-zeglen - Update product stock management to newest design - #515 by @dominik-zeglen
- Handle untracked products - #523 by @dominik-zeglen - Handle untracked products - #523 by @dominik-zeglen
- Display correct error if there were no graphql errors - #525 by @dominik-zeglen
## 2.0.0 ## 2.0.0

View file

@ -50,7 +50,7 @@ function makeMutation<TData, TVariables>(
notify({ notify({
text: intl.formatMessage(commonMessages.readOnly) text: intl.formatMessage(commonMessages.readOnly)
}); });
} else if (err.graphQLErrors.every(isJwtError)) { } else if (err.graphQLErrors.some(isJwtError)) {
user.logout(); user.logout();
notify({ notify({
text: intl.formatMessage(commonMessages.sessionExpired) text: intl.formatMessage(commonMessages.sessionExpired)

View file

@ -64,7 +64,7 @@ function makeQuery<TData, TVariables>(
}, [queryData.loading]); }, [queryData.loading]);
if (queryData.error) { if (queryData.error) {
if (queryData.error.graphQLErrors.every(isJwtError)) { if (queryData.error.graphQLErrors.some(isJwtError)) {
user.logout(); user.logout();
notify({ notify({
text: intl.formatMessage(commonMessages.sessionExpired) text: intl.formatMessage(commonMessages.sessionExpired)

View file

@ -6,7 +6,7 @@ import { useIntl } from "react-intl";
import useNotifier from "./hooks/useNotifier"; import useNotifier from "./hooks/useNotifier";
import { commonMessages } from "./intl"; import { commonMessages } from "./intl";
import { maybe, getMutationStatus } from "./misc"; import { getMutationStatus } from "./misc";
import { MutationResultAdditionalProps } from "./types"; import { MutationResultAdditionalProps } from "./types";
import { isJwtError } from "./auth/errors"; import { isJwtError } from "./auth/errors";
import useUser from "./hooks/useUser"; import useUser from "./hooks/useUser";
@ -37,17 +37,19 @@ export function TypedMutation<TData, TVariables>(
mutation={mutation} mutation={mutation}
onCompleted={onCompleted} onCompleted={onCompleted}
onError={(err: ApolloError) => { onError={(err: ApolloError) => {
if (err.networkError) {
notify({
text: intl.formatMessage(commonMessages.somethingWentWrong)
});
}
if ( if (
maybe( err.graphQLErrors[0].extensions.exception?.code ===
() => "ReadOnlyException"
err.graphQLErrors[0].extensions.exception.code ===
"ReadOnlyException"
)
) { ) {
notify({ notify({
text: intl.formatMessage(commonMessages.readOnly) text: intl.formatMessage(commonMessages.readOnly)
}); });
} else if (err.graphQLErrors.every(isJwtError)) { } else if (err.graphQLErrors.some(isJwtError)) {
user.logout(); user.logout();
notify({ notify({
text: intl.formatMessage(commonMessages.sessionExpired) text: intl.formatMessage(commonMessages.sessionExpired)

View file

@ -83,7 +83,7 @@ export function TypedQuery<TData, TVariables>(
> >
{(queryData: QueryResult<TData, TVariables>) => { {(queryData: QueryResult<TData, TVariables>) => {
if (queryData.error) { if (queryData.error) {
if (queryData.error.graphQLErrors.every(isJwtError)) { if (queryData.error.graphQLErrors.some(isJwtError)) {
user.logout(); user.logout();
notify({ notify({
text: intl.formatMessage(commonMessages.sessionExpired) text: intl.formatMessage(commonMessages.sessionExpired)