fix get user

This commit is contained in:
Tatiana Nikolaeva 2025-05-26 15:14:23 +05:00
parent b4125d2642
commit 2d129c0493
2 changed files with 31 additions and 15 deletions

View file

@ -30,6 +30,7 @@ export const getCurrentUser = async () => {
if (response.status === 401) { if (response.status === 401) {
localStorage.removeItem("token"); localStorage.removeItem("token");
localStorage.removeItem("user");
throw new Error("Сессия истекла. Пожалуйста, войдите снова."); throw new Error("Сессия истекла. Пожалуйста, войдите снова.");
} }
@ -57,7 +58,8 @@ export const registerUser = async (data: IRegistrationData) => {
localStorage.setItem("token", responseData.accessToken); localStorage.setItem("token", responseData.accessToken);
localStorage.setItem("user", JSON.stringify({ localStorage.setItem("user", JSON.stringify({
firstName: data.firstName, firstName: data.firstName,
lastName: data.lastName lastName: data.lastName,
email: data.email
})); }));
} }
@ -79,13 +81,11 @@ export const authUser = async (data: IAuthData) => {
const token = responseData.accessToken || responseData.token; const token = responseData.accessToken || responseData.token;
if (token) { if (token) {
localStorage.setItem("token", token); localStorage.setItem("token", token);
const user = localStorage.getItem("user");
if (!responseData.user && user) {
responseData.user = JSON.parse(user);
}
if (responseData.user) { if (responseData.user) {
localStorage.setItem("user", JSON.stringify(responseData.user)); localStorage.setItem("user", JSON.stringify(responseData.user));
} else {
const userData = await getCurrentUser();
localStorage.setItem("user", JSON.stringify(userData));
} }
} }

View file

@ -11,20 +11,36 @@ const Account: React.FC<AccountProps> = ({ href }) => {
const [userName, setUserName] = useState<string>(); const [userName, setUserName] = useState<string>();
const [isLoading, setIsLoading] = useState(true); const [isLoading, setIsLoading] = useState(true);
// useEffect(() => {
// const fetchUserData = async () => {
// try {
// const userData = localStorage.getItem("user");
//
// if (userData) {
// const parsedData = JSON.parse(userData);
// setUserName(`${parsedData.firstName} ${parsedData.lastName}`);
// } else {
// const data = await getCurrentUser();
// setUserName(`${data.firstName} ${data.lastName}`);
// }
// } catch (error) {
// console.error("Ошибка загрузки данных пользователя:", error);
// } finally {
// setIsLoading(false);
// }
// };
//
// fetchUserData();
// }, []);
useEffect(() => { useEffect(() => {
const fetchUserData = async () => { const fetchUserData = async () => {
try { try {
const userData = localStorage.getItem("user"); const userData = await getCurrentUser();
setUserName(`${userData.firstName} ${userData.lastName}`);
if (userData) {
const parsedData = JSON.parse(userData);
setUserName(`${parsedData.firstName} ${parsedData.lastName}`);
} else {
const data = await getCurrentUser();
setUserName(`${data.firstName} ${data.lastName}`);
}
} catch (error) { } catch (error) {
console.error("Ошибка загрузки данных пользователя:", error); console.error("Ошибка загрузки данных пользователя:", error);
localStorage.removeItem("user");
} finally { } finally {
setIsLoading(false); setIsLoading(false);
} }