profile
false
diff --git a/client/src/components/breadcrumbs/breadcrumbs.component.jsx b/client/src/components/breadcrumbs/breadcrumbs.component.jsx
new file mode 100644
index 000000000..62ebb2b5a
--- /dev/null
+++ b/client/src/components/breadcrumbs/breadcrumbs.component.jsx
@@ -0,0 +1,28 @@
+import React from "react";
+import { Breadcrumb } from "antd";
+import { connect } from "react-redux";
+import { createStructuredSelector } from "reselect";
+import { selectBreadcrumbs } from "../../redux/application/application.selectors";
+import { Link } from "react-router-dom";
+
+const mapStateToProps = createStructuredSelector({
+ breadcrumbs: selectBreadcrumbs,
+});
+
+export function BreadCrumbs({ breadcrumbs }) {
+ return (
+
+ Home
+ {breadcrumbs.map((item) =>
+ item.link ? (
+
+ {item.label}
+
+ ) : (
+ {item.label}
+ )
+ )}
+
+ );
+}
+export default connect(mapStateToProps, null)(BreadCrumbs);
diff --git a/client/src/components/header/header.component.jsx b/client/src/components/header/header.component.jsx
index bf8bca271..f39ced6a1 100644
--- a/client/src/components/header/header.component.jsx
+++ b/client/src/components/header/header.component.jsx
@@ -15,14 +15,26 @@ import { Link } from "react-router-dom";
import UserImage from "../../assets/User.svg";
import ManageSignInButton from "../manage-sign-in-button/manage-sign-in-button.component";
-export default ({
+import { connect } from "react-redux";
+import { createStructuredSelector } from "reselect";
+import { setModalContext } from "../../redux/modals/modals.actions";
+const mapStateToProps = createStructuredSelector({
+ //currentUser: selectCurrentUser
+});
+const mapDispatchToProps = (dispatch) => ({
+ setInvoiceEnterContext: (context) =>
+ dispatch(setModalContext({ context: context, modal: "invoiceEnter" })),
+});
+
+function Header({
landingHeader,
selectedNavItem,
logo,
handleMenuClick,
currentUser,
signOutStart,
-}) => {
+ setInvoiceEnterContext,
+}) {
const { t } = useTranslation();
//TODO Add
@@ -175,6 +187,17 @@ export default ({
}
>
+ {
+ setInvoiceEnterContext({
+ actions: {},
+ context: {},
+ });
+ }}
+ >
+ {t("menus.header.enterinvoices")}
+
{t("menus.header.invoices")}
@@ -238,4 +261,6 @@ export default ({
);
-};
+}
+
+export default connect(mapStateToProps, mapDispatchToProps)(Header);
diff --git a/client/src/components/job-totals-table/job-totals-table.component.jsx b/client/src/components/job-totals-table/job-totals-table.component.jsx
index 35a38fd40..17e189d6f 100644
--- a/client/src/components/job-totals-table/job-totals-table.component.jsx
+++ b/client/src/components/job-totals-table/job-totals-table.component.jsx
@@ -1,8 +1,7 @@
+import { Col, List, Row } from "antd";
import React from "react";
-import { List, Row, Col } from "antd";
-import { useTranslation } from "react-i18next";
export default function JobsTotalsTableComponent({ totals }) {
- const { t } = useTranslation();
+ //const { t } = useTranslation();
if (!!!totals) return null;
return (
diff --git a/client/src/pages/contract-create/contract-create.page.container.jsx b/client/src/pages/contract-create/contract-create.page.container.jsx
index 6a4163334..20d439f9f 100644
--- a/client/src/pages/contract-create/contract-create.page.container.jsx
+++ b/client/src/pages/contract-create/contract-create.page.container.jsx
@@ -9,11 +9,16 @@ import { useTranslation } from "react-i18next";
import { INSERT_NEW_CONTRACT } from "../../graphql/cccontracts.queries";
import { useMutation } from "@apollo/react-hooks";
import { useHistory, useLocation } from "react-router-dom";
+import { setBreadcrumbs } from "../../redux/application/application.actions";
+
const mapStateToProps = createStructuredSelector({
- bodyshop: selectBodyshop
+ bodyshop: selectBodyshop,
+});
+const mapDispatchToProps = (dispatch) => ({
+ setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
});
-export function ContractCreatePageContainer({ bodyshop }) {
+export function ContractCreatePageContainer({ bodyshop, setBreadcrumbs }) {
const [form] = Form.useForm();
const { t } = useTranslation();
const history = useHistory();
@@ -24,45 +29,56 @@ export function ContractCreatePageContainer({ bodyshop }) {
);
const [insertContract] = useMutation(INSERT_NEW_CONTRACT);
- console.log("location", location);
+ console.log("test");
- const handleFinish = values => {
+ const handleFinish = (values) => {
if (!!selectedCarState[0] && !!selectedJobState[0]) {
insertContract({
variables: {
contract: {
...values,
courtesycarid: selectedCarState[0],
- jobid: selectedJobState[0]
- }
- }
+ jobid: selectedJobState[0],
+ },
+ },
})
- .then(response => {
+ .then((response) => {
notification["success"]({
- message: t("contracts.successes.saved")
+ message: t("contracts.successes.saved"),
});
history.push(
`/manage/courtesycars/contracts/${response.data.insert_cccontracts.returning[0].id}`
);
})
- .catch(error =>
+ .catch((error) =>
notification["error"]({
message: t("contracts.errors.saving", {
- error: JSON.stringify(error)
- })
+ error: JSON.stringify(error),
+ }),
})
);
} else {
notification["error"]({
- message: t("contracts.errors.selectjobandcar")
+ message: t("contracts.errors.selectjobandcar"),
});
}
};
useEffect(() => {
document.title = t("titles.contracts-create");
- }, [t]);
+ setBreadcrumbs([
+ { link: "/manage/courtesycars", label: t("titles.bc.courtesycars") },
+ {
+ link: "/manage/courtesycars/contracts",
+ label: t("titles.bc.contracts"),
+ },
+ {
+ link: "/manage/courtesycars/contracts/new",
+ label: t("titles.bc.contracts-create"),
+ },
+ ]);
+ }, [t, setBreadcrumbs]);
return (
);
}
-export default connect(mapStateToProps, null)(ContractCreatePageContainer);
+export default connect(
+ mapStateToProps,
+ mapDispatchToProps
+)(ContractCreatePageContainer);
diff --git a/client/src/pages/contract-detail/contract-detail.page.container.jsx b/client/src/pages/contract-detail/contract-detail.page.container.jsx
index fb8278739..e996a1348 100644
--- a/client/src/pages/contract-detail/contract-detail.page.container.jsx
+++ b/client/src/pages/contract-detail/contract-detail.page.container.jsx
@@ -3,23 +3,29 @@ import { Form, notification } from "antd";
import moment from "moment";
import React, { useEffect } from "react";
import { useTranslation } from "react-i18next";
+import { connect } from "react-redux";
import { useParams } from "react-router-dom";
import AlertComponent from "../../components/alert/alert.component";
+import CourtesyCarReturnModalContainer from "../../components/courtesy-car-return-modal/courtesy-car-return-modal.container";
import {
QUERY_CONTRACT_BY_PK,
- UPDATE_CONTRACT
+ UPDATE_CONTRACT,
} from "../../graphql/cccontracts.queries";
+import { setBreadcrumbs } from "../../redux/application/application.actions";
import ContractDetailPageComponent from "./contract-detail.page.component";
-import CourtesyCarReturnModalContainer from "../../components/courtesy-car-return-modal/courtesy-car-return-modal.container";
-export default function ContractDetailPageContainer() {
+const mapDispatchToProps = (dispatch) => ({
+ setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
+});
+
+export function ContractDetailPageContainer({ setBreadcrumbs }) {
const { t } = useTranslation();
const [updateContract] = useMutation(UPDATE_CONTRACT);
const [form] = Form.useForm();
const { contractId } = useParams();
const { loading, error, data, refetch } = useQuery(QUERY_CONTRACT_BY_PK, {
- variables: { id: contractId }
+ variables: { id: contractId },
});
useEffect(() => {
@@ -28,20 +34,34 @@ export default function ContractDetailPageContainer() {
: error
? t("titles.app")
: t("titles.contracts-detail", {
- id: (data && data.cccontracts_by_pk.agreementnumber) || ""
+ id: (data && data.cccontracts_by_pk.agreementnumber) || "",
});
- }, [t, data, error, loading]);
- const handleFinish = values => {
+ setBreadcrumbs([
+ { link: "/manage/courtesycars", label: t("titles.bc.courtesycars") },
+ {
+ link: "/manage/courtesycars/contracts",
+ label: t("titles.bc.contracts"),
+ },
+ {
+ link: "/manage/courtesycars/contracts/new",
+ label: t("titles.bc.contracts-detail", {
+ number: data.cccontracts_by_pk.agreementnumber || "",
+ }),
+ },
+ ]);
+ }, [t, data, error, loading, setBreadcrumbs]);
+
+ const handleFinish = (values) => {
updateContract({
- variables: { cccontract: { ...values }, contractId: contractId }
+ variables: { cccontract: { ...values }, contractId: contractId },
})
- .then(response => {
+ .then((response) => {
notification["success"]({ message: t("contracts.successes.saved") });
})
- .catch(error =>
+ .catch((error) =>
notification["error"]({
- message: t("contracts.errors.saving", { error: error })
+ message: t("contracts.errors.saving", { error: error }),
})
);
};
@@ -76,7 +96,7 @@ export default function ContractDetailPageContainer() {
: null,
driver_dob: data.cccontracts_by_pk.driver_dob
? moment(data.cccontracts_by_pk.driver_dob)
- : null
+ : null,
}
: {}
}
@@ -91,3 +111,4 @@ export default function ContractDetailPageContainer() {
);
}
+export default connect(null, mapDispatchToProps)(ContractDetailPageContainer);
diff --git a/client/src/pages/contracts/contracts.page.container.jsx b/client/src/pages/contracts/contracts.page.container.jsx
index 08fc143ff..9de40784d 100644
--- a/client/src/pages/contracts/contracts.page.container.jsx
+++ b/client/src/pages/contracts/contracts.page.container.jsx
@@ -1,11 +1,29 @@
-import React from "react";
-import ContractsPageComponent from "./contracts.page.component";
import { useQuery } from "@apollo/react-hooks";
-import { QUERY_ACTIVE_CONTRACTS } from "../../graphql/cccontracts.queries";
+import React, { useEffect } from "react";
+import { useTranslation } from "react-i18next";
+import { connect } from "react-redux";
import AlertComponent from "../../components/alert/alert.component";
+import { QUERY_ACTIVE_CONTRACTS } from "../../graphql/cccontracts.queries";
+import { setBreadcrumbs } from "../../redux/application/application.actions";
+import ContractsPageComponent from "./contracts.page.component";
+const mapDispatchToProps = (dispatch) => ({
+ setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
+});
-export default function ContractsPageContainer() {
+export function ContractsPageContainer({ setBreadcrumbs }) {
const { loading, error, data } = useQuery(QUERY_ACTIVE_CONTRACTS);
+ const { t } = useTranslation();
+ useEffect(() => {
+ document.title = t("titles.contracts");
+
+ setBreadcrumbs([
+ { link: "/manage/courtesycars", label: t("titles.bc.courtesycars") },
+ {
+ link: "/manage/courtesycars/contracts",
+ label: t("titles.bc.contracts"),
+ },
+ ]);
+ }, [setBreadcrumbs, t]);
if (error) return ;
return (
@@ -17,3 +35,4 @@ export default function ContractsPageContainer() {
);
}
+export default connect(null, mapDispatchToProps)(ContractsPageContainer);
diff --git a/client/src/pages/courtesy-car-create/courtesy-car-create.page.container.jsx b/client/src/pages/courtesy-car-create/courtesy-car-create.page.container.jsx
index cbcd4dd45..a9bd1bdd7 100644
--- a/client/src/pages/courtesy-car-create/courtesy-car-create.page.container.jsx
+++ b/client/src/pages/courtesy-car-create/courtesy-car-create.page.container.jsx
@@ -8,33 +8,43 @@ import { INSERT_NEW_COURTESY_CAR } from "../../graphql/courtesy-car.queries";
import { selectBodyshop } from "../../redux/user/user.selectors";
import CourtesyCarCreateComponent from "./courtesy-car-create.page.component";
import { useHistory } from "react-router-dom";
+import { setBreadcrumbs } from "../../redux/application/application.actions";
const mapStateToProps = createStructuredSelector({
- bodyshop: selectBodyshop
+ bodyshop: selectBodyshop,
});
-
-export function CourtesyCarCreateContainer({ bodyshop }) {
+const mapDispatchToProps = (dispatch) => ({
+ setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
+});
+export function CourtesyCarCreateContainer({ bodyshop, setBreadcrumbs }) {
const [form] = Form.useForm();
const [insertCourtesyCar] = useMutation(INSERT_NEW_COURTESY_CAR);
const { t } = useTranslation();
const history = useHistory();
- const handleFinish = values => {
+ const handleFinish = (values) => {
insertCourtesyCar({
- variables: { courtesycar: { ...values, bodyshopid: bodyshop.id } }
+ variables: { courtesycar: { ...values, bodyshopid: bodyshop.id } },
})
- .then(response => {
+ .then((response) => {
notification["success"]({ message: t("courtesycars.successes.saved") });
history.push(
`/manage/courtesycars/${response.data.insert_courtesycars.returning[0].id}`
);
})
- .catch(error => console.log("error", error));
+ .catch((error) => console.log("error", error));
};
useEffect(() => {
document.title = t("titles.courtesycars-create");
- }, [t]);
+ setBreadcrumbs([
+ { link: "/manage/courtesycars", label: t("titles.bc.courtesycars") },
+ {
+ link: "/manage/courtesycars/new",
+ label: t("titles.bc.courtesycars-new"),
+ },
+ ]);
+ }, [t, setBreadcrumbs]);
return (
);
}
-export default connect(mapStateToProps, null)(CourtesyCarCreateContainer);
+export default connect(
+ mapStateToProps,
+ mapDispatchToProps
+)(CourtesyCarCreateContainer);
diff --git a/client/src/pages/courtesy-car-detail/courtesy-car-detail.page.container.jsx b/client/src/pages/courtesy-car-detail/courtesy-car-detail.page.container.jsx
index 8fd114dde..a595be0a6 100644
--- a/client/src/pages/courtesy-car-detail/courtesy-car-detail.page.container.jsx
+++ b/client/src/pages/courtesy-car-detail/courtesy-car-detail.page.container.jsx
@@ -3,19 +3,24 @@ import { Form, notification } from "antd";
import moment from "moment";
import React, { useEffect } from "react";
import { useTranslation } from "react-i18next";
+import { connect } from "react-redux";
import { useParams } from "react-router-dom";
import AlertComponent from "../../components/alert/alert.component";
import { QUERY_CC_BY_PK, UPDATE_CC } from "../../graphql/courtesy-car.queries";
+import { setBreadcrumbs } from "../../redux/application/application.actions";
import CourtesyCarDetailPageComponent from "./courtesy-car-detail.page.component";
-export default function CourtesyCarDetailPageContainer() {
+const mapDispatchToProps = (dispatch) => ({
+ setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
+});
+export function CourtesyCarDetailPageContainer({ setBreadcrumbs }) {
const { t } = useTranslation();
const [insertCourtesyCar] = useMutation(UPDATE_CC);
const [form] = Form.useForm();
const { ccId } = useParams();
const { loading, error, data } = useQuery(QUERY_CC_BY_PK, {
- variables: { id: ccId }
+ variables: { id: ccId },
});
useEffect(() => {
@@ -24,20 +29,31 @@ export default function CourtesyCarDetailPageContainer() {
: error
? t("titles.app")
: t("titles.courtesycars-detail", {
- id: (data && data.courtesycars_by_pk.vin) || ""
+ id: (data && data.courtesycars_by_pk.fleet_number) || "",
});
- }, [t, data, error, loading]);
+ setBreadcrumbs([
+ { link: "/manage/courtesycars", label: t("titles.bc.courtesycars") },
+ {
+ link: `/manage/courtesycars/${
+ (data && data.courtesycars_by_pk.id) || ""
+ }`,
+ label: t("titles.bc.courtesycars-detail", {
+ number: (data && data.courtesycars_by_pk.fleetnumber) || "",
+ }),
+ },
+ ]);
+ }, [t, data, error, loading, setBreadcrumbs]);
- const handleFinish = values => {
+ const handleFinish = (values) => {
insertCourtesyCar({
- variables: { cc: { ...values }, ccId: ccId }
+ variables: { cc: { ...values }, ccId: ccId },
})
- .then(response => {
+ .then((response) => {
notification["success"]({ message: t("courtesycars.successes.saved") });
})
- .catch(error =>
+ .catch((error) =>
notification["error"]({
- message: t("courtesycars.errors.saving", { error: error })
+ message: t("courtesycars.errors.saving", { error: error }),
})
);
};
@@ -76,7 +92,7 @@ export default function CourtesyCarDetailPageContainer() {
: null,
insuranceexpires: data.courtesycars_by_pk.insuranceexpires
? moment(data.courtesycars_by_pk.insuranceexpires)
- : null
+ : null,
}
: {}
}
@@ -87,3 +103,7 @@ export default function CourtesyCarDetailPageContainer() {
);
}
+export default connect(
+ null,
+ mapDispatchToProps
+)(CourtesyCarDetailPageContainer);
diff --git a/client/src/pages/courtesy-cars/courtesy-cars.page.container.jsx b/client/src/pages/courtesy-cars/courtesy-cars.page.container.jsx
index 3aac89538..cc464629a 100644
--- a/client/src/pages/courtesy-cars/courtesy-cars.page.container.jsx
+++ b/client/src/pages/courtesy-cars/courtesy-cars.page.container.jsx
@@ -1,12 +1,26 @@
-import React from "react";
+import React, { useEffect } from "react";
import CourtesyCarsPageComponent from "./courtesy-cars.page.component";
import { useQuery } from "@apollo/react-hooks";
import AlertComponent from "../../components/alert/alert.component";
import { QUERY_ALL_CC } from "../../graphql/courtesy-car.queries";
+import { setBreadcrumbs } from "../../redux/application/application.actions";
+import { connect } from "react-redux";
+import { useTranslation } from "react-i18next";
-export default function CourtesyCarsPageContainer() {
+const mapDispatchToProps = (dispatch) => ({
+ setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
+});
+
+export function CourtesyCarsPageContainer({ setBreadcrumbs }) {
const { loading, error, data } = useQuery(QUERY_ALL_CC);
+ const { t } = useTranslation();
+ useEffect(() => {
+ document.title = t("titles.courtesycars");
+ setBreadcrumbs([
+ { link: "/manage/courtesycars", label: t("titles.bc.courtesycars") },
+ ]);
+ }, [setBreadcrumbs, t]);
if (error) return ;
return (
);
}
+
+export default connect(null, mapDispatchToProps)(CourtesyCarsPageContainer);
diff --git a/client/src/pages/jobs-available/jobs-available.page.container.jsx b/client/src/pages/jobs-available/jobs-available.page.container.jsx
index 7955d331a..56aafd8ae 100644
--- a/client/src/pages/jobs-available/jobs-available.page.container.jsx
+++ b/client/src/pages/jobs-available/jobs-available.page.container.jsx
@@ -2,12 +2,18 @@ import React, { useEffect } from "react";
import { useMutation, useLazyQuery } from "@apollo/react-hooks";
import {
DELETE_AVAILABLE_JOB,
- QUERY_AVAILABLE_NEW_JOBS_EST_DATA_BY_PK
+ QUERY_AVAILABLE_NEW_JOBS_EST_DATA_BY_PK,
} from "../../graphql/available-jobs.queries";
import JobsAvailablePageComponent from "./jobs-available.page.component";
import { useTranslation } from "react-i18next";
+import { connect } from "react-redux";
-export default function JobsAvailablePageContainer() {
+import { setBreadcrumbs } from "../../redux/application/application.actions";
+const mapDispatchToProps = (dispatch) => ({
+ setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
+});
+
+export function JobsAvailablePageContainer({ setBreadcrumbs }) {
const [deleteJob] = useMutation(DELETE_AVAILABLE_JOB);
const { t } = useTranslation();
@@ -15,7 +21,10 @@ export default function JobsAvailablePageContainer() {
useEffect(() => {
document.title = t("titles.jobsavailable");
- }, [t]);
+ setBreadcrumbs([
+ { link: "/manage/available", label: t("titles.bc.availablejobs") },
+ ]);
+ }, [t, setBreadcrumbs]);
return (
@@ -26,3 +35,4 @@ export default function JobsAvailablePageContainer() {
);
}
+export default connect(null, mapDispatchToProps)(JobsAvailablePageContainer);
diff --git a/client/src/pages/jobs-create/jobs-create.container.jsx b/client/src/pages/jobs-create/jobs-create.container.jsx
index 7132fa291..7aa4a87b2 100644
--- a/client/src/pages/jobs-create/jobs-create.container.jsx
+++ b/client/src/pages/jobs-create/jobs-create.container.jsx
@@ -9,13 +9,15 @@ import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { selectBodyshop } from "../../redux/user/user.selectors";
import { useTranslation } from "react-i18next";
+import { setBreadcrumbs } from "../../redux/application/application.actions";
const mapStateToProps = createStructuredSelector({
- bodyshop: selectBodyshop
+ bodyshop: selectBodyshop,
});
-export default connect(mapStateToProps, null)(JobsCreateContainer);
-
-function JobsCreateContainer({ bodyshop }) {
+const mapDispatchToProps = (dispatch) => ({
+ setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
+});
+function JobsCreateContainer({ bodyshop, setBreadcrumbs }) {
const { t } = useTranslation();
const contextState = useState({
vehicle: { new: false, search: "", selectedid: null, vehicleObj: null },
@@ -24,7 +26,7 @@ function JobsCreateContainer({ bodyshop }) {
created: false,
error: null,
newJobId: null,
- newJobEstNum: null
+ newJobEstNum: null,
});
const [form] = Form.useForm();
const [state, setState] = contextState;
@@ -36,49 +38,56 @@ function JobsCreateContainer({ bodyshop }) {
useEffect(() => {
if (!!state.owner.selectedid) {
loadOwner({
- variables: { id: state.owner.selectedid }
+ variables: { id: state.owner.selectedid },
});
}
}, [state.owner.selectedid, loadOwner]);
useEffect(() => {
document.title = t("titles.jobs-create");
- }, [t]);
+ setBreadcrumbs([
+ { link: "/manage/available", label: t("titles.bc.availablejobs") },
+ {
+ link: "/manage/jobs/new",
+ label: t("titles.bc.jobs-new"),
+ },
+ ]);
+ }, [t, setBreadcrumbs]);
- const runInsertJob = job => {
+ const runInsertJob = (job) => {
insertJob({ variables: { job: job } })
- .then(resp => {
+ .then((resp) => {
setState({
...state,
created: true,
error: null,
newJobId: resp.data.insert_jobs.returning[0].id,
- newJobEstNum: resp.data.insert_jobs.returning[0].est_number
+ newJobEstNum: resp.data.insert_jobs.returning[0].est_number,
});
})
- .catch(error => {
+ .catch((error) => {
notification["error"]({
- message: t("jobs.errors.creating", { error: error })
+ message: t("jobs.errors.creating", { error: error }),
});
setState({ ...state, error: error });
});
};
- const handleFinish = values => {
+ const handleFinish = (values) => {
let job = Object.assign(
{},
values,
{
vehicle: state.vehicle.selectedid ? null : values.vehicle,
- vehicleid: state.vehicle.selectedid || null
+ vehicleid: state.vehicle.selectedid || null,
},
{
owner: state.owner.selectedid ? null : values.owner,
- ownerid: state.owner.selectedid || null
+ ownerid: state.owner.selectedid || null,
},
{
status: bodyshop.md_ro_statuses.default_imported || "Open*", //Pull from redux store.
- shopid: bodyshop.id
+ shopid: bodyshop.id,
}
);
//TODO Logic to ensure the owner is actually fetched.
@@ -128,3 +137,7 @@ function JobsCreateContainer({ bodyshop }) {
);
}
+export default connect(
+ mapStateToProps,
+ mapDispatchToProps
+)(JobsCreateContainer);
diff --git a/client/src/pages/jobs-detail/jobs-detail.page.component.jsx b/client/src/pages/jobs-detail/jobs-detail.page.component.jsx
index ef4740c73..aa8ebb72a 100644
--- a/client/src/pages/jobs-detail/jobs-detail.page.component.jsx
+++ b/client/src/pages/jobs-detail/jobs-detail.page.component.jsx
@@ -3,7 +3,7 @@ import Icon, {
CalendarFilled,
DollarCircleOutlined,
FileImageFilled,
- ToolFilled
+ ToolFilled,
} from "@ant-design/icons";
import { Form, notification, Tabs } from "antd";
import moment from "moment";
@@ -14,7 +14,7 @@ import {
FaHistory,
FaInfo,
FaRegStickyNote,
- FaShieldAlt
+ FaShieldAlt,
} from "react-icons/fa";
import { useHistory, useLocation } from "react-router-dom";
import LoadingSpinner from "../../components/loading-spinner/loading-spinner.component";
@@ -57,9 +57,7 @@ const JobLineUpsertModalContainer = lazy(() =>
"../../components/job-lines-upsert-modal/job-lines-upsert-modal.container"
)
);
-const EnterInvoiceModalContainer = lazy(() =>
- import("../../components/invoice-enter-modal/invoice-enter-modal.container")
-);
+
const JobsDetailPliContainer = lazy(() =>
import("../../components/jobs-detail-pli/jobs-detail-pli.container")
);
@@ -73,7 +71,7 @@ export default function JobsDetailPage({
mutationConvertJob,
handleSubmit,
refetch,
- updateJobStatus
+ updateJobStatus,
}) {
const { t } = useTranslation();
const [form] = Form.useForm();
@@ -83,22 +81,22 @@ export default function JobsDetailPage({
const formItemLayout = {
labelCol: {
xs: { span: 12 },
- sm: { span: 5 }
+ sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
- sm: { span: 12 }
- }
+ sm: { span: 12 },
+ },
};
- const handleFinish = values => {
+ const handleFinish = (values) => {
mutationUpdateJob({
- variables: { jobId: job.id, job: values }
- }).then(r => {
+ variables: { jobId: job.id, job: values },
+ }).then((r) => {
notification["success"]({
- message: t("jobs.successes.savetitle")
+ message: t("jobs.successes.savetitle"),
});
- refetch().then(r => form.resetFields());
+ refetch().then((r) => form.resetFields());
});
};
@@ -108,7 +106,6 @@ export default function JobsDetailPage({
>
-