From b5ebcca12d6ff15477e6feeb90bba53a6f8c5060 Mon Sep 17 00:00:00 2001 From: elforjani13 <39470382+elforjani13@users.noreply.github.com> Date: Thu, 3 Feb 2022 01:03:00 +0200 Subject: [PATCH] feat(warehouseTransfer): handle error. --- .../WarehouseTransferForm.js | 4 ++++ .../WarehouseTransferForm/utils.js | 23 ++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/containers/WarehouseTransfers/WarehouseTransferForm/WarehouseTransferForm.js b/src/containers/WarehouseTransfers/WarehouseTransferForm/WarehouseTransferForm.js index 760a8e306..c5990ba34 100644 --- a/src/containers/WarehouseTransfers/WarehouseTransferForm/WarehouseTransferForm.js +++ b/src/containers/WarehouseTransfers/WarehouseTransferForm/WarehouseTransferForm.js @@ -25,6 +25,7 @@ import { compose, orderingLinesIndexes, transactionNumber } from 'utils'; import { defaultWarehouseTransfer, transformValueToRequest, + transformErrors, transformToEditForm, } from './utils'; @@ -97,6 +98,9 @@ function WarehouseTransferForm({ data: { errors }, }, }) => { + if (errors) { + transformErrors(errors, { setErrors }); + } setSubmitting(false); }; diff --git a/src/containers/WarehouseTransfers/WarehouseTransferForm/utils.js b/src/containers/WarehouseTransfers/WarehouseTransferForm/utils.js index aad275728..d03dda138 100644 --- a/src/containers/WarehouseTransfers/WarehouseTransferForm/utils.js +++ b/src/containers/WarehouseTransfers/WarehouseTransferForm/utils.js @@ -1,8 +1,9 @@ import React from 'react'; -import intl from 'react-intl-universal'; -import clsx from 'classnames'; -import { useFormikContext } from 'formik'; import moment from 'moment'; +import intl from 'react-intl-universal'; +import { Intent } from '@blueprintjs/core'; +import { useFormikContext } from 'formik'; +import { AppToaster } from 'components'; import { omit } from 'lodash'; import { @@ -105,3 +106,19 @@ export function transformValueToRequest(values) { })), }; } + +/** + * Transformes the response errors types. + */ +export const transformErrors = (errors, { setErrors }) => { + if ( + errors.some(({ type }) => type === 'WAREHOUSES_TRANSFER_SHOULD_NOT_BE_SAME') + ) { + AppToaster.show({ + message: intl.get( + 'warehouse_transfer.error.could_not_transfer_item_from_source_to_destination', + ), + intent: Intent.DANGER, + }); + } +};