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 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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user