I have user list in table and i wanted to change users status with selected checkbox to Active/Blocked. First i implemented checkbox and according to selected checkboxes i was deleting users with BE using nodejs and mongoose. So i wanted to select all or one user and change its status to Active/Blocked as u can see below screenshot. Can anyone help me? Here i am deleting multiple users:
const [users, setUsers] = useState([]);
const [isCheckAll, setIsCheckAll] = useState(false);
const [isChecked, setisChecked] = useState([]);
const handleDeleteUser = async () => {
const response = await fetch(`http://localhost:3001/users/deleteUsers`, {
method: "DELETE",
body: JSON.stringify(isChecked),
headers: {
"Content-Type": "application/json",
},
});
if(response.status === 200){
const data = await response.json()
setUsers(users.filter(user => !data.find(row => row === user._id)))
}
};
const handlecheckbox = (e) => {
const { value, checked } = e.target;
if (checked) {
setisChecked([...isChecked, value]);
} else {
setisChecked(isChecked.filter((e) => e !== value));
}
};
const handleSelectAll=()=> {
setIsCheckAll(!isCheckAll);
setisChecked(users.map(user => user._id));
if (isCheckAll) {
setisChecked([]);
}
}
Here is BE code :
userRouter.delete("/deleteUsers", async (req, res, next) => {
try {
const selectedUsers = req.body;
// HARD DELETE
UsersModel.deleteMany(
{
_id: {
$in: selectedUsers,
},
},
function (err, result) {
if (err) {
res.status(404).send(err);
} else {
res.status(200).send(selectedUsers);
}
}
);
} catch (error) {
next(error);
}
});
