import { useState, useContext } from "react"; import { useNavigate } from "react-router-dom"; import {useCurrentlyFailing} from "../../Queries.jsx"; import StoreContext from "../../ctx/StoreContext.jsx"; import JobContext from "../../ctx/JobContext.jsx"; import SilenceDialog from "../alerting/SilenceDialog.jsx"; import FailingBox from "./FailingBox.jsx"; import SpeedDial from "@mui/material/SpeedDial"; 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 Box from "@mui/material/Box"; import Typography from "@mui/material/Typography"; export default function Failing() { const { state: jobState, retryAll } = useContext(JobContext); const navigate = useNavigate(); const { state: store, updateStore, silenceRequest, } = useContext(StoreContext); const {isLoading, data: failing} = useCurrentlyFailing(); const [silenceEntry, setSilenceEntry] = useState({ open: false }); const closeSilence = () => setSilenceEntry({ ...silenceEntry, open: false }); const handleSilenceClose = (silenceReq) => { closeSilence(); if (!silenceReq) return; silenceRequest(silenceReq); }; const editSilence = (silence) => () => { setSilenceEntry({ ...silence, open: true }); }; const [retryAllOpen, setRetryAllOpen] = useState(false); const retryAllClick = () => setRetryAllOpen(!retryAllOpen); const handleClose = (confirmed) => () => { retryAllClick(); if (!confirmed) return; const jobId = retryAll(store.failing); if (!store.focusJob) return; navigate(`/qualiteer/jobs#${jobId}`); }; return (