From 74140b6541142f0d7002c829576a95210f721cca Mon Sep 17 00:00:00 2001 From: Artal Druk Date: Sun, 22 May 2016 12:20:16 +0300 Subject: [PATCH] support onSwipeStart event also don't zero the onWillBounceBack and onBouncedBack callbacks since they can be called multiple times. --- ios/lib/SwipeViewManager.m | 10 ++++++++-- package.json | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ios/lib/SwipeViewManager.m b/ios/lib/SwipeViewManager.m index f177356..be029d9 100644 --- a/ios/lib/SwipeViewManager.m +++ b/ios/lib/SwipeViewManager.m @@ -20,6 +20,7 @@ @interface SwipeView : UIView @property (nonatomic) BOOL changeAlpha; @property (nonatomic) CGFloat bounceBackAnimDuration; @property (nonatomic) CGFloat bounceBackAnimDamping; +@property (nonatomic, copy) RCTDirectEventBlock onSwipeStart; @property (nonatomic, copy) RCTDirectEventBlock onWillBeSwipedOut; @property (nonatomic, copy) RCTDirectEventBlock onSwipedOut; @property (nonatomic, copy) RCTDirectEventBlock onWillBounceBack; @@ -110,6 +111,12 @@ -(void)onPanGesture:(UIPanGestureRecognizer*)panGesture } [self cancelCurrentTouch]; + + NSString *directionString = ([panGesture velocityInView:self].x < 0) ? @"left" : @"right"; + if (_onSwipeStart) + { + _onSwipeStart(@{@"direction": directionString}); + } } else if(panGesture.state == UIGestureRecognizerStateChanged) { @@ -162,7 +169,6 @@ -(void)onPanGesture:(UIPanGestureRecognizer*)panGesture if (_onWillBounceBack) { _onWillBounceBack(@{}); - self.onWillBounceBack = nil; } [UIView animateWithDuration:self.bounceBackAnimDuration @@ -181,7 +187,6 @@ -(void)onPanGesture:(UIPanGestureRecognizer*)panGesture if (_onBouncedBack) { _onBouncedBack(@{}); - self.onBouncedBack = nil; } }]; } @@ -203,6 +208,7 @@ - (UIView *)view RCT_REMAP_VIEW_PROPERTY(minPanToComplete, minPanToComplete, CGFloat) RCT_REMAP_VIEW_PROPERTY(bounceBackAnimDuration, bounceBackAnimDuration, CGFloat) RCT_REMAP_VIEW_PROPERTY(bounceBackAnimDamping, bounceBackAnimDamping, CGFloat) +RCT_REMAP_VIEW_PROPERTY(onSwipeStart, onSwipeStart, RCTDirectEventBlock) RCT_REMAP_VIEW_PROPERTY(onWillBeSwipedOut, onWillBeSwipedOut, RCTDirectEventBlock) RCT_REMAP_VIEW_PROPERTY(onSwipedOut, onSwipedOut, RCTDirectEventBlock) RCT_REMAP_VIEW_PROPERTY(onWillBounceBack, onWillBounceBack, RCTDirectEventBlock) diff --git a/package.json b/package.json index c1bb119..d1078e5 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "type": "git", "url": "https://github.com/wix/react-native-swipe-view.git" }, - "version": "2.0.0", + "version": "2.0.1", "description": "Native container view for enabling swipe actions (for example to enable swipe to delete and such)", "nativePackage": true, "bugs": {