Skip to content

Commit 85253c7

Browse files
authored
fix: axios network i18n (#5878)
1 parent da24870 commit 85253c7

File tree

3 files changed

+32
-2
lines changed

3 files changed

+32
-2
lines changed

packages/shared/src/errors/errors/baseErrors.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ export class OneKeyError<
5757
let hardwareErrorPayload: IOneKeyHardwareErrorPayload | undefined;
5858
let autoToast: boolean | undefined;
5959
let requestId: string | undefined;
60+
let className: EOneKeyErrorClassNames | undefined;
61+
let name: string | undefined;
62+
6063
if (!isString(errorProps) && errorProps && isObject(errorProps)) {
6164
({
6265
message: msg,
@@ -67,6 +70,8 @@ export class OneKeyError<
6770
autoToast,
6871
requestId,
6972
payload: hardwareErrorPayload,
73+
className,
74+
name,
7075
} = errorProps);
7176
} else {
7277
msg = isString(errorProps) ? errorProps : '';
@@ -93,6 +98,12 @@ export class OneKeyError<
9398
}
9499
this.autoToast = autoToast;
95100
this.requestId = requestId;
101+
if (className) {
102+
this.className = className;
103+
}
104+
if (name) {
105+
this.name = name;
106+
}
96107
}
97108

98109
// for jest only: this is not stable, do not use it. may be different in compressed code

packages/shared/src/errors/types/errorTypes.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export enum EOneKeyErrorClassNames {
2222
OneKeyValidatorTip = 'OneKeyValidatorTip',
2323
OneKeyAbortError = 'OneKeyAbortError',
2424
AxiosAbortCancelError = 'AxiosAbortCancelError',
25+
AxiosNetworkError = 'AxiosNetworkError',
2526
OneKeyWalletConnectModalCloseError = 'OneKeyWalletConnectModalCloseError',
2627
OneKeyAlreadyExistWalletError = 'OneKeyAlreadyExistWalletError',
2728
PasswordPromptDialogCancel = 'PasswordPromptDialogCancel',

packages/shared/src/request/axiosInterceptor.ts

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
/* eslint-disable @typescript-eslint/no-restricted-imports */
22
/* eslint-disable @typescript-eslint/unbound-method */
33
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
4-
import axios from 'axios';
4+
import axios, { AxiosError } from 'axios';
55
import { forEach } from 'lodash';
66

7-
import { OneKeyServerApiError } from '@onekeyhq/shared/src/errors';
7+
import { OneKeyError, OneKeyServerApiError } from '@onekeyhq/shared/src/errors';
88
import type { IOneKeyAPIBaseResponse } from '@onekeyhq/shared/types/request';
99

10+
import { EOneKeyErrorClassNames } from '../errors/types/errorTypes';
1011
import { ETranslations } from '../locale';
1112
import { appLocale } from '../locale/appLocale';
1213
import { defaultLogger } from '../logger/logger';
@@ -128,6 +129,23 @@ axios.interceptors.response.use(
128129
});
129130
}
130131
}
132+
if (
133+
error &&
134+
error instanceof AxiosError &&
135+
error.message === 'Network Error' &&
136+
error.code === AxiosError.ERR_NETWORK &&
137+
error.name === 'AxiosError'
138+
) {
139+
const title = appLocale.intl.formatMessage({
140+
id: ETranslations.global_network_error,
141+
});
142+
throw new OneKeyError({
143+
name: error.name,
144+
message: title,
145+
className: EOneKeyErrorClassNames.AxiosNetworkError,
146+
key: ETranslations.global_network_error,
147+
});
148+
}
131149
throw error;
132150
},
133151
);

0 commit comments

Comments
 (0)