项目文件夹

文件
2026-07-13 12:08:39 +08:00

34 行
1.2 KiB
TypeScript

import { useMutation, useQueryClient } from '@tanstack/react-query';
import { EnvironmentId } from '@/react/portainer/environments/types';
import axios from '@/portainer/services/axios/axios';
import { withError } from '@/react-tools/react-query';
import { notifySuccess } from '@/portainer/services/notifications';
import { PersistentVolumeClaim } from '@/react/kubernetes/volumes/ListView/types';
import { queryKeys } from './query-keys';
export function useDeletePersistentVolumeClaims(environmentId: EnvironmentId) {
const queryClient = useQueryClient();
return useMutation({
mutationFn: (claims: PersistentVolumeClaim[]) =>
deleteClaims(claims, environmentId),
onSuccess: () => {
notifySuccess('Success', 'Persistent volume claim successfully removed');
queryClient.invalidateQueries(queryKeys.storages(environmentId));
return queryClient.invalidateQueries(queryKeys.claims(environmentId));
},
...withError('Unable to remove persistent volume claims'),
});
}
function deleteClaims(
claims: PersistentVolumeClaim[],
environmentId: EnvironmentId
) {
return axios.post(
`/kubernetes/${environmentId}/persistent_volume_claims/delete`,
claims.map((c) => ({ name: c.name, namespace: c.namespace }))
);
}