about summary refs log tree commit diff
path: root/patches/react-native-pager-view+6.1.4.patch
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2023-03-19 18:53:57 -0500
committerGitHub <noreply@github.com>2023-03-19 18:53:57 -0500
commit1de724b24b9607d4ee83dc0dbb92c13b2b77dcaf (patch)
treede1b244a976e55818f1181e6bf2b727237aff7c2 /patches/react-native-pager-view+6.1.4.patch
parentc31ffdac1b970d8d51c538f931cc64a942670740 (diff)
downloadvoidsky-1de724b24b9607d4ee83dc0dbb92c13b2b77dcaf.tar.zst
Add custom feeds selector, rework search, simplify onboarding (#325)
* Get home screen's swipable pager working with the drawer

* Add tab bar to pager

* Implement popular & following views on home screen

* Visual tune-up

* Move the feed selector to the footer

* Fix to 'new posts' poll

* Add the view header as a feed item

* Use the native driver on the tabbar indicator to improve perf

* Reduce home polling to the currently active page; also reuse some code

* Add soft reset on tap selected in tab bar

* Remove explicit 'onboarding' flow

* Choose good stuff based on service

* Add foaf-based follow discovery

* Fall back to who to follow

* Fix backgrounds

* Switch to the off-spec goodstuff route

* 1.8

* Fix for dev & staging

* Swap the tab bar items and rename suggested to what's hot

* Go to whats-hot by default if you have no follows

* Implement pager and tabbar for desktop web

* Pin deps to make expo happy

* Add language filtering to goodstuff
Diffstat (limited to 'patches/react-native-pager-view+6.1.4.patch')
-rw-r--r--patches/react-native-pager-view+6.1.4.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/patches/react-native-pager-view+6.1.4.patch b/patches/react-native-pager-view+6.1.4.patch
new file mode 100644
index 000000000..adee2533f
--- /dev/null
+++ b/patches/react-native-pager-view+6.1.4.patch
@@ -0,0 +1,54 @@
+diff --git a/node_modules/react-native-pager-view/ios/ReactNativePageView.m b/node_modules/react-native-pager-view/ios/ReactNativePageView.m
+index ab0fc7f..fbbf19f 100644
+--- a/node_modules/react-native-pager-view/ios/ReactNativePageView.m
++++ b/node_modules/react-native-pager-view/ios/ReactNativePageView.m
+@@ -1,6 +1,6 @@
+ 
+ #import "ReactNativePageView.h"
+-#import "React/RCTLog.h"
++#import <React/RCTLog.h>
+ #import <React/RCTViewManager.h>
+ 
+ #import "UIViewController+CreateExtension.h"
+@@ -9,7 +9,7 @@
+ #import "RCTOnPageSelected.h"
+ #import <math.h>
+ 
+-@interface ReactNativePageView () <UIPageViewControllerDataSource, UIPageViewControllerDelegate, UIScrollViewDelegate>
++@interface ReactNativePageView () <UIPageViewControllerDataSource, UIPageViewControllerDelegate, UIScrollViewDelegate, UIGestureRecognizerDelegate>
+ 
+ @property(nonatomic, strong) UIPageViewController *reactPageViewController;
+ @property(nonatomic, strong) RCTEventDispatcher *eventDispatcher;
+@@ -80,6 +80,10 @@
+         [self setupInitialController];
+     }
+ 
++    UIPanGestureRecognizer* panGestureRecognizer = [UIPanGestureRecognizer new];
++    panGestureRecognizer.delegate = self;
++    [self addGestureRecognizer: panGestureRecognizer];
++
+     if (self.reactViewController.navigationController != nil && self.reactViewController.navigationController.interactivePopGestureRecognizer != nil) {
+         [self.scrollView.panGestureRecognizer requireGestureRecognizerToFail:self.reactViewController.navigationController.interactivePopGestureRecognizer];
+     }
+@@ -463,4 +467,21 @@
+ - (BOOL)isLtrLayout {
+     return [_layoutDirection isEqualToString:@"ltr"];
+ }
++
++- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
++    if (otherGestureRecognizer == self.scrollView.panGestureRecognizer) {
++        UIPanGestureRecognizer* p = (UIPanGestureRecognizer*) gestureRecognizer;
++        CGPoint velocity = [p velocityInView:self];
++        if (self.currentIndex == 0 && velocity.x > 0) {
++            self.scrollView.panGestureRecognizer.enabled = false;
++            return NO;
++        } else {
++            self.scrollView.panGestureRecognizer.enabled = self.scrollEnabled;
++        }
++    } else {
++        self.scrollView.panGestureRecognizer.enabled = self.scrollEnabled;
++    }
++    
++    return YES;
++}
+ @end