import { useQueryClient } from '@tanstack/react-query' import { LOCAL_STORAGE_KEYS } from 'common' import { toast } from 'sonner' import ConfirmationModal from 'ui-patterns/Dialogs/ConfirmationModal' import { organizationKeys } from '@/data/organizations/keys' import { useMfaUnenrollMutation } from '@/data/profile/mfa-unenroll-mutation' import { useLocalStorageQuery } from '@/hooks/misc/useLocalStorage' interface DeleteFactorModalProps { visible: boolean factorId: string | null lastFactorToBeDeleted: boolean onClose: () => void } const DeleteFactorModal = ({ visible, factorId, lastFactorToBeDeleted, onClose, }: DeleteFactorModalProps) => { const queryClient = useQueryClient() const [lastVisitedOrganization] = useLocalStorageQuery( LOCAL_STORAGE_KEYS.LAST_VISITED_ORGANIZATION, '' ) const { mutate: unenroll, isPending } = useMfaUnenrollMutation({ onSuccess: async () => { if (lastVisitedOrganization) { await queryClient.invalidateQueries({ queryKey: organizationKeys.members(lastVisitedOrganization), }) } toast.success(`Successfully deleted factor`) onClose() }, }) return ( factorId && unenroll({ factorId })} alert={{ title: lastFactorToBeDeleted ? 'Multi-factor authentication will be disabled' : 'This action cannot be undone', description: lastFactorToBeDeleted ? 'There are no other factors that are set up once you delete this factor, as such your account will no longer be guarded by multi-factor authentication' : 'You will no longer be able to use this authenticator app for multi-factor authentication when signing in to the dashboard', }} >

Before deleting this factor, consider:

) } export default DeleteFactorModal