import React, { useState, useContext, useEffect } from "react"; import { useLocation, useNavigate } from "react-router-dom"; import JobContext from "../../ctx/JobContext.jsx"; import JobBox from "./JobBox.jsx"; import JobPipelineBox from "./JobPipelineBox.jsx"; import JobView from "./JobView.jsx"; import JobPipelineDisplay from "./JobPipelineDisplay.jsx"; import JobBuilder from "./builder/JobBuilder.jsx"; import Typography from "@mui/material/Typography"; import Box from "@mui/material/Box"; export default function Jobs() { const { state: jobState } = useContext(JobContext); const location = useLocation(); const navigate = useNavigate(); useEffect(() => { const jobName = location.hash.slice(1); const pipelineId = jobName.slice(1); const noPipeline = !jobName || jobState.pipelines.find((p)=>p.id ===pipelineId); const noJob = !jobName || jobState.jobs.find((job) => job.name === jobName) if(!noPipeline || !noJob) return; navigate("/qualiteer/jobs"); }); return (
{jobState.jobs.length === 0 ? ( No jobs found! {" "} {" "} Click the '+' to start a new one! ) : null} {location.hash === "" &&( {jobState.jobs .filter((j) => !j.isPipeline) .map((v, i) => ( ))} {jobState.pipelines.map((p,i)=> )} ) } { location.hash[1] === "p"? p.id===location.hash.slice(2))}/> : jobState.jobs.find((job) => job.name === location.hash.slice(1)) && ( job.name === location.hash.slice(1))} /> )}
); }