фикс бесконечной загрузки профиля
This commit is contained in:
parent
abc551e31d
commit
e9aaad9d7c
@ -425,7 +425,10 @@ const toggleEditMode = async () => {
|
|||||||
if (hasChanges) {
|
if (hasChanges) {
|
||||||
// Если были изменения, автоматически сохраняем профиль
|
// Если были изменения, автоматически сохраняем профиль
|
||||||
await saveProfileChanges();
|
await saveProfileChanges();
|
||||||
}
|
} else {
|
||||||
|
// Если изменений не было, просто обновляем UI
|
||||||
|
console.log('[ProfileView] Изменений не обнаружено, пропускаем сохранение');
|
||||||
|
}
|
||||||
|
|
||||||
// В любом случае переключаемся в режим просмотра
|
// В любом случае переключаемся в режим просмотра
|
||||||
isEditMode.value = false;
|
isEditMode.value = false;
|
||||||
@ -437,7 +440,7 @@ const toggleEditMode = async () => {
|
|||||||
// Копируем данные профиля в редактируемый объект
|
// Копируем данные профиля в редактируемый объект
|
||||||
// Преобразуем формат даты из ISO в yyyy-MM-dd
|
// Преобразуем формат даты из ISO в yyyy-MM-dd
|
||||||
let formattedDate = '';
|
let formattedDate = '';
|
||||||
if (profileData.value.dateOfBirth) {
|
if (profileData.value && profileData.value.dateOfBirth) {
|
||||||
try {
|
try {
|
||||||
const date = new Date(profileData.value.dateOfBirth);
|
const date = new Date(profileData.value.dateOfBirth);
|
||||||
formattedDate = date.toISOString().split('T')[0]; // Получаем только yyyy-MM-dd часть
|
formattedDate = date.toISOString().split('T')[0]; // Получаем только yyyy-MM-dd часть
|
||||||
@ -448,12 +451,12 @@ const toggleEditMode = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
editableProfileData.value = {
|
editableProfileData.value = {
|
||||||
name: profileData.value.name || '',
|
name: profileData.value?.name || '',
|
||||||
bio: profileData.value.bio || '',
|
bio: profileData.value?.bio || '',
|
||||||
dateOfBirth: formattedDate,
|
dateOfBirth: formattedDate,
|
||||||
gender: profileData.value.gender || '',
|
gender: profileData.value?.gender || '',
|
||||||
location: {
|
location: {
|
||||||
city: profileData.value.location?.city || '',
|
city: profileData.value?.location?.city || '',
|
||||||
// Можно добавить другие поля местоположения, если они есть
|
// Можно добавить другие поля местоположения, если они есть
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -462,16 +465,22 @@ const toggleEditMode = async () => {
|
|||||||
originalProfileData = JSON.stringify(editableProfileData.value);
|
originalProfileData = JSON.stringify(editableProfileData.value);
|
||||||
|
|
||||||
// Устанавливаем поисковый запрос города
|
// Устанавливаем поисковый запрос города
|
||||||
if (profileData.value.location?.city) {
|
if (profileData.value?.location?.city) {
|
||||||
citySearchQuery.value = profileData.value.location.city;
|
citySearchQuery.value = profileData.value.location.city;
|
||||||
|
} else {
|
||||||
|
citySearchQuery.value = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Устанавливаем поисковый запрос пола
|
// Устанавливаем поисковый запрос пола
|
||||||
if (profileData.value.gender) {
|
if (profileData.value?.gender) {
|
||||||
const genderOption = genderOptions.value.find(option => option.value === profileData.value.gender);
|
const genderOption = genderOptions.value.find(option => option.value === profileData.value.gender);
|
||||||
if (genderOption) {
|
if (genderOption) {
|
||||||
genderSearchQuery.value = genderOption.text;
|
genderSearchQuery.value = genderOption.text;
|
||||||
|
} else {
|
||||||
|
genderSearchQuery.value = '';
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
genderSearchQuery.value = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -711,7 +720,17 @@ const fetchProfileDataLocal = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await fetchUser();
|
await fetchUser();
|
||||||
|
|
||||||
|
// После выполнения fetchUser проверяем, что данные получены
|
||||||
|
if (!authUserFromStore.value) {
|
||||||
|
console.error('[ProfileView] Пользователь не загружен после fetchUser');
|
||||||
|
error.value = 'Не удалось загрузить данные профиля. Попробуйте позже.';
|
||||||
|
} else {
|
||||||
|
// Обновляем данные профиля из полученных данных пользователя
|
||||||
|
profileData.value = { ...authUserFromStore.value };
|
||||||
|
console.log('[ProfileView] Данные профиля обновлены:', profileData.value);
|
||||||
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('[ProfileView] Ошибка при вызове fetchUser:', err);
|
console.error('[ProfileView] Ошибка при вызове fetchUser:', err);
|
||||||
error.value = (err.response && err.response.data && err.response.data.message)
|
error.value = (err.response && err.response.data && err.response.data.message)
|
||||||
@ -814,11 +833,12 @@ const executeDeletePhoto = async () => {
|
|||||||
|
|
||||||
const saveProfileChanges = async () => {
|
const saveProfileChanges = async () => {
|
||||||
profileLoading.value = true;
|
profileLoading.value = true;
|
||||||
|
loading.value = true; // Устанавливаем общий индикатор загрузки
|
||||||
clearProfileMessages();
|
clearProfileMessages();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
console.log('[ProfileView] Сохранение данных профиля:', editableProfileData.value);
|
console.log('[ProfileView] Сохранение данных профиля:', editableProfileData.value);
|
||||||
// Подготавливаем данные для отправки на сервер
|
// Подготавливаем данные для отправки на сервер
|
||||||
const dataToUpdate = { ...editableProfileData.value };
|
const dataToUpdate = { ...editableProfileData.value };
|
||||||
|
|
||||||
// Обрабатываем дату рождения - если это строка с датой в формате yyyy-MM-dd
|
// Обрабатываем дату рождения - если это строка с датой в формате yyyy-MM-dd
|
||||||
@ -855,6 +875,8 @@ const saveProfileChanges = async () => {
|
|||||||
'Произошла ошибка при обновлении профиля. Пожалуйста, попробуйте позже.';
|
'Произошла ошибка при обновлении профиля. Пожалуйста, попробуйте позже.';
|
||||||
} finally {
|
} finally {
|
||||||
profileLoading.value = false;
|
profileLoading.value = false;
|
||||||
|
loading.value = false; // Сбрасываем общий индикатор загрузки
|
||||||
|
initialLoading.value = false; // Убеждаемся, что initialLoading тоже сброшен
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user