From 54168e11b6f071a3106bd87f985269ce12ba5e95 Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 11 Apr 2024 18:22:25 -0700 Subject: [PATCH] remove `viewFromTag` lookup --- .../ios/ExpoScrollForwarderModule.swift | 5 ++-- .../ios/ExpoScrollForwarderView.swift | 28 ++++--------------- 2 files changed, 9 insertions(+), 24 deletions(-) diff --git a/modules/expo-scroll-forwarder/ios/ExpoScrollForwarderModule.swift b/modules/expo-scroll-forwarder/ios/ExpoScrollForwarderModule.swift index c4ecc788e5..87f5b32231 100644 --- a/modules/expo-scroll-forwarder/ios/ExpoScrollForwarderModule.swift +++ b/modules/expo-scroll-forwarder/ios/ExpoScrollForwarderModule.swift @@ -5,8 +5,9 @@ public class ExpoScrollForwarderModule: Module { Name("ExpoScrollForwarder") View(ExpoScrollForwarderView.self) { - Prop("scrollViewTag") { (view: ExpoScrollForwarderView, prop: Int) in - view.scrollViewTag = prop + // Still calling this scrollViewTag even though it is being converted to RCTScrollView + Prop("scrollViewTag") { (view: ExpoScrollForwarderView, prop: RCTScrollView) in + view.rctScrollView = prop } } } diff --git a/modules/expo-scroll-forwarder/ios/ExpoScrollForwarderView.swift b/modules/expo-scroll-forwarder/ios/ExpoScrollForwarderView.swift index 9c0e2f8728..f9f0353031 100644 --- a/modules/expo-scroll-forwarder/ios/ExpoScrollForwarderView.swift +++ b/modules/expo-scroll-forwarder/ios/ExpoScrollForwarderView.swift @@ -1,15 +1,15 @@ import ExpoModulesCore -// This view will be used as a native component. Make sure to inherit from `ExpoView` -// to apply the proper styling (e.g. border radius and shadows). class ExpoScrollForwarderView: ExpoView, UIGestureRecognizerDelegate { - var scrollViewTag: Int? { + var rctScrollView: RCTScrollView? { + willSet { + self.removeCancelGestureRecognizers() + } didSet { - self.tryFindScrollView() + self.rctRefreshCtrl = self.rctScrollView?.scrollView.refreshControl as? RCTRefreshControl + self.addCancelGestureRecognizers() } } - - private var rctScrollView: RCTScrollView? private var rctRefreshCtrl: RCTRefreshControl? private var cancelGestureRecognizers: [UIGestureRecognizer]? private var animTimer: Timer? @@ -162,22 +162,6 @@ class ExpoScrollForwarderView: ExpoView, UIGestureRecognizerDelegate { return offset } - func tryFindScrollView() { - guard let scrollViewTag = scrollViewTag else { - return - } - - // Before we switch to a different scrollview, we always want to remove the cancel gesture recognizer. - // Otherwise we might end up with duplicates when we switch back to that scrollview. - self.removeCancelGestureRecognizers() - - self.rctScrollView = self.appContext? - .findView(withTag: scrollViewTag, ofType: RCTScrollView.self) - self.rctRefreshCtrl = self.rctScrollView?.scrollView.refreshControl as? RCTRefreshControl - - self.addCancelGestureRecognizers() - } - func addCancelGestureRecognizers() { self.cancelGestureRecognizers?.forEach { r in self.rctScrollView?.scrollView?.addGestureRecognizer(r)