76 lines
2.3 KiB
JavaScript
76 lines
2.3 KiB
JavaScript
import { useState, useContext } from "react";
|
|
import StoreContext from "../ctx/StoreContext.jsx";
|
|
import JobContext from "../ctx/JobContext.jsx";
|
|
|
|
import SpeedDial from "@mui/material/SpeedDial";
|
|
import SpeedDialAction from "@mui/material/SpeedDialAction";
|
|
import SpeedDialIcon from "@mui/material/SpeedDialIcon";
|
|
|
|
import Button from "@mui/material/Button";
|
|
import Dialog from "@mui/material/Dialog";
|
|
import DialogActions from "@mui/material/DialogActions";
|
|
import DialogContent from "@mui/material/DialogContent";
|
|
import DialogContentText from "@mui/material/DialogContentText";
|
|
import DialogTitle from "@mui/material/DialogTitle";
|
|
|
|
import ReplayIcon from "@mui/icons-material/Replay";
|
|
|
|
import FailingBox from "./components/FailingBox.jsx";
|
|
|
|
export default function Failing() {
|
|
const { state: jobState, retryAll, activeJobStates } = useContext(JobContext);
|
|
|
|
const { state: store, updateStore } = useContext(StoreContext);
|
|
const { failing } = store;
|
|
|
|
/* TODO
|
|
for(var j of activeJobStates()){
|
|
const failingTest = failing.find((f)=>f.name===j.testName);
|
|
if(!failingTest) continue;
|
|
failingTest.jobStatus= j.status;
|
|
}*/
|
|
|
|
const [retryAllOpen, setRetryAllOpen] = useState(false);
|
|
const retryAllClick = () => setRetryAllOpen(!retryAllOpen);
|
|
const handleClose = (confirmed) => () => {
|
|
retryAllClick();
|
|
if (!confirmed) return;
|
|
retryAll(store.failing);
|
|
};
|
|
|
|
return (
|
|
<div className="failing">
|
|
{failing.map((v, i) => (
|
|
<FailingBox key={i} failingTest={v} />
|
|
))}
|
|
|
|
<Dialog
|
|
open={retryAllOpen}
|
|
onClose={handleClose()}
|
|
sx={{ "& .MuiDialog-paper": { width: "80%", maxHeight: 435 } }}
|
|
maxWidth="xs"
|
|
>
|
|
<DialogTitle>Retry all failing tests?</DialogTitle>
|
|
<DialogContent>
|
|
<DialogContentText>
|
|
This will create x jobs and run y tests
|
|
</DialogContentText>
|
|
</DialogContent>
|
|
<DialogActions>
|
|
<Button onClick={handleClose()}>Cancel</Button>
|
|
<Button onClick={handleClose(true)} autoFocus>
|
|
Yes
|
|
</Button>
|
|
</DialogActions>
|
|
</Dialog>
|
|
|
|
<SpeedDial
|
|
ariaLabel="Retry All"
|
|
sx={{ position: "fixed", bottom: 16, right: 16 }}
|
|
icon={<ReplayIcon />}
|
|
onClick={retryAllClick}
|
|
open={false}
|
|
/>
|
|
</div>
|
|
);
|
|
}
|