26 lines
942 B
TypeScript
Executable File
26 lines
942 B
TypeScript
Executable File
import {toast} from '../../ui/toast/toast';
|
|
import {getAxiosErrorMessage} from './get-axios-error-message';
|
|
import {message} from '../../i18n/message';
|
|
import {ToastOptions} from '@common/ui/toast/toast-store';
|
|
import axios from 'axios';
|
|
import {openDialog} from '@common/ui/overlays/store/dialog-store';
|
|
import {IgnitionErrorDialog} from '@common/utils/http/ignition-error-dialog/ignition-error-dialog';
|
|
|
|
const defaultErrorMessage = message('There was an issue. Please try again.');
|
|
|
|
export function showHttpErrorToast(
|
|
err: unknown,
|
|
defaultMessage = defaultErrorMessage,
|
|
field?: string | null,
|
|
toastOptions?: ToastOptions,
|
|
) {
|
|
if (axios.isAxiosError(err) && err.response?.data?.ignitionTrace) {
|
|
openDialog(IgnitionErrorDialog, {error: err.response.data});
|
|
} else {
|
|
toast.danger(getAxiosErrorMessage(err, field) || defaultMessage, {
|
|
action: (err as any).response?.data?.action,
|
|
...toastOptions,
|
|
});
|
|
}
|
|
}
|