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