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 React, { useEffect, useState } from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { connect } from "react-redux"; import { connect } from "react-redux";
import { useLocation } from "react-router-dom"; import { useHistory, useLocation } from "react-router-dom";
import { createStructuredSelector } from "reselect"; import { createStructuredSelector } from "reselect";
import { import {
DELETE_VENDOR, DELETE_VENDOR,
@@ -22,6 +22,7 @@ const mapStateToProps = createStructuredSelector({
}); });
function VendorsFormContainer({ refetch, bodyshop }) { function VendorsFormContainer({ refetch, bodyshop }) {
const history = useHistory();
const search = queryString.parse(useLocation().search); const search = queryString.parse(useLocation().search);
const { selectedvendor } = search; const { selectedvendor } = search;
const [formLoading, setFormLoading] = useState(false); const [formLoading, setFormLoading] = useState(false);
@@ -36,6 +37,7 @@ function VendorsFormContainer({ refetch, bodyshop }) {
const [updateVendor] = useMutation(UPDATE_VENDOR); const [updateVendor] = useMutation(UPDATE_VENDOR);
const [insertvendor] = useMutation(INSERT_NEW_VENDOR); const [insertvendor] = useMutation(INSERT_NEW_VENDOR);
const [deleteVendor] = useMutation(DELETE_VENDOR); const [deleteVendor] = useMutation(DELETE_VENDOR);
const handleDelete = () => { const handleDelete = () => {
setFormLoading(true); setFormLoading(true);
deleteVendor({ deleteVendor({
@@ -46,11 +48,11 @@ function VendorsFormContainer({ refetch, bodyshop }) {
notification["success"]({ notification["success"]({
message: t("vendors.successes.deleted"), message: t("vendors.successes.deleted"),
}); });
delete search.selectedvendor;
history.push({ search: queryString.stringify(search) });
if (refetch) if (refetch)
refetch().then((r) => { refetch().then((r) => {
form.resetFields(); form.resetFields();
form.resetFields();
}); });
setFormLoading(false); setFormLoading(false);
}) })
@@ -62,54 +64,56 @@ function VendorsFormContainer({ refetch, bodyshop }) {
}); });
}; };
const handleFinish = (values) => { const handleFinish = async (values) => {
setFormLoading(true); setFormLoading(true);
if (selectedvendor && selectedvendor !== "new") { if (selectedvendor && selectedvendor !== "new") {
//It's a vendor to update. //It's a vendor to update.
updateVendor({ const result = await updateVendor({
variables: { id: selectedvendor, vendor: values }, variables: { id: selectedvendor, vendor: values },
refetchQueries: ["QUERY_ALL_VENDORS"], refetchQueries: ["QUERY_ALL_VENDORS"],
}) });
.then((r) => {
notification["success"]({
message: t("vendors.successes.saved"),
});
if (refetch) if (!result.errors) {
refetch().then(() => { notification["success"]({
form.resetFields(); message: t("vendors.successes.saved"),
form.resetFields();
});
setFormLoading(false);
})
.catch((error) => {
notification["error"]({
message: t("vendors.errors.saving"),
});
console.log("error", error);
setFormLoading(false);
}); });
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 { } else {
//It's a new vendor to insert. //It's a new vendor to insert.
insertvendor({ const result = await insertvendor({
variables: { vendorInput: [{ ...values, bodyshopid: bodyshop.id }] }, variables: { vendorInput: [{ ...values, bodyshopid: bodyshop.id }] },
refetchQueries: ["QUERY_ALL_VENDORS"], refetchQueries: ["QUERY_ALL_VENDORS"],
}) });
.then((r) => {
notification["success"]({
message: t("vendors.successes.saved"),
});
if (refetch) refetch(); if (!result.errors) {
form.resetFields(); notification["success"]({
setFormLoading(false); message: t("vendors.successes.saved"),
})
.catch((error) => {
notification["error"]({
message: t("vendors.errors.saving"),
});
setFormLoading(false);
}); });
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);
}
} }
}; };