3
3
getGetRunningWorkflowQueryKey ,
4
4
getGetRunningWorkflowsQueryKey ,
5
5
useDeleteRunningWorkflow ,
6
+ useStopRunningWorkflow ,
6
7
} from "@squonk/data-manager-client/workflow" ;
7
8
8
9
import { Button } from "@mui/material" ;
@@ -12,47 +13,47 @@ import { WORKFLOW_DONE_PHASES } from "../constants/results";
12
13
import { useEnqueueError } from "../hooks/useEnqueueStackError" ;
13
14
import { WarningDeleteButton } from "./WarningDeleteButton" ;
14
15
15
- interface TerminateWorkflowButtonProps {
16
+ interface DeleteWorkflowButtonProps {
16
17
runningWorkflowId : string ;
17
18
status ?: RunningWorkflowGetResponseStatus ;
18
19
disabled ?: boolean ;
19
20
}
20
21
21
- export const TerminateWorkflowButton = ( {
22
+ export const DeleteWorkflowButton = ( {
22
23
runningWorkflowId,
23
24
status,
24
25
disabled = false ,
25
- } : TerminateWorkflowButtonProps ) => {
26
+ } : DeleteWorkflowButtonProps ) => {
26
27
const queryClient = useQueryClient ( ) ;
27
28
const { mutateAsync : deleteWorkflow } = useDeleteRunningWorkflow ( ) ;
29
+ const { mutateAsync : stopWorkflow } = useStopRunningWorkflow ( ) ;
28
30
const { enqueueError, enqueueSnackbar } = useEnqueueError ( ) ;
29
31
30
32
const done = WORKFLOW_DONE_PHASES . includes ( status ?? RunningWorkflowGetResponseStatus . RUNNING ) ;
31
33
32
- const verb = done ? "Delete" : "Terminate " ;
34
+ const verb = done ? "Delete" : "Stop " ;
33
35
34
- const handleTerminate = async ( ) => {
36
+ const handleClick = async ( ) => {
35
37
try {
36
- await deleteWorkflow ( { runningWorkflowId } ) ;
38
+ await ( done ? deleteWorkflow ( { runningWorkflowId } ) : stopWorkflow ( { runningWorkflowId } ) ) ;
39
+ enqueueSnackbar ( `Workflow has been ${ done ? "deleted" : "stopped" } ` , { variant : "success" } ) ;
40
+ } catch ( error ) {
41
+ enqueueError ( error ) ;
42
+ } finally {
37
43
void queryClient . invalidateQueries ( {
38
44
queryKey : getGetRunningWorkflowQueryKey ( runningWorkflowId ) ,
39
45
} ) ;
40
46
void queryClient . invalidateQueries ( { queryKey : getGetRunningWorkflowsQueryKey ( ) } ) ;
41
- enqueueSnackbar ( `Workflow has been ${ done ? "deleted" : "terminated" } ` , {
42
- variant : "success" ,
43
- } ) ;
44
- } catch ( error ) {
45
- enqueueError ( error ) ;
46
47
}
47
48
} ;
48
49
49
50
return (
50
51
< WarningDeleteButton
51
- modalId = { `terminate -workflow-${ runningWorkflowId } ` }
52
+ modalId = { `stop -workflow-${ runningWorkflowId } ` }
52
53
submitText = { verb }
53
54
title = { `${ verb } Workflow` }
54
55
tooltipText = { `${ verb } this workflow` }
55
- onDelete = { handleTerminate }
56
+ onDelete = { handleClick }
56
57
>
57
58
{ ( { openModal } ) => (
58
59
< Button disabled = { disabled } onClick = { openModal } >
0 commit comments