Skip to content

Commit 0bb89a1

Browse files
committed
fix: typecheck for AxiosError
1 parent a30768e commit 0bb89a1

1 file changed

Lines changed: 27 additions & 16 deletions

File tree

src/taxonomy/tag-list/hooks.ts

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { useReducer } from 'react';
2+
import { AxiosError } from 'axios';
23
import { useIntl } from '@edx/frontend-platform/i18n';
34

45
import globalMessages from '@src/messages';
@@ -168,24 +169,34 @@ const useEditActions = ({
168169
return true;
169170
};
170171

171-
const getErrorMessage = (error: any): string => {
172-
let errorMessage: string = '';
173-
if (error.name === 'AxiosError') {
174-
const responseData = error.response?.data;
175-
const tagError = Object.entries(responseData)?.find((errItem: [string, unknown]) => (
176-
['tag', 'value', 'updated_tag_value'].includes(errItem[0].toLowerCase())
177-
));
178-
179-
const errorMessages = tagError ? tagError[1] : (
180-
(error as Error).message || intl.formatMessage(globalMessages.unknownError)
181-
);
182-
errorMessage = Array.isArray(errorMessages) ? errorMessages.join('; ') : String(errorMessages);
183-
} else {
184-
errorMessage = (error as Error).message || intl.formatMessage(globalMessages.unknownError);
172+
const formatErrorMessage = (errorMessage: string): string => {
173+
// Remove trailing period for better message formatting
174+
return errorMessage.replace(/\.$/, '');
175+
};
176+
177+
const getAxiosErrorMessage = (axiosError: AxiosError) => {
178+
const responseData = axiosError.response?.data;
179+
const tagError = responseData ? Object.entries(responseData)?.find((errItem: [string, unknown]) => (
180+
['tag', 'value', 'updated_tag_value'].includes(errItem[0].toLowerCase())
181+
)) : null;
182+
183+
const errorMessages = tagError ? tagError[1] : (
184+
axiosError.message || intl.formatMessage(globalMessages.unknownError)
185+
);
186+
const errorMessage = Array.isArray(errorMessages) ? errorMessages.join('; ') : String(errorMessages);
187+
return formatErrorMessage(errorMessage);
188+
};
189+
190+
const getErrorMessage = (error: unknown): string => {
191+
if (error instanceof AxiosError) {
192+
return getAxiosErrorMessage(error);
193+
}
194+
195+
if (error instanceof Error && error.message) {
196+
return formatErrorMessage(error.message);
185197
}
186198

187-
errorMessage = errorMessage.replace(/\.$/, ''); // Remove trailing period for better message formatting
188-
return errorMessage;
199+
return intl.formatMessage(globalMessages.unknownError);
189200
};
190201

191202
const handleCreateTag = async (value: string, parentTagValue?: string) => {

0 commit comments

Comments
 (0)