From 54369ae9b79ff1d41bd72eb5508218a178aca246 Mon Sep 17 00:00:00 2001 From: Llewellyn Dsouza Date: Mon, 7 Mar 2022 18:04:48 +0530 Subject: [PATCH 1/3] Update: Delete confirmation for warehouse locations --- src/components/NestedTable/index.js | 52 ++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/src/components/NestedTable/index.js b/src/components/NestedTable/index.js index 39c607c..818aa63 100644 --- a/src/components/NestedTable/index.js +++ b/src/components/NestedTable/index.js @@ -1,10 +1,12 @@ /* eslint-disable indent */ import { Box, + Button, // Chip, Dialog, DialogActions, DialogContent, + DialogContentText, DialogTitle, Grid, MenuItem, @@ -64,6 +66,14 @@ function NestedDataTable({ data, selected, setSelected, populateChildren }) { populateChildren(data.id, data.location); }, []); + const [deleteAlertOpen, setDeleteAlertOpen] = React.useState(null); + const handleDeleteAlertClose = () => { + setDeleteAlertOpen(false); + }; + const handleDeleteAlertOpen = () => { + setDeleteAlertOpen(true); + }; + return ( <> { - dispatch( - WarehouseLocationsActions.deleteLocationRequest({ - loader: 'location-request', - slug: API.LOCATION_DELETE, - method: 'post', - data: { type: data.location, id: data.id } - }) - ); + handleDeleteAlertOpen(); }} > DELETE + + Confirm Delete + + + Are you sure you want to delete this? + + + + + + + From 74199f67524b016f77aeadf1846b6afcb19d2f9c Mon Sep 17 00:00:00 2001 From: Llewellyn Dsouza Date: Mon, 7 Mar 2022 18:05:03 +0530 Subject: [PATCH 2/3] Added: Delete confirmations for widget families --- src/components/WidgetNestedDataTable/index.js | 54 +++++++++++++++---- 1 file changed, 45 insertions(+), 9 deletions(-) diff --git a/src/components/WidgetNestedDataTable/index.js b/src/components/WidgetNestedDataTable/index.js index bac57c2..22a07ec 100644 --- a/src/components/WidgetNestedDataTable/index.js +++ b/src/components/WidgetNestedDataTable/index.js @@ -1,9 +1,11 @@ /* eslint-disable indent */ import { Box, + Button, Dialog, DialogActions, DialogContent, + DialogContentText, DialogTitle, Grid, TextField @@ -116,6 +118,14 @@ function WidgetNestedDataTable({ const dispatch = useDispatch(); const widgetChildren = useSelector(WidgetSelectors.getWidgetsByParentId(data._id)); + const [deleteAlertOpen, setDeleteAlertOpen] = React.useState(null); + const handleDeleteAlertClose = () => { + setDeleteAlertOpen(false); + }; + const handleDeleteAlertOpen = () => { + setDeleteAlertOpen(true); + }; + return ( <> { setSelected(null); - dispatch( - WidgetActions.editWidgetRequest({ - loader: 'location-request', - slug: `${API.EDIT_WIDGET_FAMILY}${data._id}`, - deletedId: data._id, - method: 'delete', - type: 'delete' - }) - ); + handleDeleteAlertOpen(); }} > DELETE + + Confirm Delete + + + Are you sure you want to delete this? + + + + + + + {open && widgetChildren ? ( From ae7e8547c35109e65034c44f315533483d54e104 Mon Sep 17 00:00:00 2001 From: Llewellyn Dsouza Date: Mon, 7 Mar 2022 18:14:50 +0530 Subject: [PATCH 3/3] Added: Toast messages for add, edit, delete --- src/sagas/WarehouseLocations.js | 22 +++++++++++++++++++--- src/sagas/Widget.js | 13 +++++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/sagas/WarehouseLocations.js b/src/sagas/WarehouseLocations.js index 6d20d41..6242f77 100644 --- a/src/sagas/WarehouseLocations.js +++ b/src/sagas/WarehouseLocations.js @@ -1,4 +1,5 @@ import { AuthorizedAPI } from 'config'; +import { toast } from 'react-toastify'; import { call, put, takeEvery } from 'redux-saga/effects'; import WarehouseLocationsActions from 'redux/WarehouseLocationsRedux'; import { WarehouseLocationsTypes } from 'redux/WarehouseLocationsRedux'; @@ -42,6 +43,9 @@ export function* onAddRequestLocation({ payload }) { ); LOGGER.log('add response', response.data); if (response?.status === 200) { + toast.success('Location created successfully', { + theme: 'colored' + }); yield put( WarehouseLocationsActions.locationSuccess({ loader: payload?.loader, @@ -52,7 +56,9 @@ export function* onAddRequestLocation({ payload }) { }) ); } else { - payload.onFailedLocation(response.data.error); + toast.error('Failed to create warehouse location', { + theme: 'colored' + }); yield put( WarehouseLocationsActions.locationFailure({ loader: payload?.loader, @@ -71,6 +77,9 @@ export function* onDeleteRequestLocation({ payload }) { ); LOGGER.log('delete response', response.data); if (response?.status === 200) { + toast.success('Location deleted successfully', { + theme: 'colored' + }); yield put( WarehouseLocationsActions.locationSuccess({ loader: payload?.loader, @@ -78,7 +87,9 @@ export function* onDeleteRequestLocation({ payload }) { }) ); } else { - payload.onFailedLocation(response.data.error); + toast.error('Failed to delete warehouse location', { + theme: 'colored' + }); yield put( WarehouseLocationsActions.locationFailure({ loader: payload?.loader, @@ -97,6 +108,9 @@ export function* onEditRequestLocation({ payload }) { ); LOGGER.log('edit response', response.data); if (response?.status === 200) { + toast.success('Location edited successfully', { + theme: 'colored' + }); yield put( WarehouseLocationsActions.locationSuccess({ loader: payload?.loader, @@ -108,7 +122,9 @@ export function* onEditRequestLocation({ payload }) { }) ); } else { - payload.onFailedLocation(response.data.error); + toast.error('Failed to edit warehouse location', { + theme: 'colored' + }); yield put( WarehouseLocationsActions.locationFailure({ loader: payload?.loader, diff --git a/src/sagas/Widget.js b/src/sagas/Widget.js index 985f880..f42999c 100644 --- a/src/sagas/Widget.js +++ b/src/sagas/Widget.js @@ -1,4 +1,5 @@ import { AuthorizedAPI } from 'config'; +import { toast } from 'react-toastify'; import { call, put, takeEvery } from 'redux-saga/effects'; import ApiServices from 'services/API/ApiServices'; import WidgetActions, { WidgetTypes } from '../redux/WidgetRedux'; @@ -35,6 +36,12 @@ export function* onEditRequestWidget({ payload }) { payload?.data ); if (response?.status === 200) { + toast.success( + `Successfully ${payload?.type !== 'delete' ? payload?.type : 'delet'}ed widget family`, + { + theme: 'colored' + } + ); yield put( WidgetActions.editWidgetSuccess({ loader: payload?.loader, @@ -44,6 +51,12 @@ export function* onEditRequestWidget({ payload }) { }) ); } else { + toast.error( + payload?.type ? `Failed to ${payload?.type} widget family` : 'Failed to fulfill request', + { + theme: 'colored' + } + ); yield put( WidgetActions.widgetFailure({ loader: payload?.loader,