IO-850 Vendor Edit Fixes
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user