From 923f5536734af729838afee0208b3f2867d46a7e Mon Sep 17 00:00:00 2001 From: Patrick Fic <> Date: Fri, 9 Apr 2021 08:54:36 -0700 Subject: [PATCH] IO-850 Vendor Edit Fixes --- .../vendors-form/vendors-form.container.jsx | 80 ++++++++++--------- 1 file changed, 42 insertions(+), 38 deletions(-) diff --git a/client/src/components/vendors-form/vendors-form.container.jsx b/client/src/components/vendors-form/vendors-form.container.jsx index 746b875b5..982c15ed3 100644 --- a/client/src/components/vendors-form/vendors-form.container.jsx +++ b/client/src/components/vendors-form/vendors-form.container.jsx @@ -4,7 +4,7 @@ import queryString from "query-string"; import React, { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; -import { useLocation } from "react-router-dom"; +import { useHistory, useLocation } from "react-router-dom"; import { createStructuredSelector } from "reselect"; import { DELETE_VENDOR, @@ -22,6 +22,7 @@ const mapStateToProps = createStructuredSelector({ }); function VendorsFormContainer({ refetch, bodyshop }) { + const history = useHistory(); const search = queryString.parse(useLocation().search); const { selectedvendor } = search; const [formLoading, setFormLoading] = useState(false); @@ -36,6 +37,7 @@ function VendorsFormContainer({ refetch, bodyshop }) { const [updateVendor] = useMutation(UPDATE_VENDOR); const [insertvendor] = useMutation(INSERT_NEW_VENDOR); const [deleteVendor] = useMutation(DELETE_VENDOR); + const handleDelete = () => { setFormLoading(true); deleteVendor({ @@ -46,11 +48,11 @@ function VendorsFormContainer({ refetch, bodyshop }) { notification["success"]({ message: t("vendors.successes.deleted"), }); - + delete search.selectedvendor; + history.push({ search: queryString.stringify(search) }); if (refetch) refetch().then((r) => { form.resetFields(); - form.resetFields(); }); setFormLoading(false); }) @@ -62,54 +64,56 @@ function VendorsFormContainer({ refetch, bodyshop }) { }); }; - const handleFinish = (values) => { + const handleFinish = async (values) => { setFormLoading(true); if (selectedvendor && selectedvendor !== "new") { //It's a vendor to update. - updateVendor({ + const result = await updateVendor({ variables: { id: selectedvendor, vendor: values }, refetchQueries: ["QUERY_ALL_VENDORS"], - }) - .then((r) => { - notification["success"]({ - message: t("vendors.successes.saved"), - }); + }); - if (refetch) - refetch().then(() => { - form.resetFields(); - form.resetFields(); - }); - setFormLoading(false); - }) - .catch((error) => { - notification["error"]({ - message: t("vendors.errors.saving"), - }); - console.log("error", error); - setFormLoading(false); + if (!result.errors) { + notification["success"]({ + message: t("vendors.successes.saved"), }); + + if (refetch) await refetch(); + form.setFieldsValue(data.vendors_by_pk); + form.resetFields(); + + setFormLoading(false); + } else { + notification["error"]({ + message: t("vendors.errors.saving"), + }); + console.log("error", error); + setFormLoading(false); + } } else { //It's a new vendor to insert. - insertvendor({ + const result = await insertvendor({ variables: { vendorInput: [{ ...values, bodyshopid: bodyshop.id }] }, refetchQueries: ["QUERY_ALL_VENDORS"], - }) - .then((r) => { - notification["success"]({ - message: t("vendors.successes.saved"), - }); + }); - if (refetch) refetch(); - form.resetFields(); - setFormLoading(false); - }) - .catch((error) => { - notification["error"]({ - message: t("vendors.errors.saving"), - }); - setFormLoading(false); + if (!result.errors) { + notification["success"]({ + message: t("vendors.successes.saved"), }); + + if (refetch) await refetch(); + form.resetFields(); + form.resetFields(); + delete search.selectedvendor; + history.push({ search: queryString.stringify(search) }); + setFormLoading(false); + } else { + notification["error"]({ + message: t("vendors.errors.saving"), + }); + setFormLoading(false); + } } };