From 32a55f3c4f690534520daf84f00199d4cc0806a9 Mon Sep 17 00:00:00 2001 From: Kanishka Chowdhury Date: Tue, 5 Sep 2023 21:04:28 +0530 Subject: [PATCH] fix(FE/logs): show relevant error message on deleting/adding selected/interesting fields (#3437) Co-authored-by: Palash Gupta --- frontend/src/api/logs/AddToSelectedField.ts | 6 +- .../src/api/logs/RemoveFromSelectedField.ts | 6 +- frontend/src/container/LogsFilters/utils.ts | 103 ++++++++++-------- 3 files changed, 62 insertions(+), 53 deletions(-) diff --git a/frontend/src/api/logs/AddToSelectedField.ts b/frontend/src/api/logs/AddToSelectedField.ts index 55be186f5b..b2672f7dc4 100644 --- a/frontend/src/api/logs/AddToSelectedField.ts +++ b/frontend/src/api/logs/AddToSelectedField.ts @@ -4,7 +4,7 @@ import { AxiosError } from 'axios'; import { ErrorResponse, SuccessResponse } from 'types/api'; import { PayloadProps, Props } from 'types/api/logs/addToSelectedFields'; -const AddToSelectedFields = async ( +const addToSelectedFields = async ( props: Props, ): Promise | ErrorResponse> => { try { @@ -16,8 +16,8 @@ const AddToSelectedFields = async ( payload: data.data, }; } catch (error) { - return ErrorResponseHandler(error as AxiosError); + return Promise.reject(ErrorResponseHandler(error as AxiosError)); } }; -export default AddToSelectedFields; +export default addToSelectedFields; diff --git a/frontend/src/api/logs/RemoveFromSelectedField.ts b/frontend/src/api/logs/RemoveFromSelectedField.ts index c33ff9fca1..f417565595 100644 --- a/frontend/src/api/logs/RemoveFromSelectedField.ts +++ b/frontend/src/api/logs/RemoveFromSelectedField.ts @@ -4,7 +4,7 @@ import { AxiosError } from 'axios'; import { ErrorResponse, SuccessResponse } from 'types/api'; import { PayloadProps, Props } from 'types/api/logs/addToSelectedFields'; -const RemoveSelectedField = async ( +const removeSelectedField = async ( props: Props, ): Promise | ErrorResponse> => { try { @@ -16,8 +16,8 @@ const RemoveSelectedField = async ( payload: data.data, }; } catch (error) { - return ErrorResponseHandler(error as AxiosError); + return Promise.reject(ErrorResponseHandler(error as AxiosError)); } }; -export default RemoveSelectedField; +export default removeSelectedField; diff --git a/frontend/src/container/LogsFilters/utils.ts b/frontend/src/container/LogsFilters/utils.ts index e33bfa3181..ab3bd68f81 100644 --- a/frontend/src/container/LogsFilters/utils.ts +++ b/frontend/src/container/LogsFilters/utils.ts @@ -1,10 +1,12 @@ -import AddToSelectedFields from 'api/logs/AddToSelectedField'; -import RemoveSelectedField from 'api/logs/RemoveFromSelectedField'; +import { message } from 'antd'; +import addToSelectedFields from 'api/logs/AddToSelectedField'; +import removeSelectedField from 'api/logs/RemoveFromSelectedField'; import store from 'store'; import { UPDATE_INTERESTING_FIELDS, UPDATE_SELECTED_FIELDS, } from 'types/actions/logs'; +import { ErrorResponse } from 'types/api'; import { RESTRICTED_SELECTED_FIELDS } from './config'; import { OnHandleAddInterestProps, OnHandleRemoveInterestProps } from './types'; @@ -24,30 +26,34 @@ export const onHandleAddInterest = async ({ return [...prevState]; }); - await AddToSelectedFields({ - ...fieldData, - selected: true, - }); + try { + await addToSelectedFields({ + ...fieldData, + selected: true, + }); - dispatch({ - type: UPDATE_INTERESTING_FIELDS, - payload: { - field: interesting.filter((e) => e.name !== fieldData.name), - type: 'selected', - }, - }); + dispatch({ + type: UPDATE_INTERESTING_FIELDS, + payload: { + field: interesting.filter((e) => e.name !== fieldData.name), + type: 'selected', + }, + }); - dispatch({ - type: UPDATE_SELECTED_FIELDS, - payload: { - field: [...selected, fieldData], - type: 'selected', - }, - }); - - setInterestingFieldLoading( - interestingFieldLoading.filter((e) => e !== fieldIndex), - ); + dispatch({ + type: UPDATE_SELECTED_FIELDS, + payload: { + field: [...selected, fieldData], + type: 'selected', + }, + }); + } catch (errRes) { + message.error((errRes as ErrorResponse)?.error); + } finally { + setInterestingFieldLoading( + interestingFieldLoading.filter((e) => e !== fieldIndex), + ); + } }; export const onHandleRemoveInterest = async ({ @@ -67,28 +73,31 @@ export const onHandleRemoveInterest = async ({ return [...prevState]; }); - await RemoveSelectedField({ - ...fieldData, - selected: false, - }); + try { + await removeSelectedField({ + ...fieldData, + selected: false, + }); + dispatch({ + type: UPDATE_SELECTED_FIELDS, + payload: { + field: selected.filter((e) => e.name !== fieldData.name), + type: 'selected', + }, + }); - dispatch({ - type: UPDATE_SELECTED_FIELDS, - payload: { - field: selected.filter((e) => e.name !== fieldData.name), - type: 'selected', - }, - }); - - dispatch({ - type: UPDATE_INTERESTING_FIELDS, - payload: { - field: [...interesting, fieldData], - type: 'interesting', - }, - }); - - setSelectedFieldLoading( - interestingFieldLoading.filter((e) => e !== fieldIndex), - ); + dispatch({ + type: UPDATE_INTERESTING_FIELDS, + payload: { + field: [...interesting, fieldData], + type: 'interesting', + }, + }); + } catch (errRes) { + message.error((errRes as ErrorResponse)?.error); + } finally { + setSelectedFieldLoading( + interestingFieldLoading.filter((e) => e !== fieldIndex), + ); + } };