miuixGlassNavigationDragTarget function

MiuixGlassNavigationDragTarget miuixGlassNavigationDragTarget({
  1. required double left,
  2. required double width,
  3. required double containerWidth,
  4. required double delta,
  5. required bool changedItem,
  6. double devicePixelRatio = 1,
})

Implementation

MiuixGlassNavigationDragTarget miuixGlassNavigationDragTarget({
  required double left,
  required double width,
  required double containerWidth,
  required double delta,
  required bool changedItem,
  double devicePixelRatio = 1,
}) {
  final start = left.clamp(0.0, math.max(0, containerWidth - width)).toDouble(),
      end = start + width;
  final trail = changedItem
      ? 0.0
      : math.min(delta.abs() * 4, 60 / devicePixelRatio);
  return MiuixGlassNavigationDragTarget(
    delta > 0 && end < containerWidth ? start - trail : start,
    delta < 0 && start > 0 ? end + trail : end,
    !changedItem,
    delta > 0,
  );
}