import React, { useContext } from "react"; import { useNavigate } from "react-router-dom"; import JobContext from "../../ctx/JobContext.jsx"; import Box from "@mui/material/Box"; import AppBar from "@mui/material/AppBar"; import Toolbar from "@mui/material/Toolbar"; import IconButton from "@mui/material/IconButton"; import Typography from "@mui/material/Typography"; import Accordion from "@mui/material/Accordion"; import AccordionSummary from "@mui/material/AccordionSummary"; import Stack from "@mui/material/Stack"; import ArrowBackIcon from "@mui/icons-material/ArrowBack"; function JobPipelineDisplay(props) { const { back, pipeline } = props; const { state: jobState, pipelineCancel, pipelineDestroy, } = useContext(JobContext); const navigate = useNavigate(); const pipelineJobs = jobState.jobs.filter( (j) => j.isPipeline && j.pipelineId === pipeline.id ); const selectedBranches = () => { return pipeline.branches.map((b) => { return b.filter((t) => pipeline.selectedBranches.includes(t)); }); }; const selectJob = (testName) => () => { const job = pipelineJobs.find((j) => j.branchId === testName); if (!job) return; navigate(`/qualiteer/jobs#${job.jobId}`); }; function navigateToJobs() { navigate(`/qualiteer/jobs`); } function cancelPipeline() { pipelineCancel(pipeline.id); } function deletePipeline() { pipelineDestroy(pipeline.id); } return ( {pipeline.id} {selectedBranches().map((track, i) => ( {i + 1} {track.map((test, j) => ( {test} I ))} ))} ); } export default JobPipelineDisplay;