фикс настроек профиля с фотками
This commit is contained in:
parent
bc15fd1188
commit
cc1e292ad3
@ -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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user