nestjs_boilerpalte/client/app/hooks/useUser.ts
2024-12-13 09:36:41 +01:00

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;
};