"use client"; import React from "react"; import toast from "react-hot-toast"; import Modal from "@/app/components/Modal/Modal"; import { useDispatch, useSelector } from "react-redux"; import { AppDispatch } from "@/app/redux/store"; import { deleteUser, clearError } from "@/app/redux/user/userSlice"; import { IUser } from "../../Pages/Admin/Users/interfaces"; import Spinner from "@/app/components/Spinner/Spinner"; import { RootState } from "@/app/redux/store"; import { useRouter } from "next/navigation"; import "./DeleteUser.scss"; interface DeleteUserProps { open: boolean; onClose: () => void; user: IUser | null; } const DeleteUser: React.FC = ({ open, onClose, user }) => { const dispatch = useDispatch(); const router = useRouter(); const { status, error } = useSelector((state: RootState) => state.user); const loading = status === "loading"; const handleDelete = async () => { if (!user?.id) { toast.error("No user selected for deletion"); return; } try { const resultAction = await dispatch(deleteUser(user.id)); if (deleteUser.fulfilled.match(resultAction)) { toast.success( resultAction.payload.message || "User deleted successfully" ); dispatch(clearError()); router.refresh(); onClose(); } else if (deleteUser.rejected.match(resultAction)) { toast.error( (resultAction.payload as string) || "Failed to delete user" ); } // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (error: any) { toast.error(error.message || "An unexpected error occurred"); } }; const handleClose = () => { if (!loading) { dispatch(clearError()); onClose(); } }; if (!user) { return null; } return (

Are you sure you want to delete this user? This action cannot be undone.

{user.username}
{user.first_name} {user.last_name}
{user.email}
{error && (
{error}
)}
); }; export default DeleteUser;