From 0d502d4dd4be2dd02c45450a713b1fbfbe2cf0cf Mon Sep 17 00:00:00 2001 From: Allan Carr Date: Fri, 6 Mar 2026 18:31:22 -0800 Subject: [PATCH 1/2] IO-3571 Create Job Done Button Loading Signed-off-by: Allan Carr --- .../jobs-create/jobs-create.component.jsx | 21 +++++++++---------- client/src/translations/en_us/common.json | 1 + client/src/translations/es/common.json | 1 + client/src/translations/fr/common.json | 1 + 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/client/src/pages/jobs-create/jobs-create.component.jsx b/client/src/pages/jobs-create/jobs-create.component.jsx index d760aa0cc..5e822b1aa 100644 --- a/client/src/pages/jobs-create/jobs-create.component.jsx +++ b/client/src/pages/jobs-create/jobs-create.component.jsx @@ -12,12 +12,11 @@ import JobCreateContext from "../../pages/jobs-create/jobs-create.context"; export default function JobsCreateComponent({ form }) { const [pageIndex, setPageIndex] = useState(0); - const [errorMessage, setErrorMessage] = useState(null); - + const [isSubmitting, setIsSubmitting] = useState(false); const [state] = useContext(JobCreateContext); - const { t } = useTranslation(); + const steps = [ { title: t("jobs.labels.create.vehicleinfo"), @@ -42,11 +41,9 @@ export default function JobsCreateComponent({ form }) { const next = () => { setPageIndex(pageIndex + 1); - console.log("Next"); }; const prev = () => { setPageIndex(pageIndex - 1); - console.log("Previous"); }; const ProgressButtons = ({ top }) => { @@ -79,17 +76,21 @@ export default function JobsCreateComponent({ form }) { {pageIndex === steps.length - 1 && ( )} @@ -146,13 +147,11 @@ export default function JobsCreateComponent({ form }) { ) : (
- {errorMessage ? (
) : null} - {steps.map((item, idx) => (
Date: Mon, 9 Mar 2026 12:53:59 -0400 Subject: [PATCH 2/2] feature/IO-3571-Create-Job-Done-Loading - Fix set is submitting --- client/src/pages/jobs-create/jobs-create.component.jsx | 5 +---- client/src/pages/jobs-create/jobs-create.container.jsx | 6 +++++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/client/src/pages/jobs-create/jobs-create.component.jsx b/client/src/pages/jobs-create/jobs-create.component.jsx index 5e822b1aa..7d48d035a 100644 --- a/client/src/pages/jobs-create/jobs-create.component.jsx +++ b/client/src/pages/jobs-create/jobs-create.component.jsx @@ -10,10 +10,9 @@ import JobsCreateOwnerInfoContainer from "../../components/jobs-create-owner-inf import JobsCreateVehicleInfoContainer from "../../components/jobs-create-vehicle-info/jobs-create-vehicle-info.container"; import JobCreateContext from "../../pages/jobs-create/jobs-create.context"; -export default function JobsCreateComponent({ form }) { +export default function JobsCreateComponent({ form, isSubmitting }) { const [pageIndex, setPageIndex] = useState(0); const [errorMessage, setErrorMessage] = useState(null); - const [isSubmitting, setIsSubmitting] = useState(false); const [state] = useContext(JobCreateContext); const { t } = useTranslation(); @@ -78,7 +77,6 @@ export default function JobsCreateComponent({ form }) { type="primary" loading={isSubmitting} onClick={() => { - setIsSubmitting(true); form .validateFields() .then(() => { @@ -86,7 +84,6 @@ export default function JobsCreateComponent({ form }) { }) .catch((error) => { console.log("error", error); - setIsSubmitting(false); }); }} > diff --git a/client/src/pages/jobs-create/jobs-create.container.jsx b/client/src/pages/jobs-create/jobs-create.container.jsx index 97aaa3437..5b5627ef1 100644 --- a/client/src/pages/jobs-create/jobs-create.container.jsx +++ b/client/src/pages/jobs-create/jobs-create.container.jsx @@ -46,6 +46,7 @@ function JobsCreateContainer({ bodyshop, setBreadcrumbs, setSelectedHeader, curr }); const [form] = Form.useForm(); const [state, setState] = contextState; + const [isSubmitting, setIsSubmitting] = useState(false); const [insertJob] = useMutation(INSERT_NEW_JOB); const [loadOwner, remoteOwnerData] = useLazyQuery(QUERY_OWNER_FOR_JOB_CREATION); @@ -83,16 +84,19 @@ function JobsCreateContainer({ bodyshop, setBreadcrumbs, setSelectedHeader, curr newJobId: resp.data.insert_jobs.returning[0].id }); logImEXEvent("manual_job_create_completed", {}); + setIsSubmitting(false); }) .catch((error) => { notification.error({ title: t("jobs.errors.creating", { error: error }) }); setState({ ...state, error: error }); + setIsSubmitting(false); }); }; const handleFinish = (values) => { + setIsSubmitting(true); let job = Object.assign( {}, values, @@ -297,7 +301,7 @@ function JobsCreateContainer({ bodyshop, setBreadcrumbs, setSelectedHeader, curr }) }} > - +