Reformat all project files to use the prettier config file.
This commit is contained in:
@@ -1,257 +1,234 @@
|
||||
import {DeleteFilled} from "@ant-design/icons";
|
||||
import {useApolloClient} from "@apollo/client";
|
||||
import {useSplitTreatments} from "@splitsoftware/splitio-react";
|
||||
import {Button, Divider, Form, Input, InputNumber, Space, Switch,} from "antd";
|
||||
import {PageHeader} from "@ant-design/pro-layout";
|
||||
import { DeleteFilled } from "@ant-design/icons";
|
||||
import { useApolloClient } from "@apollo/client";
|
||||
import { useSplitTreatments } from "@splitsoftware/splitio-react";
|
||||
import { Button, Divider, Form, Input, InputNumber, Space, Switch } from "antd";
|
||||
import { PageHeader } from "@ant-design/pro-layout";
|
||||
import React from "react";
|
||||
import {useTranslation} from "react-i18next";
|
||||
import {CHECK_VENDOR_NAME} from "../../graphql/vendors.queries";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { CHECK_VENDOR_NAME } from "../../graphql/vendors.queries";
|
||||
import FormFieldsChanged from "../form-fields-changed-alert/form-fields-changed-alert.component";
|
||||
import FormItemEmail from "../form-items-formatted/email-form-item.component";
|
||||
import PhoneFormItem, {PhoneItemFormatterValidation,} from "../form-items-formatted/phone-form-item.component";
|
||||
import PhoneFormItem, { PhoneItemFormatterValidation } from "../form-items-formatted/phone-form-item.component";
|
||||
import LayoutFormRow from "../layout-form-row/layout-form-row.component";
|
||||
import VendorsPhonebookAdd from "../vendors-phonebook-add/vendors-phonebook-add.component";
|
||||
|
||||
import {connect} from "react-redux";
|
||||
import {createStructuredSelector} from "reselect";
|
||||
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||
import { connect } from "react-redux";
|
||||
import { createStructuredSelector } from "reselect";
|
||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
||||
|
||||
const mapStateToProps = createStructuredSelector({
|
||||
bodyshop: selectBodyshop,
|
||||
bodyshop: selectBodyshop
|
||||
});
|
||||
const mapDispatchToProps = (dispatch) => ({
|
||||
//setUserLanguage: language => dispatch(setUserLanguage(language))
|
||||
//setUserLanguage: language => dispatch(setUserLanguage(language))
|
||||
});
|
||||
export default connect(
|
||||
mapStateToProps,
|
||||
mapDispatchToProps
|
||||
)(VendorsFormComponent);
|
||||
export default connect(mapStateToProps, mapDispatchToProps)(VendorsFormComponent);
|
||||
|
||||
export function VendorsFormComponent({
|
||||
bodyshop,
|
||||
form,
|
||||
formLoading,
|
||||
handleDelete,
|
||||
responsibilityCenters,
|
||||
selectedvendor
|
||||
}) {
|
||||
const {t} = useTranslation();
|
||||
const client = useApolloClient();
|
||||
bodyshop,
|
||||
form,
|
||||
formLoading,
|
||||
handleDelete,
|
||||
responsibilityCenters,
|
||||
selectedvendor
|
||||
}) {
|
||||
const { t } = useTranslation();
|
||||
const client = useApolloClient();
|
||||
|
||||
const {
|
||||
treatments: { DmsAp }
|
||||
} = useSplitTreatments({
|
||||
attributes: {},
|
||||
names: ["DmsAp"],
|
||||
splitKey: bodyshop && bodyshop.imexshopid
|
||||
});
|
||||
|
||||
const {treatments: {DmsAp}} = useSplitTreatments({
|
||||
attributes: {},
|
||||
names: ["DmsAp"],
|
||||
splitKey: bodyshop && bodyshop.imexshopid
|
||||
});
|
||||
const { getFieldValue } = form;
|
||||
return (
|
||||
<div>
|
||||
<PageHeader
|
||||
title={<Form.Item shouldUpdate>{() => form.getFieldValue("name")}</Form.Item>}
|
||||
extra={
|
||||
<Space>
|
||||
<Form.Item label={t("vendors.fields.active")} name="active" initialValue={true} valuePropName="checked">
|
||||
<Switch />
|
||||
</Form.Item>
|
||||
<Button onClick={() => form.submit()} type="primary" loading={formLoading}>
|
||||
{t("general.actions.save")}
|
||||
</Button>
|
||||
<Button
|
||||
type="primary"
|
||||
danger
|
||||
disabled={selectedvendor === "new"}
|
||||
onClick={handleDelete}
|
||||
loading={formLoading}
|
||||
>
|
||||
{t("general.actions.delete")}
|
||||
</Button>
|
||||
|
||||
|
||||
const {getFieldValue} = form;
|
||||
return (
|
||||
<div>
|
||||
<PageHeader
|
||||
title={
|
||||
<Form.Item shouldUpdate>{() => form.getFieldValue("name")}</Form.Item>
|
||||
}
|
||||
extra={
|
||||
<Space>
|
||||
<Form.Item
|
||||
label={t("vendors.fields.active")}
|
||||
name="active"
|
||||
initialValue={true}
|
||||
valuePropName="checked"
|
||||
>
|
||||
<Switch/>
|
||||
</Form.Item>
|
||||
<Button
|
||||
onClick={() => form.submit()}
|
||||
type="primary"
|
||||
loading={formLoading}
|
||||
>
|
||||
{t("general.actions.save")}
|
||||
</Button>
|
||||
<Button
|
||||
type="primary"
|
||||
danger
|
||||
disabled={selectedvendor === "new"}
|
||||
onClick={handleDelete}
|
||||
loading={formLoading}
|
||||
>
|
||||
{t("general.actions.delete")}
|
||||
</Button>
|
||||
|
||||
<VendorsPhonebookAdd
|
||||
form={form}
|
||||
disabled={form.isFieldsTouched()}
|
||||
/>
|
||||
</Space>
|
||||
}
|
||||
/>
|
||||
<FormFieldsChanged form={form}/>
|
||||
<LayoutFormRow grow>
|
||||
<Form.Item
|
||||
label={t("vendors.fields.name")}
|
||||
name="name"
|
||||
validateTrigger="onBlur"
|
||||
hasFeedback
|
||||
rules={[
|
||||
{
|
||||
required: true,
|
||||
//message: t("general.validation.required"),
|
||||
},
|
||||
({getFieldValue}) => ({
|
||||
async validator(rule, value) {
|
||||
if (value) {
|
||||
const response = await client.query({
|
||||
query: CHECK_VENDOR_NAME,
|
||||
variables: {
|
||||
name: value,
|
||||
},
|
||||
});
|
||||
|
||||
if (response.data.vendors_aggregate.aggregate.count === 0) {
|
||||
return Promise.resolve();
|
||||
} else if (
|
||||
response.data.vendors_aggregate.nodes.length === 1 &&
|
||||
response.data.vendors_aggregate.nodes[0].id ===
|
||||
form.getFieldValue("id")
|
||||
) {
|
||||
return Promise.resolve();
|
||||
}
|
||||
return Promise.reject(
|
||||
t("vendors.validation.unique_vendor_name")
|
||||
);
|
||||
} else {
|
||||
return Promise.resolve();
|
||||
}
|
||||
},
|
||||
}),
|
||||
]}
|
||||
>
|
||||
<Input/>
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item
|
||||
label={t("vendors.fields.email")}
|
||||
rules={
|
||||
[
|
||||
// {
|
||||
// type: "email",
|
||||
// message: t("general.validation.invalidemail"),
|
||||
// },
|
||||
]
|
||||
<VendorsPhonebookAdd form={form} disabled={form.isFieldsTouched()} />
|
||||
</Space>
|
||||
}
|
||||
/>
|
||||
<FormFieldsChanged form={form} />
|
||||
<LayoutFormRow grow>
|
||||
<Form.Item
|
||||
label={t("vendors.fields.name")}
|
||||
name="name"
|
||||
validateTrigger="onBlur"
|
||||
hasFeedback
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
},
|
||||
({ getFieldValue }) => ({
|
||||
async validator(rule, value) {
|
||||
if (value) {
|
||||
const response = await client.query({
|
||||
query: CHECK_VENDOR_NAME,
|
||||
variables: {
|
||||
name: value
|
||||
}
|
||||
name="email"
|
||||
>
|
||||
<FormItemEmail email={getFieldValue("email")}/>
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label={t("vendors.fields.phone")}
|
||||
name="phone"
|
||||
rules={[
|
||||
({getFieldValue}) =>
|
||||
PhoneItemFormatterValidation(getFieldValue, "phone"),
|
||||
]}
|
||||
>
|
||||
<PhoneFormItem/>
|
||||
</Form.Item>
|
||||
</LayoutFormRow>
|
||||
<LayoutFormRow grow>
|
||||
<Form.Item label={t("vendors.fields.street1")} name="street1">
|
||||
<Input/>
|
||||
</Form.Item>
|
||||
<Form.Item label={t("vendors.fields.street2")} name="street2">
|
||||
<Input/>
|
||||
</Form.Item>
|
||||
<Form.Item label={t("vendors.fields.city")} name="city">
|
||||
<Input/>
|
||||
</Form.Item>
|
||||
</LayoutFormRow>
|
||||
<LayoutFormRow grow>
|
||||
<Form.Item label={t("vendors.fields.state")} name="state">
|
||||
<Input/>
|
||||
</Form.Item>
|
||||
<Form.Item label={t("vendors.fields.zip")} name="zip">
|
||||
<Input/>
|
||||
</Form.Item>
|
||||
<Form.Item label={t("vendors.fields.country")} name="country">
|
||||
<Input/>
|
||||
</Form.Item>
|
||||
</LayoutFormRow>
|
||||
<LayoutFormRow grow>
|
||||
<Form.Item label={t("vendors.fields.discount")} name="discount">
|
||||
<InputNumber min={0} max={1} precision={2} step={0.01}/>
|
||||
</Form.Item>
|
||||
<Form.Item label={t("vendors.fields.due_date")} name="due_date">
|
||||
<InputNumber min={0}/>
|
||||
</Form.Item>
|
||||
{
|
||||
// <Form.Item
|
||||
// label={t("vendors.fields.cost_center")}
|
||||
// rules={[
|
||||
// { required: true, message: t("general.validation.required") },
|
||||
// ]}
|
||||
// name="cost_center"
|
||||
// >
|
||||
// <Select style={{ width: "150px" }}>
|
||||
// {responsibilityCenters.costs.map((item) => (
|
||||
// <Select.Option key={item.name}>{item.name}</Select.Option>
|
||||
// ))}
|
||||
// </Select>
|
||||
// </Form.Item>
|
||||
});
|
||||
|
||||
if (response.data.vendors_aggregate.aggregate.count === 0) {
|
||||
return Promise.resolve();
|
||||
} else if (
|
||||
response.data.vendors_aggregate.nodes.length === 1 &&
|
||||
response.data.vendors_aggregate.nodes[0].id === form.getFieldValue("id")
|
||||
) {
|
||||
return Promise.resolve();
|
||||
}
|
||||
return Promise.reject(t("vendors.validation.unique_vendor_name"));
|
||||
} else {
|
||||
return Promise.resolve();
|
||||
}
|
||||
</LayoutFormRow>
|
||||
}
|
||||
})
|
||||
]}
|
||||
>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
|
||||
{DmsAp.treatment === "on" && (
|
||||
<Form.Item label={t("vendors.fields.dmsid")} name="dmsid">
|
||||
<Input/>
|
||||
<Form.Item
|
||||
label={t("vendors.fields.email")}
|
||||
rules={
|
||||
[
|
||||
// {
|
||||
// type: "email",
|
||||
// message: t("general.validation.invalidemail"),
|
||||
// },
|
||||
]
|
||||
}
|
||||
name="email"
|
||||
>
|
||||
<FormItemEmail email={getFieldValue("email")} />
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label={t("vendors.fields.phone")}
|
||||
name="phone"
|
||||
rules={[({ getFieldValue }) => PhoneItemFormatterValidation(getFieldValue, "phone")]}
|
||||
>
|
||||
<PhoneFormItem />
|
||||
</Form.Item>
|
||||
</LayoutFormRow>
|
||||
<LayoutFormRow grow>
|
||||
<Form.Item label={t("vendors.fields.street1")} name="street1">
|
||||
<Input />
|
||||
</Form.Item>
|
||||
<Form.Item label={t("vendors.fields.street2")} name="street2">
|
||||
<Input />
|
||||
</Form.Item>
|
||||
<Form.Item label={t("vendors.fields.city")} name="city">
|
||||
<Input />
|
||||
</Form.Item>
|
||||
</LayoutFormRow>
|
||||
<LayoutFormRow grow>
|
||||
<Form.Item label={t("vendors.fields.state")} name="state">
|
||||
<Input />
|
||||
</Form.Item>
|
||||
<Form.Item label={t("vendors.fields.zip")} name="zip">
|
||||
<Input />
|
||||
</Form.Item>
|
||||
<Form.Item label={t("vendors.fields.country")} name="country">
|
||||
<Input />
|
||||
</Form.Item>
|
||||
</LayoutFormRow>
|
||||
<LayoutFormRow grow>
|
||||
<Form.Item label={t("vendors.fields.discount")} name="discount">
|
||||
<InputNumber min={0} max={1} precision={2} step={0.01} />
|
||||
</Form.Item>
|
||||
<Form.Item label={t("vendors.fields.due_date")} name="due_date">
|
||||
<InputNumber min={0} />
|
||||
</Form.Item>
|
||||
{
|
||||
// <Form.Item
|
||||
// label={t("vendors.fields.cost_center")}
|
||||
// rules={[
|
||||
// { required: true, message: t("general.validation.required") },
|
||||
// ]}
|
||||
// name="cost_center"
|
||||
// >
|
||||
// <Select style={{ width: "150px" }}>
|
||||
// {responsibilityCenters.costs.map((item) => (
|
||||
// <Select.Option key={item.name}>{item.name}</Select.Option>
|
||||
// ))}
|
||||
// </Select>
|
||||
// </Form.Item>
|
||||
}
|
||||
</LayoutFormRow>
|
||||
|
||||
{DmsAp.treatment === "on" && (
|
||||
<Form.Item label={t("vendors.fields.dmsid")} name="dmsid">
|
||||
<Input />
|
||||
</Form.Item>
|
||||
)}
|
||||
<Divider align="left">{t("vendors.labels.preferredmakes")}</Divider>
|
||||
<Form.List name="favorite">
|
||||
{(fields, { add, remove }) => {
|
||||
return (
|
||||
<div>
|
||||
{fields.map((field, index) => (
|
||||
<Form.Item key={field.key}>
|
||||
<Space wrap>
|
||||
<Form.Item
|
||||
label={t("vendors.fields.make")}
|
||||
key={`${index}make`}
|
||||
name={[field.name]}
|
||||
rules={[
|
||||
{
|
||||
required: true
|
||||
//message: t("general.validation.required"),
|
||||
}
|
||||
]}
|
||||
>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
|
||||
<DeleteFilled
|
||||
onClick={() => {
|
||||
remove(field.name);
|
||||
}}
|
||||
/>
|
||||
</Space>
|
||||
</Form.Item>
|
||||
)}
|
||||
<Divider align="left">{t("vendors.labels.preferredmakes")}</Divider>
|
||||
<Form.List name="favorite">
|
||||
{(fields, {add, remove}) => {
|
||||
return (
|
||||
<div>
|
||||
{fields.map((field, index) => (
|
||||
<Form.Item key={field.key}>
|
||||
<Space wrap>
|
||||
<Form.Item
|
||||
label={t("vendors.fields.make")}
|
||||
key={`${index}make`}
|
||||
name={[field.name]}
|
||||
rules={[
|
||||
{
|
||||
required: true,
|
||||
//message: t("general.validation.required"),
|
||||
},
|
||||
]}
|
||||
>
|
||||
<Input/>
|
||||
</Form.Item>
|
||||
|
||||
<DeleteFilled
|
||||
onClick={() => {
|
||||
remove(field.name);
|
||||
}}
|
||||
/>
|
||||
</Space>
|
||||
</Form.Item>
|
||||
))}
|
||||
<Form.Item>
|
||||
<Button
|
||||
type="dashed"
|
||||
onClick={() => {
|
||||
add();
|
||||
}}
|
||||
style={{width: "100%"}}
|
||||
>
|
||||
{t("vendors.actions.newpreferredmake")}
|
||||
</Button>
|
||||
</Form.Item>
|
||||
</div>
|
||||
);
|
||||
}}
|
||||
</Form.List>
|
||||
</div>
|
||||
);
|
||||
))}
|
||||
<Form.Item>
|
||||
<Button
|
||||
type="dashed"
|
||||
onClick={() => {
|
||||
add();
|
||||
}}
|
||||
style={{ width: "100%" }}
|
||||
>
|
||||
{t("vendors.actions.newpreferredmake")}
|
||||
</Button>
|
||||
</Form.Item>
|
||||
</div>
|
||||
);
|
||||
}}
|
||||
</Form.List>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,146 +1,146 @@
|
||||
import {useMutation, useQuery} from "@apollo/client";
|
||||
import {Form, notification} from "antd";
|
||||
import { useMutation, useQuery } from "@apollo/client";
|
||||
import { Form, notification } from "antd";
|
||||
import queryString from "query-string";
|
||||
import React, {useEffect, useState} from "react";
|
||||
import {useTranslation} from "react-i18next";
|
||||
import {connect} from "react-redux";
|
||||
import {useLocation, useNavigate} from "react-router-dom";
|
||||
import {createStructuredSelector} from "reselect";
|
||||
import {DELETE_VENDOR, INSERT_NEW_VENDOR, QUERY_VENDOR_BY_ID, UPDATE_VENDOR,} from "../../graphql/vendors.queries";
|
||||
import {selectBodyshop} from "../../redux/user/user.selectors";
|
||||
import React, { useEffect, useState } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { connect } from "react-redux";
|
||||
import { useLocation, useNavigate } from "react-router-dom";
|
||||
import { createStructuredSelector } from "reselect";
|
||||
import { DELETE_VENDOR, INSERT_NEW_VENDOR, QUERY_VENDOR_BY_ID, UPDATE_VENDOR } from "../../graphql/vendors.queries";
|
||||
import { selectBodyshop } from "../../redux/user/user.selectors";
|
||||
import AlertComponent from "../alert/alert.component";
|
||||
import LoadingSpinner from "../loading-spinner/loading-spinner.component";
|
||||
import VendorsFormComponent from "./vendors-form.component";
|
||||
|
||||
const mapStateToProps = createStructuredSelector({
|
||||
bodyshop: selectBodyshop,
|
||||
bodyshop: selectBodyshop
|
||||
});
|
||||
|
||||
function VendorsFormContainer({refetch, bodyshop}) {
|
||||
const history = useNavigate();
|
||||
const search = queryString.parse(useLocation().search);
|
||||
const {selectedvendor} = search;
|
||||
const [formLoading, setFormLoading] = useState(false);
|
||||
const [form] = Form.useForm();
|
||||
const {t} = useTranslation();
|
||||
const {loading, error, data} = useQuery(QUERY_VENDOR_BY_ID, {
|
||||
variables: {id: selectedvendor},
|
||||
fetchPolicy: "network-only",
|
||||
nextFetchPolicy: "network-only",
|
||||
skip: !!!selectedvendor || selectedvendor === "new",
|
||||
function VendorsFormContainer({ refetch, bodyshop }) {
|
||||
const history = useNavigate();
|
||||
const search = queryString.parse(useLocation().search);
|
||||
const { selectedvendor } = search;
|
||||
const [formLoading, setFormLoading] = useState(false);
|
||||
const [form] = Form.useForm();
|
||||
const { t } = useTranslation();
|
||||
const { loading, error, data } = useQuery(QUERY_VENDOR_BY_ID, {
|
||||
variables: { id: selectedvendor },
|
||||
fetchPolicy: "network-only",
|
||||
nextFetchPolicy: "network-only",
|
||||
skip: !!!selectedvendor || selectedvendor === "new"
|
||||
});
|
||||
|
||||
const [updateVendor] = useMutation(UPDATE_VENDOR);
|
||||
const [insertvendor] = useMutation(INSERT_NEW_VENDOR);
|
||||
const [deleteVendor] = useMutation(DELETE_VENDOR);
|
||||
|
||||
const handleDelete = async () => {
|
||||
setFormLoading(true);
|
||||
const result = await deleteVendor({
|
||||
variables: { id: selectedvendor },
|
||||
refetchQueries: ["QUERY_ALL_VENDORS"]
|
||||
});
|
||||
|
||||
const [updateVendor] = useMutation(UPDATE_VENDOR);
|
||||
const [insertvendor] = useMutation(INSERT_NEW_VENDOR);
|
||||
const [deleteVendor] = useMutation(DELETE_VENDOR);
|
||||
|
||||
const handleDelete = async () => {
|
||||
setFormLoading(true);
|
||||
const result = await deleteVendor({
|
||||
variables: {id: selectedvendor},
|
||||
refetchQueries: ["QUERY_ALL_VENDORS"],
|
||||
console.log(result);
|
||||
if (result.errors) {
|
||||
notification["error"]({
|
||||
message: t("vendors.errors.deleting")
|
||||
});
|
||||
} else {
|
||||
notification["success"]({
|
||||
message: t("vendors.successes.deleted")
|
||||
});
|
||||
delete search.selectedvendor;
|
||||
history({ search: queryString.stringify(search) });
|
||||
if (refetch)
|
||||
refetch().then((r) => {
|
||||
form.resetFields();
|
||||
});
|
||||
console.log(result);
|
||||
if (result.errors) {
|
||||
notification["error"]({
|
||||
message: t("vendors.errors.deleting"),
|
||||
});
|
||||
} else {
|
||||
notification["success"]({
|
||||
message: t("vendors.successes.deleted"),
|
||||
});
|
||||
delete search.selectedvendor;
|
||||
history({search: queryString.stringify(search)});
|
||||
if (refetch)
|
||||
refetch().then((r) => {
|
||||
form.resetFields();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
setFormLoading(false);
|
||||
};
|
||||
|
||||
const handleFinish = async (values) => {
|
||||
setFormLoading(true);
|
||||
if (selectedvendor && selectedvendor !== "new") {
|
||||
//It's a vendor to update.
|
||||
const result = await updateVendor({
|
||||
variables: { id: selectedvendor, vendor: values },
|
||||
refetchQueries: ["QUERY_ALL_VENDORS", "QUERY_VENDOR_BY_ID"]
|
||||
});
|
||||
|
||||
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.
|
||||
const result = await insertvendor({
|
||||
variables: { vendorInput: [{ ...values, bodyshopid: bodyshop.id }] },
|
||||
refetchQueries: ["QUERY_ALL_VENDORS"]
|
||||
});
|
||||
|
||||
const handleFinish = async (values) => {
|
||||
setFormLoading(true);
|
||||
if (selectedvendor && selectedvendor !== "new") {
|
||||
//It's a vendor to update.
|
||||
const result = await updateVendor({
|
||||
variables: {id: selectedvendor, vendor: values},
|
||||
refetchQueries: ["QUERY_ALL_VENDORS", "QUERY_VENDOR_BY_ID"],
|
||||
});
|
||||
if (!result.errors) {
|
||||
notification["success"]({
|
||||
message: t("vendors.successes.saved")
|
||||
});
|
||||
|
||||
if (!result.errors) {
|
||||
notification["success"]({
|
||||
message: t("vendors.successes.saved"),
|
||||
});
|
||||
if (refetch) await refetch();
|
||||
form.resetFields();
|
||||
form.resetFields();
|
||||
delete search.selectedvendor;
|
||||
history({ search: queryString.stringify(search) });
|
||||
setFormLoading(false);
|
||||
} else {
|
||||
notification["error"]({
|
||||
message: t("vendors.errors.saving")
|
||||
});
|
||||
setFormLoading(false);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
if (refetch) await refetch();
|
||||
form.setFieldsValue(data.vendors_by_pk);
|
||||
form.resetFields();
|
||||
useEffect(() => {
|
||||
if (data || selectedvendor === "new") form.resetFields();
|
||||
}, [data, form, selectedvendor]);
|
||||
|
||||
setFormLoading(false);
|
||||
} else {
|
||||
notification["error"]({
|
||||
message: t("vendors.errors.saving"),
|
||||
});
|
||||
console.log("error", error);
|
||||
setFormLoading(false);
|
||||
}
|
||||
} else {
|
||||
//It's a new vendor to insert.
|
||||
const result = await insertvendor({
|
||||
variables: {vendorInput: [{...values, bodyshopid: bodyshop.id}]},
|
||||
refetchQueries: ["QUERY_ALL_VENDORS"],
|
||||
});
|
||||
if (loading) return <LoadingSpinner />;
|
||||
if (error) return <AlertComponent message={error.message} type="error" />;
|
||||
|
||||
if (!result.errors) {
|
||||
notification["success"]({
|
||||
message: t("vendors.successes.saved"),
|
||||
});
|
||||
|
||||
if (refetch) await refetch();
|
||||
form.resetFields();
|
||||
form.resetFields();
|
||||
delete search.selectedvendor;
|
||||
history({search: queryString.stringify(search)});
|
||||
setFormLoading(false);
|
||||
} else {
|
||||
notification["error"]({
|
||||
message: t("vendors.errors.saving"),
|
||||
});
|
||||
setFormLoading(false);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (data || selectedvendor === "new") form.resetFields();
|
||||
}, [data, form, selectedvendor]);
|
||||
|
||||
if (loading) return <LoadingSpinner/>;
|
||||
if (error) return <AlertComponent message={error.message} type="error"/>;
|
||||
|
||||
return (
|
||||
<Form
|
||||
onFinish={handleFinish}
|
||||
form={form}
|
||||
layout="vertical"
|
||||
autoComplete="new-password"
|
||||
initialValues={data ? data.vendors_by_pk : null}
|
||||
>
|
||||
{selectedvendor ? (
|
||||
<VendorsFormComponent
|
||||
form={form}
|
||||
formLoading={formLoading}
|
||||
handleDelete={handleDelete}
|
||||
responsibilityCenters={bodyshop.md_responsibility_centers || null}
|
||||
selectedvendor={selectedvendor}
|
||||
/>
|
||||
) : (
|
||||
t("vendors.labels.noneselected")
|
||||
)}
|
||||
</Form>
|
||||
);
|
||||
return (
|
||||
<Form
|
||||
onFinish={handleFinish}
|
||||
form={form}
|
||||
layout="vertical"
|
||||
autoComplete="new-password"
|
||||
initialValues={data ? data.vendors_by_pk : null}
|
||||
>
|
||||
{selectedvendor ? (
|
||||
<VendorsFormComponent
|
||||
form={form}
|
||||
formLoading={formLoading}
|
||||
handleDelete={handleDelete}
|
||||
responsibilityCenters={bodyshop.md_responsibility_centers || null}
|
||||
selectedvendor={selectedvendor}
|
||||
/>
|
||||
) : (
|
||||
t("vendors.labels.noneselected")
|
||||
)}
|
||||
</Form>
|
||||
);
|
||||
}
|
||||
|
||||
export default connect(mapStateToProps, null)(VendorsFormContainer);
|
||||
|
||||
Reference in New Issue
Block a user