import { useMutation, useQueryClient } from '@tanstack/react-query'; import { withGlobalError } from '@/react-tools/react-query'; import { EnvironmentId } from '@/react/portainer/environments/types'; import { stopContainer } from '../../../containers.service'; import { ContainerId } from '../../../types'; import { queryKeys as containerQueryKeys } from '../../../queries/query-keys'; interface ContainerActionParams { environmentId: EnvironmentId; containerId: ContainerId; nodeName?: string; } export function useStopContainer() { const queryClient = useQueryClient(); return useMutation({ mutationFn: ({ environmentId, containerId, nodeName, }: ContainerActionParams) => stopContainer(environmentId, containerId, { nodeName }), onSuccess: (_data, variables) => { queryClient.invalidateQueries({ queryKey: containerQueryKeys.container( variables.environmentId, variables.containerId ), }); }, ...withGlobalError('Unable to stop container'), }); }