30 lines
843 B
JavaScript
30 lines
843 B
JavaScript
import { useEffect } from "react";
|
|
import { useDispatch } from "react-redux";
|
|
import { setProfile, clearProfile } from "../redux/slices/profileSlice";
|
|
import profileService from "../services/profile";
|
|
|
|
export const useProfile = (shouldFetch = true) => {
|
|
const dispatch = useDispatch();
|
|
|
|
useEffect(() => {
|
|
if (!shouldFetch) return;
|
|
|
|
const fetchProfileData = async () => {
|
|
try {
|
|
const res = await profileService.getProfile();
|
|
if (res?.data?.data) {
|
|
dispatch(setProfile(res.data.data));
|
|
console.log("Profile data fetched:", res.data.data);
|
|
} else {
|
|
dispatch(clearProfile());
|
|
}
|
|
} catch (error) {
|
|
console.error("Error fetching profile:", error);
|
|
dispatch(clearProfile());
|
|
}
|
|
};
|
|
|
|
fetchProfileData();
|
|
}, [shouldFetch, dispatch]);
|
|
};
|