import { PageHeader } from "@ant-design/pro-layout"; import { Button, Result, Space, Steps } from "antd"; import { useContext, useState } from "react"; import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; import AlertComponent from "../../components/alert/alert.component"; import JobsCreateJobsInfo from "../../components/jobs-create-jobs-info/jobs-create-jobs-info.component"; import JobsCreateOwnerInfoContainer from "../../components/jobs-create-owner-info/jobs-create-owner-info.container"; 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, isSubmitting }) { const [pageIndex, setPageIndex] = useState(0); const [errorMessage, setErrorMessage] = useState(null); const [state] = useContext(JobCreateContext); const { t } = useTranslation(); const steps = [ { title: t("jobs.labels.create.vehicleinfo"), id: "step-job-vehicleinfo", content: , validation: !!state.vehicle.new || !!state.vehicle.selectedid || !!state.vehicle.none, error: t("vehicles.errors.selectexistingornew") }, { title: t("jobs.labels.create.ownerinfo"), id: "step-job-ownerinfo", content: , validation: !!state.owner.new || !!state.owner.selectedid, error: t("owners.errors.selectexistingornew") }, { title: t("jobs.labels.create.jobinfo"), id: "step-job-jobinfo", content: } ]; const next = () => { setPageIndex(pageIndex + 1); }; const prev = () => { setPageIndex(pageIndex - 1); }; const ProgressButtons = ({ top }) => { return ( {pageIndex > 0 && } {pageIndex < steps.length - 1 && ( )} {pageIndex === steps.length - 1 && ( )} } > {top && ( ({ key: item.title, title: item.title, style: { cursor: "pointer", fontWeight: idx === pageIndex && "bolder" }, onClick: () => { setPageIndex(idx); form .validateFields() .then(() => { if (steps[pageIndex].validation) { setErrorMessage(null); setPageIndex(idx); } else { setErrorMessage(steps[pageIndex].error); } }) .catch((error) => console.log("error", error)); } }))} /> )} ); }; return (
{state.created ? (
, ]} />
) : (
{errorMessage ? (
) : null} {steps.map((item, idx) => (
{item.content}
))}
)}
); }