onPanUpdate method

void onPanUpdate(
  1. dynamic details
)

Implementation

void onPanUpdate(details) {
  final dx = details.delta.dx;
  final dy = details.delta.dy;

  if (currentDirection == 'none') {
    if (dx.abs() > dy.abs()) {
      currentDirection = 'horizontal';
    } else if (dy.abs() > dx.abs()) {
      currentDirection = 'vertical';
    }
  }

  // Apply movement based on current direction
  if (currentDirection == 'horizontal') {
    onHorizontalUpdate(DragUpdateDetails(
      globalPosition: details.globalPosition,
      localPosition: details.localPosition,
      delta: Offset(details.delta.dx, 0.0),
      primaryDelta: dx,
    ));
  } else if (currentDirection == 'vertical') {
    onVerticalDragUpdate(DragUpdateDetails(
      globalPosition: details.globalPosition,
      localPosition: details.localPosition,
      delta: Offset(0.0, details.delta.dy),
      primaryDelta: dy,
    ));
  }
  // log('x ${xAxisVal.value.abs()} , y ${dyOffsetVerticalUpdate.value.abs()}');
  // Allow switching back only when both are reset
  if (xAxisVal.value == 0.0 && dyOffsetVerticalUpdate.value.abs() == 0.0) {
    currentDirection = 'none';
    onHorizontalEnd(details);
    isMovingVertical.value = false;
    isReachedLock.value = false;

    // onVerticalDragEnd(details);

    // roundedContainerVal.value = 0;
  }
}