From abf01b49661de38469e81c5741239b38050b4eff Mon Sep 17 00:00:00 2001 From: Allan Carr Date: Tue, 29 Jul 2025 19:19:38 -0700 Subject: [PATCH] IO-3318 Close Job Page UI Bugs Signed-off-by: Allan Carr --- .../labor-type-form-item.component.jsx | 4 ++-- .../part-type-form-item.component.jsx | 8 +++++--- .../read-only-form-item.component.jsx | 14 +++++++------- .../jobs-close-lines.component.jsx | 7 +++---- .../src/pages/jobs-close/jobs-close.component.jsx | 10 +++++----- 5 files changed, 22 insertions(+), 21 deletions(-) diff --git a/client/src/components/form-items-formatted/labor-type-form-item.component.jsx b/client/src/components/form-items-formatted/labor-type-form-item.component.jsx index f1f4d8265..cc76d7297 100644 --- a/client/src/components/form-items-formatted/labor-type-form-item.component.jsx +++ b/client/src/components/form-items-formatted/labor-type-form-item.component.jsx @@ -1,7 +1,7 @@ -import React, { forwardRef } from "react"; +import { forwardRef } from "react"; import { useTranslation } from "react-i18next"; -const LaborTypeFormItem = ({ value, onChange }, ref) => { +const LaborTypeFormItem = ({ value }) => { const { t } = useTranslation(); if (!value) return null; diff --git a/client/src/components/form-items-formatted/part-type-form-item.component.jsx b/client/src/components/form-items-formatted/part-type-form-item.component.jsx index 3226483ca..70e87e50d 100644 --- a/client/src/components/form-items-formatted/part-type-form-item.component.jsx +++ b/client/src/components/form-items-formatted/part-type-form-item.component.jsx @@ -1,11 +1,13 @@ -import React, { forwardRef } from "react"; +import { forwardRef } from "react"; import { useTranslation } from "react-i18next"; -const PartTypeFormItem = ({ value, onChange }, ref) => { +const PartTypeFormItem = ({ value }) => { const { t } = useTranslation(); if (!value) return null; - return
{t(`joblines.fields.part_types.${value}`)}
; + return ( +
{t(`joblines.fields.part_types.${value}`)}
+ ); }; export default forwardRef(PartTypeFormItem); diff --git a/client/src/components/form-items-formatted/read-only-form-item.component.jsx b/client/src/components/form-items-formatted/read-only-form-item.component.jsx index 09c6ef6e9..65333883a 100644 --- a/client/src/components/form-items-formatted/read-only-form-item.component.jsx +++ b/client/src/components/form-items-formatted/read-only-form-item.component.jsx @@ -1,6 +1,5 @@ import Dinero from "dinero.js"; -import React, { forwardRef } from "react"; - +import { forwardRef } from "react"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { selectBodyshop } from "../../redux/user/user.selectors"; @@ -8,23 +7,24 @@ import { selectBodyshop } from "../../redux/user/user.selectors"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop }); -const mapDispatchToProps = (dispatch) => ({ +const mapDispatchToProps = () => ({ //setUserLanguage: language => dispatch(setUserLanguage(language)) }); -const ReadOnlyFormItem = ({ bodyshop, value, type = "text", onChange }, ref) => { +const ReadOnlyFormItem = ({ bodyshop, value, type = "text" }) => { if (!value) return null; switch (type) { - case "employee": + case "employee": { const emp = bodyshop.employees.find((e) => e.id === value); return `${emp?.first_name} ${emp?.last_name}`; + } case "text": - return
{value}
; + return
{value}
; case "currency": return
{Dinero({ amount: Math.round(value * 100) }).toFormat()}
; default: - return
{value}
; + return
{value}
; } }; diff --git a/client/src/components/jobs-close-lines/jobs-close-lines.component.jsx b/client/src/components/jobs-close-lines/jobs-close-lines.component.jsx index 06f454521..fd1652eac 100644 --- a/client/src/components/jobs-close-lines/jobs-close-lines.component.jsx +++ b/client/src/components/jobs-close-lines/jobs-close-lines.component.jsx @@ -1,5 +1,5 @@ +import { WarningOutlined } from "@ant-design/icons"; import { Form, Select, Space, Tooltip } from "antd"; -import React from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; @@ -8,14 +8,13 @@ import { selectBodyshop } from "../../redux/user/user.selectors"; import LaborTypeFormItem from "../form-items-formatted/labor-type-form-item.component"; import PartTypeFormItem from "../form-items-formatted/part-type-form-item.component"; import ReadOnlyFormItem from "../form-items-formatted/read-only-form-item.component"; -import { WarningOutlined } from "@ant-design/icons"; import "./jobs-close-lines.styles.scss"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, jobRO: selectJobReadOnly }); -const mapDispatchToProps = (dispatch) => ({ +const mapDispatchToProps = () => ({ //setUserLanguage: language => dispatch(setUserLanguage(language)) }); @@ -24,7 +23,7 @@ export function JobsCloseLines({ bodyshop, job, jobRO }) { return (
- {(fields, { add, remove, move }) => { + {(fields) => { return ( diff --git a/client/src/pages/jobs-close/jobs-close.component.jsx b/client/src/pages/jobs-close/jobs-close.component.jsx index 42fbab7d9..2423e2e6b 100644 --- a/client/src/pages/jobs-close/jobs-close.component.jsx +++ b/client/src/pages/jobs-close/jobs-close.component.jsx @@ -271,7 +271,7 @@ export function JobsCloseComponent({ job, bodyshop, jobRO, insertAuditTrail, set { required: true }, - ({ getFieldValue }) => ({ + () => ({ validator(_, value) { if (!bodyshop.cdk_dealerid) return Promise.resolve(); if (!value || dayjs(value).isSameOrAfter(dayjs(), "day")) { @@ -280,7 +280,7 @@ export function JobsCloseComponent({ job, bodyshop, jobRO, insertAuditTrail, set return Promise.reject(new Error(t("jobs.labels.dms.invoicedatefuture"))); } }), - ({ getFieldValue }) => ({ + () => ({ validator(_, value) { if (ClosingPeriod.treatment === "on" && bodyshop.accountingconfig.ClosingPeriod) { if ( @@ -369,8 +369,8 @@ export function JobsCloseComponent({ job, bodyshop, jobRO, insertAuditTrail, set ({ - validator(_, value) { + () => ({ + validator() { let totalAllocated = Dinero(); const payers = form.getFieldValue("qb_multiple_payers"); @@ -492,7 +492,7 @@ export function JobsCloseComponent({ job, bodyshop, jobRO, insertAuditTrail, set 0 ? "green" : "red" + color: discrep.getAmount() >= 0 ? "green" : "red" }} value={discrep.toFormat()} />