fix error detail in toast

This commit is contained in:
Mary Hipp 2023-08-10 13:38:52 -04:00 committed by psychedelicious
parent 50415450d8
commit 3b6e425e17
2 changed files with 21 additions and 3 deletions

View File

@ -365,12 +365,19 @@ export const systemSlice = createSlice({
state.statusTranslationKey = 'common.statusConnected';
state.progressImage = null;
let errorDescription = undefined;
if (action.payload?.status === 422) {
errorDescription = 'Validation Error';
} else if (action.payload?.error) {
errorDescription = action.payload?.error as string;
}
state.toastQueue.push(
makeToast({
title: t('toast.serverError'),
status: 'error',
description:
action.payload?.status === 422 ? 'Validation Error' : undefined,
description: errorDescription,
})
);
});

View File

@ -60,6 +60,9 @@ type InvokedSessionThunkConfig = {
const isErrorWithStatus = (error: unknown): error is { status: number } =>
isObject(error) && 'status' in error;
const isErrorWithDetail = (error: unknown): error is { detail: string } =>
isObject(error) && 'detail' in error;
/**
* `SessionsService.invokeSession()` thunk
*/
@ -85,7 +88,15 @@ export const sessionInvoked = createAsyncThunk<
error: (error as any).body.detail,
});
}
return rejectWithValue({ arg, status: response.status, error });
if (isErrorWithDetail(error) && response.status === 403) {
return rejectWithValue({
arg,
status: response.status,
error: error.detail
});
}
if (error)
return rejectWithValue({ arg, status: response.status, error });
}
});