Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | import CustomButton from "../../common/CustomButton"; import { Tooltip } from "rsuite"; import { PlayArrowRounded, PowerSettingsNewRounded } from "@mui/icons-material"; import { ExecutionStatus } from "../../../types"; import { useStartWorkflowExecutionMutation, useStopWorkflowExecutionMutation, } from "../../../store/features/workflow/api"; import { CircularProgress } from "@mui/material"; type WorkflowRunButtonProps = { status: ExecutionStatus; id: string; }; function WorkflowRunButton({ status, id }: WorkflowRunButtonProps) { const [triggerStartWorkflow, { isLoading: startExecutionLoading }] = useStartWorkflowExecutionMutation(); const [triggerStopWorkflow, { isLoading: stopExecutionLoading }] = useStopWorkflowExecutionMutation(); const loading = startExecutionLoading || stopExecutionLoading; const showStop = status === ExecutionStatus.WORKFLOW_RUNNING || status === ExecutionStatus.WORKFLOW_SCHEDULED; const handleExecution = async () => { let response: any; switch (status) { case ExecutionStatus.WORKFLOW_RUNNING: case ExecutionStatus.WORKFLOW_SCHEDULED: response = await triggerStopWorkflow({ workflow_id: id }).unwrap(); break; default: response = await triggerStartWorkflow(id).unwrap(); break; } Iif (response.success) window.location.reload(); }; return ( <CustomButton onClick={handleExecution}> <Tooltip title={showStop ? "Stop Execution" : "Start Execution"}> {loading ? ( <CircularProgress size={20} /> ) : showStop ? ( <PowerSettingsNewRounded fontSize="small" /> ) : ( <PlayArrowRounded fontSize="small" /> )} </Tooltip> </CustomButton> ); } export default WorkflowRunButton; |