portainer/app/react/kubernetes/namespaces/queries/useToggleSystemNamespace.ts

35 lines
1.0 KiB
TypeScript

import { useMutation, useQueryClient } from '@tanstack/react-query';
import axios from '@/portainer/services/axios';
import { EnvironmentId } from '@/react/portainer/environments/types';
import { withGlobalError, withInvalidate } from '@/react-tools/react-query';
import { queryKeys } from './queryKeys';
export function useToggleSystemNamespaceMutation(
environmentId: EnvironmentId,
namespaceName: string
) {
const queryClient = useQueryClient();
return useMutation({
mutationFn: (isSystem: boolean) =>
toggleSystemNamespace(environmentId, namespaceName, isSystem),
...withInvalidate(queryClient, [
queryKeys.namespace(environmentId, namespaceName),
]),
...withGlobalError('Failed to update namespace'),
});
}
async function toggleSystemNamespace(
environmentId: EnvironmentId,
namespaceName: string,
system: boolean
) {
const response = await axios.put(
`/kubernetes/${environmentId}/namespaces/${namespaceName}/system`,
{ system }
);
return response.data;
}