diff --git a/lib/src/widgets/wolt_modal_sheet_drag_to_dismiss_detector.dart b/lib/src/widgets/wolt_modal_sheet_drag_to_dismiss_detector.dart index d0e584d..91b2c08 100644 --- a/lib/src/widgets/wolt_modal_sheet_drag_to_dismiss_detector.dart +++ b/lib/src/widgets/wolt_modal_sheet_drag_to_dismiss_detector.dart @@ -86,16 +86,14 @@ class WoltModalSheetDragToDismissDetector extends StatelessWidget { } final deltaDiff = details.primaryDelta! / _childHeight; - - switch (_dismissDirection) { - case WoltModalDismissDirection.down: - _animationController.value -= deltaDiff; - break; - case WoltModalDismissDirection.up: - _animationController.value += deltaDiff; - break; - default: - break; + final newValue = switch (_dismissDirection) { + WoltModalDismissDirection.down => _animationController.value - deltaDiff, + WoltModalDismissDirection.up => _animationController.value + deltaDiff, + _ => _animationController.value, + }; + + if (newValue >= 0.01) { + _animationController.value = newValue; } } @@ -157,24 +155,30 @@ class WoltModalSheetDragToDismissDetector extends StatelessWidget { } final delta = -details.primaryDelta! / _childWidth; + double newValue = _animationController.value; + switch (_dismissDirection) { case WoltModalDismissDirection.startToEnd: if (Directionality.of(context) == TextDirection.ltr) { - _animationController.value -= delta; + newValue -= delta; } else { - _animationController.value += delta; + newValue += delta; } break; case WoltModalDismissDirection.endToStart: if (Directionality.of(context) == TextDirection.ltr) { - _animationController.value += delta; + newValue += delta; } else { - _animationController.value -= delta; + newValue -= delta; } break; default: break; } + + if (newValue >= 0.01) { + _animationController.value = newValue; + } } void _handleHorizontalDragEnd(BuildContext context, DragEndDetails details) {