Merge branch 'correction' into 'unstable'

fix get user

See merge request internship-2025/survey-webapp/survey-webapp!24
This commit is contained in:
Tatyana Nikolaeva 2025-05-26 10:21:47 +00:00
commit 153f38d6b2
2 changed files with 31 additions and 15 deletions

View file

@ -30,6 +30,7 @@ export const getCurrentUser = async () => {
if (response.status === 401) {
localStorage.removeItem("token");
localStorage.removeItem("user");
throw new Error("Сессия истекла. Пожалуйста, войдите снова.");
}
@ -57,7 +58,8 @@ export const registerUser = async (data: IRegistrationData) => {
localStorage.setItem("token", responseData.accessToken);
localStorage.setItem("user", JSON.stringify({
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;
if (token) {
localStorage.setItem("token", token);
const user = localStorage.getItem("user");
if (!responseData.user && user) {
responseData.user = JSON.parse(user);
}
if (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 [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(() => {
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}`);
}
const userData = await getCurrentUser();
setUserName(`${userData.firstName} ${userData.lastName}`);
} catch (error) {
console.error("Ошибка загрузки данных пользователя:", error);
localStorage.removeItem("user");
} finally {
setIsLoading(false);
}