71 lines
2 KiB
React
71 lines
2 KiB
React
|
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';
|
||
|
|
||
|
export default function Failing() {
|
||
|
const {
|
||
|
state: jobState,
|
||
|
retryAll
|
||
|
} = useContext(JobContext);
|
||
|
|
||
|
const { state: store, updateStore } = useContext(StoreContext);
|
||
|
|
||
|
const [retryAllOpen, setRetryAllOpen] = useState(false);
|
||
|
const retryAllClick = () => setRetryAllOpen(!retryAllOpen);
|
||
|
const handleClose = (confirmed) => ()=> {
|
||
|
retryAllClick();
|
||
|
if(!confirmed) return;
|
||
|
retryAll(store.failing);
|
||
|
}
|
||
|
|
||
|
return (
|
||
|
<div className="failing">
|
||
|
|
||
|
|
||
|
<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: 'absolute', bottom: 16, right: 16 }}
|
||
|
icon={<ReplayIcon />}
|
||
|
onClick={retryAllClick}
|
||
|
open={false}
|
||
|
/>
|
||
|
|
||
|
</div>
|
||
|
);
|
||
|
}
|