From 5cd82d6c5f95ead9d8096cd2cf54333a8390210f Mon Sep 17 00:00:00 2001 From: MrRefactor Date: Mon, 2 Dec 2024 14:20:22 +0100 Subject: [PATCH] refactor(iOS): Migrate RCTOnPageSelected to swift --- ios/Events/OnPageSelected.swift | 41 +++++++++++++ ios/RCTOnPageSelected.h | 14 ----- ios/RCTOnPageSelected.m | 60 ------------------- ios/RNCPagerView.m | 1 - ios/react-native-pager-view-Bridging-Header.h | 1 + 5 files changed, 42 insertions(+), 75 deletions(-) create mode 100644 ios/Events/OnPageSelected.swift delete mode 100644 ios/RCTOnPageSelected.h delete mode 100644 ios/RCTOnPageSelected.m diff --git a/ios/Events/OnPageSelected.swift b/ios/Events/OnPageSelected.swift new file mode 100644 index 00000000..3e4404a0 --- /dev/null +++ b/ios/Events/OnPageSelected.swift @@ -0,0 +1,41 @@ +import Foundation +import React + +@objc public class RCTOnPageSelected: NSObject, RCTEvent { + private var position: NSNumber + @objc public var viewTag: NSNumber + @objc public var coalescingKey: UInt16 + + @objc public var eventName: String { + return "onPageSelected" + } + + @objc public init(reactTag: NSNumber, position: NSNumber, coalescingKey: UInt16) { + self.viewTag = reactTag + self.position = position + self.coalescingKey = coalescingKey + super.init() + } + + @objc public func canCoalesce() -> Bool { + return false + } + + public func coalesce(with newEvent: RCTEvent) -> RCTEvent { + return newEvent + } + + @objc public class func moduleDotMethod() -> String { + return "RCTEventEmitter.receiveEvent" + } + + @objc public func arguments() -> [Any] { + return [ + viewTag, + RCTNormalizeInputEventName(eventName) ?? eventName, + [ + "position": position + ] + ] + } +} diff --git a/ios/RCTOnPageSelected.h b/ios/RCTOnPageSelected.h deleted file mode 100644 index dd88dd91..00000000 --- a/ios/RCTOnPageSelected.h +++ /dev/null @@ -1,14 +0,0 @@ -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface RCTOnPageSelected : NSObject - -- (instancetype) initWithReactTag:(NSNumber *)reactTag - position:(NSNumber *)position - coalescingKey:(uint16_t)coalescingKey; - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/RCTOnPageSelected.m b/ios/RCTOnPageSelected.m deleted file mode 100644 index ebe1ad73..00000000 --- a/ios/RCTOnPageSelected.m +++ /dev/null @@ -1,60 +0,0 @@ -#import -#import "RCTOnPageSelected.h" - -@implementation RCTOnPageSelected -{ - NSNumber* _position; - uint16_t _coalescingKey; -} - -@synthesize viewTag = _viewTag; - -- (NSString *)eventName { - return @"onPageSelected"; -} - -- (instancetype) initWithReactTag:(NSNumber *)reactTag - position:(NSNumber *)position - coalescingKey:(uint16_t)coalescingKey; -{ - RCTAssertParam(reactTag); - - if ((self = [super init])) { - _viewTag = reactTag; - _position = position; - _coalescingKey = coalescingKey; - } - return self; -} - -RCT_NOT_IMPLEMENTED(- (instancetype)init) -- (uint16_t)coalescingKey -{ - return _coalescingKey; -} - - -- (BOOL)canCoalesce -{ - return NO; -} - -+ (NSString *)moduleDotMethod -{ - return @"RCTEventEmitter.receiveEvent"; -} - -- (NSArray *)arguments -{ - return @[self.viewTag, RCTNormalizeInputEventName(self.eventName), @{ - @"position": _position, - }]; -} - -- (id)coalesceWithEvent:(id)newEvent; -{ - return newEvent; -} - -@end - diff --git a/ios/RNCPagerView.m b/ios/RNCPagerView.m index 4c67dc8f..06959b5b 100644 --- a/ios/RNCPagerView.m +++ b/ios/RNCPagerView.m @@ -4,7 +4,6 @@ #import "UIViewController+CreateExtension.h" #import "RCTOnPageScrollStateChanged.h" -#import "RCTOnPageSelected.h" #import #if __has_include("react_native_pager_view/react_native_pager_view-Swift.h") diff --git a/ios/react-native-pager-view-Bridging-Header.h b/ios/react-native-pager-view-Bridging-Header.h index b4a33181..c75a6220 100644 --- a/ios/react-native-pager-view-Bridging-Header.h +++ b/ios/react-native-pager-view-Bridging-Header.h @@ -2,3 +2,4 @@ #import #import #import +#import