about summary refs log tree commit diff
path: root/patches/react-native+0.74.1.patch
diff options
context:
space:
mode:
authorHailey <me@haileyok.com>2024-06-17 00:56:02 -0700
committerGitHub <noreply@github.com>2024-06-17 10:56:02 +0300
commit89be5a442cd6d16d68c40bfe342889e9a2bf0b1e (patch)
treee44e1097b69d17b2eb8fc14234af7cea19ceda3c /patches/react-native+0.74.1.patch
parent10c6035f310ba1a3a0420a4e013e2b2b30ddb374 (diff)
downloadvoidsky-89be5a442cd6d16d68c40bfe342889e9a2bf0b1e.tar.zst
Add patch for `RCTBaseTextInput` fixing `selectTextOnFocus` prop (#4533)
* create patch

* remove js fix in `SearchScreen`
Diffstat (limited to 'patches/react-native+0.74.1.patch')
-rw-r--r--patches/react-native+0.74.1.patch46
1 files changed, 36 insertions, 10 deletions
diff --git a/patches/react-native+0.74.1.patch b/patches/react-native+0.74.1.patch
index 5d2900a73..789ba84ac 100644
--- a/patches/react-native+0.74.1.patch
+++ b/patches/react-native+0.74.1.patch
@@ -1,3 +1,29 @@
+diff --git a/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm b/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm
+index b0d71dc..9974932 100644
+--- a/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm
++++ b/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm
+@@ -377,10 +377,6 @@ - (void)textInputDidBeginEditing
+     self.backedTextInputView.attributedText = [NSAttributedString new];
+   }
+
+-  if (_selectTextOnFocus) {
+-    [self.backedTextInputView selectAll:nil];
+-  }
+-
+   [_eventDispatcher sendTextEventWithType:RCTTextEventTypeFocus
+                                  reactTag:self.reactTag
+                                      text:[self.backedTextInputView.attributedText.string copy]
+@@ -611,6 +607,10 @@ - (UIView *)reactAccessibilityElement
+ - (void)reactFocus
+ {
+   [self.backedTextInputView reactFocus];
++
++  if (_selectTextOnFocus) {
++    [self.backedTextInputView selectAll:nil];
++  }
+ }
+
+ - (void)reactBlur
 diff --git a/node_modules/react-native/React/Views/RefreshControl/RCTRefreshControl.h b/node_modules/react-native/React/Views/RefreshControl/RCTRefreshControl.h
 index e9b330f..1ecdf0a 100644
 --- a/node_modules/react-native/React/Views/RefreshControl/RCTRefreshControl.h
@@ -5,7 +31,7 @@ index e9b330f..1ecdf0a 100644
 @@ -16,4 +16,6 @@
  @property (nonatomic, copy) RCTDirectEventBlock onRefresh;
  @property (nonatomic, weak) UIScrollView *scrollView;
- 
+
 +- (void)forwarderBeginRefreshing;
 +
  @end
@@ -16,7 +42,7 @@ index b09e653..4c32b31 100644
 @@ -198,9 +198,53 @@ - (void)refreshControlValueChanged
    [self setCurrentRefreshingState:super.refreshing];
    _refreshingProgrammatically = NO;
- 
+
 +  if (@available(iOS 17.4, *)) {
 +    if (_currentRefreshingState) {
 +      UIImpactFeedbackGenerator *feedbackGenerator = [[UIImpactFeedbackGenerator alloc] initWithStyle:UIImpactFeedbackStyleLight];
@@ -29,7 +55,7 @@ index b09e653..4c32b31 100644
      _onRefresh(nil);
    }
  }
- 
+
 +/*
 + This method is used by Bluesky's ExpoScrollForwarder. This allows other React Native
 + libraries to perform a refresh of a scrollview and access the refresh control's onRefresh
@@ -38,15 +64,15 @@ index b09e653..4c32b31 100644
 +- (void)forwarderBeginRefreshing
 +{
 +  _refreshingProgrammatically = NO;
-+  
++
 +  [self sizeToFit];
-+  
++
 +  if (!self.scrollView) {
 +    return;
 +  }
-+  
++
 +  UIScrollView *scrollView = (UIScrollView *)self.scrollView;
-+  
++
 +  [UIView animateWithDuration:0.3
 +    delay:0
 +    options:UIViewAnimationOptionBeginFromCurrentState
@@ -58,7 +84,7 @@ index b09e653..4c32b31 100644
 +    completion:^(__unused BOOL finished) {
 +      [super beginRefreshing];
 +      [self setCurrentRefreshingState:super.refreshing];
-+    
++
 +      if (self->_onRefresh) {
 +        self->_onRefresh(nil);
 +      }
@@ -73,7 +99,7 @@ index 5f5e1ab..aac00b6 100644
 +++ b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java
 @@ -99,8 +99,9 @@ public class JavaTimerManager {
        }
- 
+
        // If the JS thread is busy for multiple frames we cancel any other pending runnable.
 -      if (mCurrentIdleCallbackRunnable != null) {
 -        mCurrentIdleCallbackRunnable.cancel();
@@ -81,5 +107,5 @@ index 5f5e1ab..aac00b6 100644
 +      if (currentRunnable != null) {
 +        currentRunnable.cancel();
        }
- 
+
        mCurrentIdleCallbackRunnable = new IdleCallbackRunnable(frameTimeNanos);