This commit is contained in:
Professional 2025-05-24 01:53:47 +07:00
parent 1f521f01a5
commit d66853472f

View File

@ -298,9 +298,11 @@ const startTouch = (event) => {
touchStartX.value = event.touches[0].clientX;
touchStartY.value = event.touches[0].clientY;
// Сбросить конечные точки
// Сбросить конечные точки и время
touchEndX.value = 0;
touchEndY.value = 0;
dragStartTime.value = 0; // Сбрасываем время для touch событий
hasActuallyMoved.value = false;
}
};
@ -515,25 +517,6 @@ const endDrag = () => {
const handleCardClick = (event, user) => {
console.log('[SwipeView] handleCardClick вызван для пользователя:', user.name, user._id);
// Проверяем, что это был именно клик, а не завершение drag/swipe операции
const dragDuration = Date.now() - dragStartTime.value;
const totalMovement = Math.sqrt(
Math.pow(dragOffset.value.x || 0, 2) + Math.pow(dragOffset.value.y || 0, 2)
);
console.log('[SwipeView] Проверка клика:', {
hasActuallyMoved: hasActuallyMoved.value,
totalMovement,
dragDuration,
dragOffset: dragOffset.value
});
// Если было реальное перетаскивание или долгое удержание, не обрабатываем как клик
if (hasActuallyMoved.value || totalMovement > 10 || dragDuration > 300) {
console.log('[SwipeView] Клик проигнорирован - было перетаскивание');
return;
}
// Проверяем, что клик не был на элементах управления каруселью
if (event.target.closest('.carousel-nav') ||
event.target.closest('.carousel-dots') ||
@ -542,6 +525,38 @@ const handleCardClick = (event, user) => {
return;
}
// Проверяем, что в данный момент не происходит перетаскивание
if (isDragging.value || isPanning.value) {
console.log('[SwipeView] Клик проигнорирован - идет перетаскивание');
return;
}
// Проверяем, что было реальное движение только если dragStartTime был установлен
if (dragStartTime.value > 0) {
const dragDuration = Date.now() - dragStartTime.value;
const totalMovement = Math.sqrt(
Math.pow(dragOffset.value.x || 0, 2) + Math.pow(dragOffset.value.y || 0, 2)
);
console.log('[SwipeView] Проверка клика:', {
hasActuallyMoved: hasActuallyMoved.value,
totalMovement,
dragDuration,
dragOffset: dragOffset.value
});
// Если было реальное перетаскивание, не обрабатываем как клик
if (hasActuallyMoved.value || totalMovement > 10 || dragDuration < 300) {
console.log('[SwipeView] Клик проигнорирован - было перетаскивание');
return;
}
}
// Сбрасываем все состояния перетаскивания для чистого клика
dragStartTime.value = 0;
hasActuallyMoved.value = false;
dragOffset.value = { x: 0, y: 0 };
// Открываем полный профиль пользователя
console.log('[SwipeView] Переход к профилю пользователя:', user.name, user._id);
try {