import { useMutation, useQueryClient } from "@tanstack/react-query" import { useForm } from "react-hook-form" import { UsersService } from "@/client" import { Button } from "@/components/ui/button" import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog" import { LoadingButton } from "@/components/ui/loading-button" import useAuth from "@/hooks/useAuth" import useCustomToast from "@/hooks/useCustomToast" import { handleError } from "@/utils" const DeleteConfirmation = () => { const queryClient = useQueryClient() const { showSuccessToast, showErrorToast } = useCustomToast() const { handleSubmit } = useForm() const { logout } = useAuth() const mutation = useMutation({ mutationFn: () => UsersService.deleteUserMe(), onSuccess: () => { showSuccessToast("Your account has been successfully deleted") logout() }, onError: handleError.bind(showErrorToast), onSettled: () => { queryClient.invalidateQueries({ queryKey: ["currentUser"] }) }, }) const onSubmit = async () => { mutation.mutate() } return (
Confirmation Required All your account data will be{" "} permanently deleted. If you are sure, please click "Confirm" to proceed. This action cannot be undone. Delete
) } export default DeleteConfirmation