34 lines
785 B
TypeScript
34 lines
785 B
TypeScript
import { useEffect } from "react";
|
|
import { useAuth } from "./useAuth";
|
|
|
|
export const useUser = () => {
|
|
const { token, user, setUser } = useAuth();
|
|
console.log(user);
|
|
|
|
useEffect(() => {
|
|
const fetchUser = async () => {
|
|
if (!token || user) return;
|
|
|
|
try {
|
|
const response = await fetch("http://localhost:3000/api/users/me", {
|
|
headers: {
|
|
Authorization: `Bearer ${token}`,
|
|
},
|
|
});
|
|
|
|
if (!response.ok) throw new Error("Failed to fetch user");
|
|
|
|
const userData = await response.json();
|
|
setUser(userData);
|
|
} catch (error) {
|
|
console.error("Error fetching user:", error);
|
|
useAuth.getState().logout();
|
|
}
|
|
};
|
|
|
|
fetchUser();
|
|
}, [token, user, setUser]);
|
|
|
|
return user;
|
|
};
|