фикс настроек профиля с фотками
This commit is contained in:
parent
bc15fd1188
commit
cc1e292ad3
@ -399,12 +399,29 @@ const fetchProfileDataLocal = async () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const setAsMainPhoto = async (photoId) => {
|
const setAsMainPhoto = async (photoId) => {
|
||||||
|
if (!photoId) {
|
||||||
|
photoActionError.value = 'Неверный ID фотографии';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
photoActionLoading.value = true;
|
photoActionLoading.value = true;
|
||||||
clearMessages();
|
clearMessages();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
console.log('[ProfileView] Установка главного фото, ID:', photoId);
|
||||||
const response = await api.setMainPhoto(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();
|
await fetchUser();
|
||||||
|
|
||||||
photoActionSuccess.value = response.data.message || 'Главное фото обновлено.';
|
photoActionSuccess.value = response.data.message || 'Главное фото обновлено.';
|
||||||
|
|
||||||
// Автоматически скрываем сообщение через 3 секунды
|
// Автоматически скрываем сообщение через 3 секунды
|
||||||
@ -431,14 +448,29 @@ const closeDeleteModal = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const executeDeletePhoto = async () => {
|
const executeDeletePhoto = async () => {
|
||||||
if (!photoToDeleteId.value) return;
|
if (!photoToDeleteId.value) {
|
||||||
|
photoActionError.value = 'Неверный ID фотографии';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
photoActionLoading.value = true;
|
photoActionLoading.value = true;
|
||||||
clearMessages();
|
clearMessages();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
console.log('[ProfileView] Удаление фото, ID:', photoToDeleteId.value);
|
||||||
const response = await api.deletePhoto(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();
|
await fetchUser();
|
||||||
|
|
||||||
photoActionSuccess.value = response.data.message || 'Фотография удалена.';
|
photoActionSuccess.value = response.data.message || 'Фотография удалена.';
|
||||||
closeDeleteModal();
|
closeDeleteModal();
|
||||||
|
|
||||||
@ -578,6 +610,16 @@ onMounted(async () => {
|
|||||||
.action-btn.small {
|
.action-btn.small {
|
||||||
padding: 0.5rem 1rem;
|
padding: 0.5rem 1rem;
|
||||||
font-size: 0.8rem;
|
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 {
|
.action-btn:disabled {
|
||||||
@ -955,8 +997,11 @@ onMounted(async () => {
|
|||||||
right: 10px;
|
right: 10px;
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 0.5rem;
|
gap: 0.5rem;
|
||||||
opacity: 0;
|
opacity: 1;
|
||||||
transition: opacity 0.3s ease;
|
transition: opacity 0.3s ease;
|
||||||
|
background: rgba(0, 0, 0, 0.7);
|
||||||
|
padding: 0.5rem;
|
||||||
|
border-radius: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.photo-item:hover .photo-actions {
|
.photo-item:hover .photo-actions {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user