Skip to content

Commit 2a33a92

Browse files
committed
Implement TurboModule for Android
1 parent ed72571 commit 2a33a92

File tree

6 files changed

+64
-109
lines changed

6 files changed

+64
-109
lines changed

modules/@shopify/checkout-sheet-kit/android/src/main/java/com/shopify/reactnative/checkoutsheetkit/ShopifyCheckoutSheetKitModule.java

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,57 @@ of this software and associated documentation files (the "Software"), to deal
3030
import com.facebook.react.bridge.Promise;
3131
import com.facebook.react.bridge.ReactApplicationContext;
3232
import com.facebook.react.bridge.ReactContextBaseJavaModule;
33+
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
34+
#if RCT_NEW_ARCH_ENABLED
35+
import com.facebook.react.bridge.ReactApplicationContext;
36+
import com.facebook.react.bridge.ReactMethod;
37+
import com.facebook.react.bridge.Promise;
38+
import com.facebook.react.module.annotations.ReactModule;
39+
import com.facebook.react.bridge.ReadableMap;
40+
import com.facebook.react.bridge.WritableNativeMap;
41+
import com.facebook.react.bridge.UiThreadUtil;
42+
import com.facebook.react.bridge.ReadableArray;
43+
import com.facebook.react.bridge.ReactNoCrashSoftException;
44+
import com.facebook.react.module.annotations.ReactModuleList;
45+
import com.facebook.react.bridge.NativeModule;
46+
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
47+
import com.facebook.react.fabric.events.EventDispatcher;
48+
import com.facebook.react.uimanager.events.EventDispatcherImpl;
49+
import com.facebook.react.codegen.module.JavaModuleWrapper;
50+
import com.facebook.react.bridge.ReactMarker;
51+
import com.facebook.react.modules.core.DeviceEventManagerModule;
52+
import com.facebook.react.modules.core.DeviceEventManagerModule.RCTDeviceEventEmitter;
53+
import com.facebook.react.bridge.NoSuchKeyException;
54+
import com.facebook.react.module.model.ReactModuleInfo;
55+
import com.facebook.react.module.model.ReactModuleInfoProvider;
56+
import com.facebook.jni.HybridData;
57+
import com.facebook.proguard.annotations.DoNotStrip;
58+
import com.facebook.react.bridge.JavaScriptContextHolder;
59+
import com.facebook.proguard.annotations.DoNotStripAny;
60+
import com.facebook.react.bridge.queue.MessageQueueThread;
61+
import com.facebook.react.bridge.Dynamic;
62+
import com.facebook.react.bridge.Arguments;
63+
import com.facebook.react.common.MapBuilder;
64+
import com.facebook.react.codegen.ReactNativeFeatureFlags;
65+
import com.facebook.react.bridge.WritableMap;
66+
import com.facebook.react.bridge.ReactSoftExceptionLogger;
67+
import com.facebook.react.bridge.Callback;
68+
import com.facebook.react.modules.core.DeviceEventManagerModule;
69+
import com.facebook.react.bridge.ActivityEventListener;
70+
import com.facebook.react.bridge.BaseJavaModule;
71+
import com.facebook.react.bridge.LifecycleEventListener;
72+
// Generated spec
73+
import com.facebook.react.bridge.ReactContext;
74+
import com.facebook.react.module.annotations.ReactModule;
75+
import com.facebook.react.module.annotations.ReactModuleList;
76+
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
77+
import com.facebook.react.bridge.WritableMap;
78+
import com.facebook.react.bridge.arguments;
79+
import com.facebook.react.module.model.ReactModuleInfo;
80+
import com.facebook.react.module.model.ReactModuleInfoProvider;
81+
import com.facebook.react.module.annotations.ReactModule;
82+
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
83+
#endif
3384
import com.facebook.react.bridge.ReactMethod;
3485
import com.facebook.react.bridge.ReadableMap;
3586
import com.facebook.react.bridge.WritableNativeMap;
@@ -39,7 +90,7 @@ of this software and associated documentation files (the "Software"), to deal
3990
import java.util.Map;
4091
import java.util.Objects;
4192

42-
public class ShopifyCheckoutSheetKitModule extends ReactContextBaseJavaModule {
93+
public class ShopifyCheckoutSheetKitModule extends ReactContextBaseJavaModule implements TurboModule {
4394
private static final String MODULE_NAME = "ShopifyCheckoutSheetKit";
4495

4596
public static Configuration checkoutConfig = new Configuration();

modules/@shopify/checkout-sheet-kit/ios/ShopifyCheckoutSheetKit.mm

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,9 @@ @interface RCT_EXTERN_REMAP_MODULE (ShopifyCheckoutSheetKit, RCTShopifyCheckoutS
7575
/**
7676
* Check if Apple Pay is available
7777
*/
78-
RCT_EXTERN_METHOD(isApplePayAvailable : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject);
78+
RCT_EXTERN_METHOD(isApplePayAvailable : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject)
79+
80+
RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(getVersion)
7981

8082
@end
8183

modules/@shopify/checkout-sheet-kit/ios/ShopifyCheckoutSheetKit.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@ class RCTShopifyCheckoutSheetKit: RCTEventEmitter, CheckoutDelegate {
102102
]
103103
}
104104

105+
@objc func getVersion() -> String {
106+
return ShopifyCheckoutSheetKit.version
107+
}
108+
105109
static func getRootViewController() -> UIViewController? {
106110
return (UIApplication.shared.connectedScenes
107111
.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene)?.windows

modules/@shopify/checkout-sheet-kit/src/index.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,11 @@ class ShopifyCheckoutSheet implements ShopifyCheckoutSheetKit {
109109
}
110110
}
111111

112-
public readonly version: string = RNShopifyCheckoutSheetKit.version;
112+
public readonly version: string =
113+
// Prefer constant; fallback to sync getter if provided by TurboModule.
114+
(RNShopifyCheckoutSheetKit as any).version ??
115+
(RNShopifyCheckoutSheetKit as any).getVersion?.() ??
116+
'unknown';
113117

114118
/**
115119
* Dismisses the currently displayed checkout sheet

modules/@shopify/checkout-sheet-kit/src/native/AcceleratedCheckoutButtonsNativeComponent.tsx

Lines changed: 0 additions & 52 deletions
This file was deleted.

modules/@shopify/checkout-sheet-kit/src/native/NativeShopifyCheckoutSheetKit.ts

Lines changed: 0 additions & 54 deletions
This file was deleted.

0 commit comments

Comments
 (0)