Eduardo Florence

Snackbar run Get.back multiple times if you tap to dismiss multiple times

@@ -50,6 +50,7 @@ class SnackRoute<T> extends OverlayRoute<T> { @@ -50,6 +50,7 @@ class SnackRoute<T> extends OverlayRoute<T> {
50 Alignment _initialAlignment; 50 Alignment _initialAlignment;
51 Alignment _endAlignment; 51 Alignment _endAlignment;
52 bool _wasDismissedBySwipe = false; 52 bool _wasDismissedBySwipe = false;
  53 + bool _onTappedDismiss = false;
53 54
54 Timer _timer; 55 Timer _timer;
55 56
@@ -62,7 +63,12 @@ class SnackRoute<T> extends OverlayRoute<T> { @@ -62,7 +63,12 @@ class SnackRoute<T> extends OverlayRoute<T> {
62 OverlayEntry( 63 OverlayEntry(
63 builder: (context) { 64 builder: (context) {
64 return GestureDetector( 65 return GestureDetector(
65 - onTap: snack.isDismissible ? Get.back : null, 66 + onTap: () {
  67 + if (snack.isDismissible && !_onTappedDismiss) {
  68 + _onTappedDismiss = true;
  69 + Get.back();
  70 + }
  71 + },
66 child: AnimatedBuilder( 72 child: AnimatedBuilder(
67 animation: _filterBlurAnimation, 73 animation: _filterBlurAnimation,
68 builder: (context, child) { 74 builder: (context, child) {