Skip to content

Commit 760af0f

Browse files
committed
Switch to new architecture only
1 parent 37cad00 commit 760af0f

File tree

5 files changed

+12
-61
lines changed

5 files changed

+12
-61
lines changed

RNSwanBrowser.podspec

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,12 @@ Pod::Spec.new do |s|
1111
s.author = package["author"]
1212
s.homepage = package["homepage"]
1313

14-
s.platforms = { :ios => "12.4", :tvos => "12.4" }
14+
s.platforms = { :ios => "15.1", :tvos => "15.1" }
1515
s.requires_arc = true
1616

17+
s.frameworks = "SafariServices"
1718
s.source = { :git => package["repository"]["url"], :tag => s.version }
1819
s.source_files = "ios/**/*.{h,m,mm}"
19-
s.frameworks = "SafariServices"
2020

21-
if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
22-
install_modules_dependencies(s)
23-
else
24-
s.dependency "React-Core"
25-
end
21+
install_modules_dependencies(s)
2622
end

ios/RNSwanBrowser.h

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,9 @@
1-
#import <React/RCTEventEmitter.h>
2-
3-
#ifdef RCT_NEW_ARCH_ENABLED
4-
51
#import <RNSwanBrowserSpec/RNSwanBrowserSpec.h>
62

7-
@interface RNSwanBrowser : RCTEventEmitter <NativeRNSwanBrowserSpec>
8-
@end
9-
10-
#else
3+
NS_ASSUME_NONNULL_BEGIN
114

12-
#import <React/RCTBridgeModule.h>
5+
@interface RNSwanBrowser : NativeRNSwanBrowserSpecBase <NativeRNSwanBrowserSpec>
136

14-
@interface RNSwanBrowser : RCTEventEmitter <RCTBridgeModule>
157
@end
168

17-
#endif
9+
NS_ASSUME_NONNULL_END

ios/RNSwanBrowser.mm

Lines changed: 2 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@ @interface RNSwanBrowser() <SFSafariViewControllerDelegate, UIAdaptivePresentati
99

1010
@end
1111

12-
@implementation RNSwanBrowser {
13-
bool hasListeners;
14-
}
12+
@implementation RNSwanBrowser
1513

1614
RCT_EXPORT_MODULE();
1715

@@ -23,24 +21,9 @@ - (dispatch_queue_t)methodQueue {
2321
return dispatch_get_main_queue();
2422
}
2523

26-
- (void)startObserving {
27-
hasListeners = YES;
28-
}
29-
30-
- (void)stopObserving {
31-
hasListeners = NO;
32-
}
33-
34-
- (NSArray<NSString *> *)supportedEvents {
35-
return @[@"swanBrowserDidClose"];
36-
}
37-
3824
- (void)handleOnClose {
3925
_safariVC = nil;
40-
41-
if (hasListeners) {
42-
[self sendEventWithName:@"swanBrowserDidClose" body:nil];
43-
}
26+
[self emitOnClose:true];
4427
}
4528

4629
- (void)presentationControllerDidDismiss:(UIPresentationController *)controller {
@@ -51,7 +34,6 @@ - (void)safariViewControllerDidFinish:(SFSafariViewController *)controller {
5134
[self handleOnClose];
5235
}
5336

54-
#ifdef RCT_NEW_ARCH_ENABLED
5537
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params {
5638
return std::make_shared<facebook::react::NativeRNSwanBrowserSpecJSI>(params);
5739
}
@@ -66,18 +48,6 @@ - (void)open:(NSString *)url
6648
NSNumber *barTintColor = options.barTintColor().has_value() ? [NSNumber numberWithDouble:options.barTintColor().value()] : nil;
6749
NSNumber *controlTintColor = options.controlTintColor().has_value() ? [NSNumber numberWithDouble:options.controlTintColor().value()] : nil;
6850

69-
#else
70-
RCT_EXPORT_METHOD(open:(NSString *)url
71-
options:(NSDictionary * _Nonnull)options
72-
resolve:(RCTPromiseResolveBlock)resolve
73-
reject:(RCTPromiseRejectBlock)reject) {
74-
75-
NSString *animationType = [options valueForKey:@"animationType"];
76-
NSString *dismissButtonStyle = [options valueForKey:@"dismissButtonStyle"];
77-
NSNumber *barTintColor = [options valueForKey:@"barTintColor"];
78-
NSNumber *controlTintColor = [options valueForKey:@"controlTintColor"];
79-
80-
#endif
8151
if (_safariVC != nil) {
8252
return reject(@"swan_browser_visible", @"An instance of the swan browser is already visible", nil);
8353
}
@@ -123,11 +93,7 @@ - (void)open:(NSString *)url
12393
}
12494
}
12595

126-
#ifdef RCT_NEW_ARCH_ENABLED
12796
- (void)close {
128-
#else
129-
RCT_EXPORT_METHOD(close) {
130-
#endif
13197
if (_safariVC != nil) {
13298
[RCTPresentedViewController() dismissViewControllerAnimated:true completion:^{
13399
[self handleOnClose];

src/NativeRNSwanBrowser.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { TurboModule } from "react-native";
22
import { TurboModuleRegistry } from "react-native";
3+
import type { EventEmitter } from "react-native/Libraries/Types/CodegenTypes";
34

45
type Options = {
56
animationType?: string;
@@ -11,9 +12,7 @@ type Options = {
1112
export interface Spec extends TurboModule {
1213
open(url: string, options: Options): Promise<null>;
1314
close(): void;
14-
// Events
15-
addListener: (eventName: string) => void;
16-
removeListeners: (count: number) => void;
15+
readonly onClose: EventEmitter<boolean>;
1716
}
1817

1918
export default TurboModuleRegistry.getEnforcing<Spec>("RNSwanBrowser");

src/index.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
import { Linking, NativeEventEmitter, processColor } from "react-native";
1+
import { Linking, processColor } from "react-native";
22
import NativeModule from "./NativeRNSwanBrowser";
33

4-
const emitter = new NativeEventEmitter(NativeModule);
5-
64
export type AnimationType = "fade" | "slide";
75
export type DismissButtonStyle = "cancel" | "close" | "done";
86

@@ -48,7 +46,7 @@ export const openBrowser = (url: string, options: Options): Promise<void> => {
4846
},
4947
);
5048

51-
const closeListener = emitter.addListener("swanBrowserDidClose", () => {
49+
const closeListener = NativeModule.onClose(() => {
5250
onClose?.(deeplink);
5351

5452
linkListener.remove();

0 commit comments

Comments
 (0)