fix(FE/logs): show relevant error message on deleting/adding selected/interesting fields (#3437)

Co-authored-by: Palash Gupta <palashgdev@gmail.com>
This commit is contained in:
Kanishka Chowdhury 2023-09-05 21:04:28 +05:30 committed by GitHub
parent 8e6a7f13a1
commit 32a55f3c4f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 62 additions and 53 deletions

View File

@ -4,7 +4,7 @@ import { AxiosError } from 'axios';
import { ErrorResponse, SuccessResponse } from 'types/api'; import { ErrorResponse, SuccessResponse } from 'types/api';
import { PayloadProps, Props } from 'types/api/logs/addToSelectedFields'; import { PayloadProps, Props } from 'types/api/logs/addToSelectedFields';
const AddToSelectedFields = async ( const addToSelectedFields = async (
props: Props, props: Props,
): Promise<SuccessResponse<PayloadProps> | ErrorResponse> => { ): Promise<SuccessResponse<PayloadProps> | ErrorResponse> => {
try { try {
@ -16,8 +16,8 @@ const AddToSelectedFields = async (
payload: data.data, payload: data.data,
}; };
} catch (error) { } catch (error) {
return ErrorResponseHandler(error as AxiosError); return Promise.reject(ErrorResponseHandler(error as AxiosError));
} }
}; };
export default AddToSelectedFields; export default addToSelectedFields;

View File

@ -4,7 +4,7 @@ import { AxiosError } from 'axios';
import { ErrorResponse, SuccessResponse } from 'types/api'; import { ErrorResponse, SuccessResponse } from 'types/api';
import { PayloadProps, Props } from 'types/api/logs/addToSelectedFields'; import { PayloadProps, Props } from 'types/api/logs/addToSelectedFields';
const RemoveSelectedField = async ( const removeSelectedField = async (
props: Props, props: Props,
): Promise<SuccessResponse<PayloadProps> | ErrorResponse> => { ): Promise<SuccessResponse<PayloadProps> | ErrorResponse> => {
try { try {
@ -16,8 +16,8 @@ const RemoveSelectedField = async (
payload: data.data, payload: data.data,
}; };
} catch (error) { } catch (error) {
return ErrorResponseHandler(error as AxiosError); return Promise.reject(ErrorResponseHandler(error as AxiosError));
} }
}; };
export default RemoveSelectedField; export default removeSelectedField;

View File

@ -1,10 +1,12 @@
import AddToSelectedFields from 'api/logs/AddToSelectedField'; import { message } from 'antd';
import RemoveSelectedField from 'api/logs/RemoveFromSelectedField'; import addToSelectedFields from 'api/logs/AddToSelectedField';
import removeSelectedField from 'api/logs/RemoveFromSelectedField';
import store from 'store'; import store from 'store';
import { import {
UPDATE_INTERESTING_FIELDS, UPDATE_INTERESTING_FIELDS,
UPDATE_SELECTED_FIELDS, UPDATE_SELECTED_FIELDS,
} from 'types/actions/logs'; } from 'types/actions/logs';
import { ErrorResponse } from 'types/api';
import { RESTRICTED_SELECTED_FIELDS } from './config'; import { RESTRICTED_SELECTED_FIELDS } from './config';
import { OnHandleAddInterestProps, OnHandleRemoveInterestProps } from './types'; import { OnHandleAddInterestProps, OnHandleRemoveInterestProps } from './types';
@ -24,30 +26,34 @@ export const onHandleAddInterest = async ({
return [...prevState]; return [...prevState];
}); });
await AddToSelectedFields({ try {
...fieldData, await addToSelectedFields({
selected: true, ...fieldData,
}); selected: true,
});
dispatch({ dispatch({
type: UPDATE_INTERESTING_FIELDS, type: UPDATE_INTERESTING_FIELDS,
payload: { payload: {
field: interesting.filter((e) => e.name !== fieldData.name), field: interesting.filter((e) => e.name !== fieldData.name),
type: 'selected', type: 'selected',
}, },
}); });
dispatch({ dispatch({
type: UPDATE_SELECTED_FIELDS, type: UPDATE_SELECTED_FIELDS,
payload: { payload: {
field: [...selected, fieldData], field: [...selected, fieldData],
type: 'selected', type: 'selected',
}, },
}); });
} catch (errRes) {
setInterestingFieldLoading( message.error((errRes as ErrorResponse)?.error);
interestingFieldLoading.filter((e) => e !== fieldIndex), } finally {
); setInterestingFieldLoading(
interestingFieldLoading.filter((e) => e !== fieldIndex),
);
}
}; };
export const onHandleRemoveInterest = async ({ export const onHandleRemoveInterest = async ({
@ -67,28 +73,31 @@ export const onHandleRemoveInterest = async ({
return [...prevState]; return [...prevState];
}); });
await RemoveSelectedField({ try {
...fieldData, await removeSelectedField({
selected: false, ...fieldData,
}); selected: false,
});
dispatch({
type: UPDATE_SELECTED_FIELDS,
payload: {
field: selected.filter((e) => e.name !== fieldData.name),
type: 'selected',
},
});
dispatch({ dispatch({
type: UPDATE_SELECTED_FIELDS, type: UPDATE_INTERESTING_FIELDS,
payload: { payload: {
field: selected.filter((e) => e.name !== fieldData.name), field: [...interesting, fieldData],
type: 'selected', type: 'interesting',
}, },
}); });
} catch (errRes) {
dispatch({ message.error((errRes as ErrorResponse)?.error);
type: UPDATE_INTERESTING_FIELDS, } finally {
payload: { setSelectedFieldLoading(
field: [...interesting, fieldData], interestingFieldLoading.filter((e) => e !== fieldIndex),
type: 'interesting', );
}, }
});
setSelectedFieldLoading(
interestingFieldLoading.filter((e) => e !== fieldIndex),
);
}; };