directionStateForY function
Four-value Y-axis direction state — mirror of directionStateForX.
Implementation
DragDirectionState directionStateForY({
required double delta,
required Rect currentRect,
required Rect baseRect,
required Rect displayRect,
}) {
final isBottom = boundForY(delta: delta, currentRect: currentRect, baseRect: baseRect) == .bottom;
// Mirror of directionStateForX — past-display semantic depends on size.
final pastDisplay = currentRect.height <= displayRect.height
? (isBottom
? currentRect.bottom > displayRect.bottom
: currentRect.top < displayRect.top)
: (isBottom
? currentRect.top > displayRect.top
: currentRect.bottom < displayRect.bottom);
final extending = isBottom ? delta > 0 : delta < 0;
if (extending) return pastDisplay ? .extendingPast : .extending;
return pastDisplay ? .retractingPast : .retracting;
}