фикс
This commit is contained in:
parent
1f521f01a5
commit
d66853472f
@ -298,9 +298,11 @@ const startTouch = (event) => {
|
|||||||
touchStartX.value = event.touches[0].clientX;
|
touchStartX.value = event.touches[0].clientX;
|
||||||
touchStartY.value = event.touches[0].clientY;
|
touchStartY.value = event.touches[0].clientY;
|
||||||
|
|
||||||
// Сбросить конечные точки
|
// Сбросить конечные точки и время
|
||||||
touchEndX.value = 0;
|
touchEndX.value = 0;
|
||||||
touchEndY.value = 0;
|
touchEndY.value = 0;
|
||||||
|
dragStartTime.value = 0; // Сбрасываем время для touch событий
|
||||||
|
hasActuallyMoved.value = false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -515,7 +517,22 @@ const endDrag = () => {
|
|||||||
const handleCardClick = (event, user) => {
|
const handleCardClick = (event, user) => {
|
||||||
console.log('[SwipeView] handleCardClick вызван для пользователя:', user.name, user._id);
|
console.log('[SwipeView] handleCardClick вызван для пользователя:', user.name, user._id);
|
||||||
|
|
||||||
// Проверяем, что это был именно клик, а не завершение drag/swipe операции
|
// Проверяем, что клик не был на элементах управления каруселью
|
||||||
|
if (event.target.closest('.carousel-nav') ||
|
||||||
|
event.target.closest('.carousel-dots') ||
|
||||||
|
event.target.closest('.dot')) {
|
||||||
|
console.log('[SwipeView] Клик на элементах управления каруселью - не открываем профиль');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Проверяем, что в данный момент не происходит перетаскивание
|
||||||
|
if (isDragging.value || isPanning.value) {
|
||||||
|
console.log('[SwipeView] Клик проигнорирован - идет перетаскивание');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Проверяем, что было реальное движение только если dragStartTime был установлен
|
||||||
|
if (dragStartTime.value > 0) {
|
||||||
const dragDuration = Date.now() - dragStartTime.value;
|
const dragDuration = Date.now() - dragStartTime.value;
|
||||||
const totalMovement = Math.sqrt(
|
const totalMovement = Math.sqrt(
|
||||||
Math.pow(dragOffset.value.x || 0, 2) + Math.pow(dragOffset.value.y || 0, 2)
|
Math.pow(dragOffset.value.x || 0, 2) + Math.pow(dragOffset.value.y || 0, 2)
|
||||||
@ -528,20 +545,18 @@ const handleCardClick = (event, user) => {
|
|||||||
dragOffset: dragOffset.value
|
dragOffset: dragOffset.value
|
||||||
});
|
});
|
||||||
|
|
||||||
// Если было реальное перетаскивание или долгое удержание, не обрабатываем как клик
|
// Если было реальное перетаскивание, не обрабатываем как клик
|
||||||
if (hasActuallyMoved.value || totalMovement > 10 || dragDuration > 300) {
|
if (hasActuallyMoved.value || totalMovement > 10 || dragDuration < 300) {
|
||||||
console.log('[SwipeView] Клик проигнорирован - было перетаскивание');
|
console.log('[SwipeView] Клик проигнорирован - было перетаскивание');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Проверяем, что клик не был на элементах управления каруселью
|
|
||||||
if (event.target.closest('.carousel-nav') ||
|
|
||||||
event.target.closest('.carousel-dots') ||
|
|
||||||
event.target.closest('.dot')) {
|
|
||||||
console.log('[SwipeView] Клик на элементах управления каруселью - не открываем профиль');
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Сбрасываем все состояния перетаскивания для чистого клика
|
||||||
|
dragStartTime.value = 0;
|
||||||
|
hasActuallyMoved.value = false;
|
||||||
|
dragOffset.value = { x: 0, y: 0 };
|
||||||
|
|
||||||
// Открываем полный профиль пользователя
|
// Открываем полный профиль пользователя
|
||||||
console.log('[SwipeView] Переход к профилю пользователя:', user.name, user._id);
|
console.log('[SwipeView] Переход к профилю пользователя:', user.name, user._id);
|
||||||
try {
|
try {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user