фикс настроек профиля с фотками

This commit is contained in:
107 2025-05-23 10:24:43 +07:00
parent bc15fd1188
commit cc1e292ad3

View File

@ -399,12 +399,29 @@ const fetchProfileDataLocal = async () => {
};
const setAsMainPhoto = async (photoId) => {
if (!photoId) {
photoActionError.value = 'Неверный ID фотографии';
return;
}
photoActionLoading.value = true;
clearMessages();
try {
console.log('[ProfileView] Установка главного фото, ID:', photoId);
const response = await api.setMainPhoto(photoId);
console.log('[ProfileView] Ответ сервера:', response.data);
// Обновляем локальные данные сразу для быстрого отклика
if (profileData.value && profileData.value.photos) {
profileData.value.photos.forEach(photo => {
photo.isProfilePhoto = photo._id === photoId;
});
}
// Затем получаем актуальные данные с сервера
await fetchUser();
photoActionSuccess.value = response.data.message || 'Главное фото обновлено.';
// Автоматически скрываем сообщение через 3 секунды
@ -431,14 +448,29 @@ const closeDeleteModal = () => {
};
const executeDeletePhoto = async () => {
if (!photoToDeleteId.value) return;
if (!photoToDeleteId.value) {
photoActionError.value = 'Неверный ID фотографии';
return;
}
photoActionLoading.value = true;
clearMessages();
try {
console.log('[ProfileView] Удаление фото, ID:', photoToDeleteId.value);
const response = await api.deletePhoto(photoToDeleteId.value);
console.log('[ProfileView] Ответ сервера:', response.data);
// Обновляем локальные данные сразу для быстрого отклика
if (profileData.value && profileData.value.photos) {
profileData.value.photos = profileData.value.photos.filter(
photo => photo._id !== photoToDeleteId.value
);
}
// Затем получаем актуальные данные с сервера
await fetchUser();
photoActionSuccess.value = response.data.message || 'Фотография удалена.';
closeDeleteModal();
@ -578,6 +610,16 @@ onMounted(async () => {
.action-btn.small {
padding: 0.5rem 1rem;
font-size: 0.8rem;
min-width: 40px;
height: 40px;
border-radius: 50px;
display: flex;
align-items: center;
justify-content: center;
}
.action-btn.small i {
font-size: 1rem;
}
.action-btn:disabled {
@ -955,8 +997,11 @@ onMounted(async () => {
right: 10px;
display: flex;
gap: 0.5rem;
opacity: 0;
opacity: 1;
transition: opacity 0.3s ease;
background: rgba(0, 0, 0, 0.7);
padding: 0.5rem;
border-radius: 10px;
}
.photo-item:hover .photo-actions {