All files / src/components/ProfileMenu/modals/hooks useDeleteTrustedDevice.tsx

72.72% Statements 8/11
0% Branches 0/2
75% Functions 3/4
72.72% Lines 8/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32          8x 5x 5x               1x 1x       5x       1x     5x        
import { showMessage } from "@common/Toast";
import { deleteTrustedDevices } from "@services/api/2FA/trustedDevices";
import { AxiosError } from "axios";
import { useMutation, useQueryClient } from "react-query";
 
export const useDeleteTrustedDevice = () => {
  const queryClient = useQueryClient();
  const deleteMutation = useMutation(deleteTrustedDevices, {
    onSuccess: (res, variables) => {
      queryClient.invalidateQueries("get-trusted-devices");
      if (variables.excludeFingerprintToken) {
        showMessage("Success", "", undefined, "All trusted devices removed");
      }
    },
    onError: (error: unknown) => {
      const axiosError = error as AxiosError;
      showMessage("Error", axiosError.message, true);
    },
  });
 
  const handleDelete = (
    deviceId?: number,
    excludeFingerprintToken?: string,
  ) => {
    deleteMutation.mutate({ deviceId, excludeFingerprintToken });
  };
 
  return {
    handleDelete,
  };
};