IO-850 Vendor Edit Fixes

This commit is contained in:
Patrick Fic
2021-04-09 08:54:36 -07:00
parent 6745c2911c
commit 923f553673

View File

@@ -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);
}
}
};