Changes done

This commit is contained in:
bansh_dml 2025-01-03 11:11:52 +05:30
parent 3426fb7c97
commit af42dd88cb

View file

@ -6,40 +6,48 @@ const UserDetails = () => {
const navigate = useNavigate(); const navigate = useNavigate();
const location = useLocation(); const location = useLocation();
const [users, setUsers] = useState(location.state?.users || []);
const [user, setUser] = useState(null); const [user, setUser] = useState(null);
const [error, setError] = useState(null);
useEffect(() => { useEffect(() => {
if (users.length > 0) { const fetchUser = async () => {
const foundUser = users.find((user) => user.id === parseInt(id)); try {
setUser(foundUser); const response = await fetch(
} else { `https://jsonplaceholder.typicode.com/users/${id}`
const fetchUsers = async () => { );
const response = await fetch("https://jsonplaceholder.typicode.com/users");
const data = await response.json(); if (!response.ok) {
setUsers(data); throw new Error("User not found.");
const foundUser = data.find((user) => user.id === parseInt(id)); }
setUser(foundUser);
}; const userData = await response.json();
fetchUsers(); setUser(userData);
} } catch (err) {
}, [id, users]); setError(err.message);
}
};
fetchUser();
}, [id]);
const handleDelete = () => { const handleDelete = () => {
const updatedUsers = users.filter((u) => u.id !== parseInt(id));
alert(`User with ID ${id} deleted.`); alert(`User with ID ${id} deleted.`);
navigate("/", { state: { users: updatedUsers } }); navigate("/", { state: { userIdToDelete: id } });
}; };
if (!user) { if (error) {
return ( return (
<div> <div>
<p>User not found.</p> <p>{error}</p>
<button onClick={() => navigate("/")}>Return to Home</button> <button onClick={() => navigate("/")}>Return to Home</button>
</div> </div>
); );
} }
if (!user) {
return <div>Loading...</div>;
}
return ( return (
<div className="container"> <div className="container">
<h1>User Details</h1> <h1>User Details</h1>