Переглянути джерело

962 - bulk connectors operations delete connectors fix

Kamila Alekbaeva 2 роки тому
батько
коміт
19c0b29362

+ 17 - 6
kafka-ui-react-app/src/components/Connect/List/BatchActionsBar.tsx

@@ -34,7 +34,7 @@ const BatchActionsBar: React.FC<BatchActionsBarProps> = ({
   const isMutating = mutationsNumber > 0;
 
   const routerProps = useAppParams<RouterParamsClusterConnectConnector>();
-  const clusterName = routerProps.clusterName;
+  const { clusterName } = routerProps;
   const client = useQueryClient();
 
   const canEdit = usePermission(
@@ -49,18 +49,29 @@ const BatchActionsBar: React.FC<BatchActionsBarProps> = ({
   );
 
   const deleteConnectorMutation = useDeleteConnector(routerProps);
-  const deleteConnectorsHandler = () =>
+  const deleteConnectorsHandler = () => {
     confirm(
-      <>Are you sure you want to remove selected connectors?</>,
+      'Are you sure you want to remove selected connectors?',
       async () => {
         try {
-          await deleteConnectorMutation.mutateAsync();
+          await Promise.all(
+            selectedConnectors.map((connector) => {
+              deleteConnectorMutation.mutateAsync({
+                clusterName,
+                connectName: connector.connect,
+                connectorName: connector.name,
+              });
+            })
+          );
           resetRowSelection();
-        } catch {
-          // do not redirect
+        } catch (e) {
+          // do nothing;
+        } finally {
+          client.invalidateQueries(['clusters', clusterName, 'connectors']);
         }
       }
     );
+  };
 
   const stateMutation = useUpdateConnectorState(routerProps);
   const updateConnector = (action: ConnectorAction, message: string) => {

+ 6 - 3
kafka-ui-react-app/src/lib/hooks/api/kafkaConnect.ts

@@ -135,7 +135,10 @@ export function useCreateConnector(clusterName: ClusterName) {
 export function useDeleteConnector(props: UseConnectorProps) {
   const client = useQueryClient();
 
-  return useMutation(() => api.deleteConnector(props), {
-    onSuccess: () => client.invalidateQueries(connectorsKey(props.clusterName)),
-  });
+  return useMutation(
+    (message: UseConnectorProps) => api.deleteConnector(message),
+    {
+      onSuccess: () => client.invalidateQueries(connectorKey(props)),
+    }
+  );
 }