Reformat all project files to use the prettier config file.

This commit is contained in:
Patrick Fic
2024-03-27 15:35:07 -07:00
parent b161530381
commit e1df64d592
873 changed files with 111387 additions and 125473 deletions

View File

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

View File

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