react-native-purchases-ui 8.8.2 → 8.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,6 +17,6 @@ Pod::Spec.new do |spec|
17
17
  spec.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
18
18
 
19
19
  spec.dependency "React-Core"
20
- spec.dependency "PurchasesHybridCommonUI", '13.25.0'
20
+ spec.dependency "PurchasesHybridCommonUI", '13.26.0'
21
21
  spec.swift_version = '5.7'
22
22
  end
@@ -59,7 +59,7 @@ android {
59
59
  minSdkVersion getExtOrIntegerDefault("minSdkVersion")
60
60
  targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
61
61
  versionCode 1
62
- versionName '8.8.2'
62
+ versionName '8.9.1'
63
63
  }
64
64
 
65
65
  buildTypes {
@@ -91,7 +91,7 @@ dependencies {
91
91
  //noinspection GradleDynamicVersion
92
92
  implementation "com.facebook.react:react-native:+"
93
93
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
94
- implementation 'com.revenuecat.purchases:purchases-hybrid-common-ui:13.25.0'
94
+ implementation 'com.revenuecat.purchases:purchases-hybrid-common-ui:13.26.0'
95
95
  implementation 'androidx.compose.ui:ui-android:1.5.4'
96
96
  implementation "androidx.appcompat:appcompat:1.6.1"
97
97
  }
@@ -9,10 +9,16 @@ import com.facebook.react.bridge.Promise
9
9
  import com.facebook.react.bridge.ReactApplicationContext
10
10
  import com.facebook.react.bridge.ReactContextBaseJavaModule
11
11
  import com.facebook.react.bridge.ReactMethod
12
+ import com.facebook.react.bridge.WritableMap
13
+ import com.facebook.react.bridge.WritableNativeMap
14
+ import com.facebook.react.modules.core.DeviceEventManagerModule
15
+ import com.revenuecat.purchases.Purchases
16
+ import com.revenuecat.purchases.customercenter.CustomerCenterListener
17
+ import com.revenuecat.purchases.hybridcommon.ui.CustomerCenterListenerWrapper
12
18
  import com.revenuecat.purchases.ui.revenuecatui.customercenter.ShowCustomerCenter
13
19
 
14
20
  internal class RNCustomerCenterModule(
15
- reactContext: ReactApplicationContext
21
+ private val reactContext: ReactApplicationContext
16
22
  ) : ReactContextBaseJavaModule(reactContext) {
17
23
 
18
24
  companion object {
@@ -84,9 +90,63 @@ internal class RNCustomerCenterModule(
84
90
  private fun presentCustomerCenterFromActivity(
85
91
  activity: Activity
86
92
  ) {
93
+ val customerCenterListener = createCustomerCenterListener()
94
+ Purchases.sharedInstance.customerCenterListener = customerCenterListener
87
95
  val intent = ShowCustomerCenter()
88
96
  .createIntent(activity, Unit)
89
97
  activity.startActivityForResult(intent, REQUEST_CODE_CUSTOMER_CENTER)
90
98
  }
91
99
 
100
+ private fun createCustomerCenterListener(): CustomerCenterListener {
101
+ return object : CustomerCenterListenerWrapper() {
102
+ override fun onFeedbackSurveyCompletedWrapper(feedbackSurveyOptionId: String) {
103
+ val params = WritableNativeMap().apply {
104
+ putString("feedbackSurveyOptionId", feedbackSurveyOptionId)
105
+ }
106
+ sendEvent("onFeedbackSurveyCompleted", params)
107
+ }
108
+
109
+ override fun onManagementOptionSelectedWrapper(action: String, url: String?) {
110
+ val params = WritableNativeMap().apply {
111
+ putString("option", action)
112
+ putString("url", url)
113
+ }
114
+ sendEvent("onManagementOptionSelected", params)
115
+ }
116
+
117
+ override fun onShowingManageSubscriptionsWrapper() {
118
+ sendEvent("onShowingManageSubscriptions", null)
119
+ }
120
+
121
+ override fun onRestoreCompletedWrapper(customerInfo: Map<String, Any?>) {
122
+ val params = WritableNativeMap().apply {
123
+ putMap("customerInfo", RNPurchasesConverters.convertMapToWriteableMap(customerInfo))
124
+ }
125
+ sendEvent("onRestoreCompleted", params)
126
+ }
127
+
128
+ override fun onRestoreFailedWrapper(error: Map<String, Any?>) {
129
+ val params = WritableNativeMap().apply {
130
+ putMap("error", RNPurchasesConverters.convertMapToWriteableMap(error))
131
+ }
132
+ sendEvent("onRestoreFailed", params)
133
+ }
134
+
135
+ override fun onRestoreStartedWrapper() {
136
+ sendEvent("onRestoreStarted", null)
137
+ }
138
+ }
139
+ }
140
+
141
+ private fun sendEvent(eventName: String, params: WritableMap?) {
142
+ reactContext.runOnUiQueueThread {
143
+ try {
144
+ reactContext
145
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
146
+ .emit(eventName, params)
147
+ } catch (e: Exception) {
148
+ Log.e(NAME, "Error sending event $eventName", e)
149
+ }
150
+ }
151
+ }
92
152
  }
@@ -10,7 +10,7 @@
10
10
  @import PurchasesHybridCommonUI;
11
11
  @import RevenueCat;
12
12
 
13
- @interface RNCustomerCenter ()
13
+ @interface RNCustomerCenter () <RCCustomerCenterViewControllerDelegateWrapper>
14
14
 
15
15
  @property (nonatomic, strong) id customerCenterProxy;
16
16
 
@@ -41,6 +41,7 @@ RCT_EXPORT_MODULE();
41
41
  - (void)initializeCustomerCenter {
42
42
  if (@available(iOS 15.0, *)) {
43
43
  self.customerCenterProxy = [CustomerCenterProxy new];
44
+ [(CustomerCenterProxy *)self.customerCenterProxy setDelegate:self];
44
45
  } else {
45
46
  self.customerCenterProxy = nil;
46
47
  }
@@ -49,7 +50,17 @@ RCT_EXPORT_MODULE();
49
50
  // MARK: -
50
51
 
51
52
  - (NSArray<NSString *> *)supportedEvents {
52
- return @[];
53
+ return @[
54
+ @"onRestoreStarted",
55
+ @"onRestoreCompleted",
56
+ @"onRestoreFailed",
57
+ @"onShowingManageSubscriptions",
58
+ @"onRefundRequestStarted",
59
+ @"onRefundRequestCompleted",
60
+ @"onFeedbackSurveyCompleted",
61
+ @"onManagementOptionSelected",
62
+ @"onDismiss"
63
+ ];
53
64
  }
54
65
 
55
66
  - (dispatch_queue_t)methodQueue {
@@ -82,6 +93,55 @@ RCT_EXPORT_METHOD(presentCustomerCenter:(RCTPromiseResolveBlock)resolve
82
93
  reject(@"CustomerCenterUnsupportedCode", @"CustomerCenter is not supported prior to iOS 15.", nil);
83
94
  }
84
95
 
96
+ // MARK: - CustomerCenterViewControllerDelegateWrapper Methods
97
+
98
+ - (void)customerCenterViewControllerWasDismissed:(CustomerCenterUIViewController *)controller API_AVAILABLE(ios(15.0)) {
99
+ [self sendEventWithName:@"onDismiss" body:@{}];
100
+ }
101
+
102
+ - (void)customerCenterViewControllerDidStartRestore:(CustomerCenterUIViewController *)controller API_AVAILABLE(ios(15.0)) {
103
+ [self sendEventWithName:@"onRestoreStarted" body:@{}];
104
+ }
105
+
106
+ - (void)customerCenterViewController:(CustomerCenterUIViewController *)controller
107
+ didFinishRestoringWithCustomerInfoDictionary:(NSDictionary<NSString *, id> *)customerInfoDictionary API_AVAILABLE(ios(15.0)) {
108
+ [self sendEventWithName:@"onRestoreCompleted" body:@{@"customerInfo": customerInfoDictionary}];
109
+ }
110
+
111
+ - (void)customerCenterViewController:(CustomerCenterUIViewController *)controller
112
+ didFailRestoringWithErrorDictionary:(NSDictionary<NSString *, id> *)errorDictionary API_AVAILABLE(ios(15.0)) {
113
+ [self sendEventWithName:@"onRestoreFailed" body:@{@"error": errorDictionary}];
114
+ }
115
+
116
+ - (void)customerCenterViewControllerDidShowManageSubscriptions:(CustomerCenterUIViewController *)controller API_AVAILABLE(ios(15.0)) {
117
+ [self sendEventWithName:@"onShowingManageSubscriptions" body:@{}];
118
+ }
119
+
120
+ - (void)customerCenterViewController:(CustomerCenterUIViewController *)controller
121
+ didStartRefundRequestForProductWithID:(NSString *)productID API_AVAILABLE(ios(15.0)) {
122
+ [self sendEventWithName:@"onRefundRequestStarted" body:@{@"productIdentifier": productID}];
123
+ }
124
+
125
+ - (void)customerCenterViewController:(CustomerCenterUIViewController *)controller
126
+ didCompleteRefundRequestForProductWithID:(NSString *)productID
127
+ withStatus:(NSString *)status API_AVAILABLE(ios(15.0)) {
128
+ [self sendEventWithName:@"onRefundRequestCompleted" body:@{
129
+ @"productIdentifier": productID,
130
+ @"refundRequestStatus": status
131
+ }];
132
+ }
133
+
134
+ - (void)customerCenterViewController:(CustomerCenterUIViewController *)controller
135
+ didCompleteFeedbackSurveyWithOptionID:(NSString *)optionID API_AVAILABLE(ios(15.0)) {
136
+ [self sendEventWithName:@"onFeedbackSurveyCompleted" body:@{@"feedbackSurveyOptionId": optionID}];
137
+ }
138
+
139
+ - (void)customerCenterViewController:(CustomerCenterUIViewController *)controller
140
+ didSelectCustomerCenterManagementOption:(NSString *)optionID
141
+ withURL:(NSString *)url API_AVAILABLE(ios(15.0)) {
142
+ [self sendEventWithName:@"onManagementOptionSelected" body:@{@"option": optionID, @"url": url ?: [NSNull null]}];
143
+ }
144
+
85
145
  + (BOOL)requiresMainQueueSetup
86
146
  {
87
147
  return YES;
@@ -28,6 +28,7 @@ if (!RNCustomerCenter) {
28
28
  throw new Error(LINKING_ERROR);
29
29
  }
30
30
  const eventEmitter = new _reactNative.NativeEventEmitter(RNPaywalls);
31
+ const customerCenterEventEmitter = new _reactNative.NativeEventEmitter(RNCustomerCenter);
31
32
  const InternalPaywall = _reactNative.UIManager.getViewManagerConfig('Paywall') != null ? (0, _reactNative.requireNativeComponent)('Paywall') : () => {
32
33
  throw new Error(LINKING_ERROR);
33
34
  };
@@ -37,6 +38,8 @@ const InternalPaywallFooterView = _reactNative.UIManager.getViewManagerConfig('P
37
38
 
38
39
  // Currently the same as the base type, but can be extended later if needed
39
40
 
41
+ // This is to prevent breaking changes when the native SDK adds new options
42
+
40
43
  class RevenueCatUI {
41
44
  static Defaults = {
42
45
  PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON: true
@@ -178,11 +181,54 @@ class RevenueCatUI {
178
181
  };
179
182
 
180
183
  /**
181
- * Presents the customer center to the user.
182
- *
183
- * @returns {Promise<void>} A promise that resolves when the customer center is presented.
184
- */
185
- static presentCustomerCenter() {
184
+ * Presents the customer center to the user.
185
+ *
186
+ * @param {PresentCustomerCenterParams} params - Optional parameters for presenting the customer center.
187
+ * @returns {Promise<void>} A promise that resolves when the customer center is presented.
188
+ */
189
+ static presentCustomerCenter(params) {
190
+ if (params !== null && params !== void 0 && params.callbacks) {
191
+ const subscriptions = [];
192
+ const callbacks = params.callbacks;
193
+ if (callbacks.onFeedbackSurveyCompleted) {
194
+ const subscription = customerCenterEventEmitter.addListener('onFeedbackSurveyCompleted', event => callbacks.onFeedbackSurveyCompleted && callbacks.onFeedbackSurveyCompleted(event));
195
+ subscriptions.push(subscription);
196
+ }
197
+ if (callbacks.onShowingManageSubscriptions) {
198
+ const subscription = customerCenterEventEmitter.addListener('onShowingManageSubscriptions', () => callbacks.onShowingManageSubscriptions && callbacks.onShowingManageSubscriptions());
199
+ subscriptions.push(subscription);
200
+ }
201
+ if (callbacks.onRestoreCompleted) {
202
+ const subscription = customerCenterEventEmitter.addListener('onRestoreCompleted', event => callbacks.onRestoreCompleted && callbacks.onRestoreCompleted(event));
203
+ subscriptions.push(subscription);
204
+ }
205
+ if (callbacks.onRestoreFailed) {
206
+ const subscription = customerCenterEventEmitter.addListener('onRestoreFailed', event => callbacks.onRestoreFailed && callbacks.onRestoreFailed(event));
207
+ subscriptions.push(subscription);
208
+ }
209
+ if (callbacks.onRestoreStarted) {
210
+ const subscription = customerCenterEventEmitter.addListener('onRestoreStarted', () => callbacks.onRestoreStarted && callbacks.onRestoreStarted());
211
+ subscriptions.push(subscription);
212
+ }
213
+ if (callbacks.onRefundRequestStarted) {
214
+ const subscription = customerCenterEventEmitter.addListener('onRefundRequestStarted', event => callbacks.onRefundRequestStarted && callbacks.onRefundRequestStarted(event));
215
+ subscriptions.push(subscription);
216
+ }
217
+ if (callbacks.onRefundRequestCompleted) {
218
+ const subscription = customerCenterEventEmitter.addListener('onRefundRequestCompleted', event => callbacks.onRefundRequestCompleted && callbacks.onRefundRequestCompleted(event));
219
+ subscriptions.push(subscription);
220
+ }
221
+ if (callbacks.onManagementOptionSelected) {
222
+ const subscription = customerCenterEventEmitter.addListener('onManagementOptionSelected', event => callbacks.onManagementOptionSelected && callbacks.onManagementOptionSelected(event));
223
+ subscriptions.push(subscription);
224
+ }
225
+
226
+ // Return a promise that resolves when the customer center is dismissed
227
+ return RNCustomerCenter.presentCustomerCenter().finally(() => {
228
+ // Clean up all event listeners when the customer center is dismissed
229
+ subscriptions.forEach(subscription => subscription.remove());
230
+ });
231
+ }
186
232
  return RNCustomerCenter.presentCustomerCenter();
187
233
  }
188
234
 
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_purchasesTypescriptInternal","_react","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","LINKING_ERROR","Platform","select","ios","RNPaywalls","NativeModules","RNCustomerCenter","Error","eventEmitter","NativeEventEmitter","InternalPaywall","UIManager","getViewManagerConfig","requireNativeComponent","InternalPaywallFooterView","RevenueCatUI","Defaults","PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON","PAYWALL_RESULT","presentPaywall","offering","displayCloseButton","fontFamily","identifier","presentPaywallIfNeeded","requiredEntitlementIdentifier","Paywall","style","children","options","onPurchaseStarted","onPurchaseCompleted","onPurchaseError","onPurchaseCancelled","onRestoreStarted","onRestoreCompleted","onRestoreError","onDismiss","createElement","event","nativeEvent","flex","OriginalTemplatePaywallFooterContainerView","paddingBottom","setPaddingBottom","useState","height","setHeight","useEffect","handleSafeAreaInsetsChange","bottom","subscription","addListener","remove","View","ScrollView","contentContainerStyle","flexGrow","marginTop","android","onMeasure","measurements","presentCustomerCenter","PaywallFooterContainerView","exports"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_purchasesTypescriptInternal","_react","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","LINKING_ERROR","Platform","select","ios","RNPaywalls","NativeModules","RNCustomerCenter","Error","eventEmitter","NativeEventEmitter","customerCenterEventEmitter","InternalPaywall","UIManager","getViewManagerConfig","requireNativeComponent","InternalPaywallFooterView","RevenueCatUI","Defaults","PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON","PAYWALL_RESULT","presentPaywall","offering","displayCloseButton","fontFamily","identifier","presentPaywallIfNeeded","requiredEntitlementIdentifier","Paywall","style","children","options","onPurchaseStarted","onPurchaseCompleted","onPurchaseError","onPurchaseCancelled","onRestoreStarted","onRestoreCompleted","onRestoreError","onDismiss","createElement","event","nativeEvent","flex","OriginalTemplatePaywallFooterContainerView","paddingBottom","setPaddingBottom","useState","height","setHeight","useEffect","handleSafeAreaInsetsChange","bottom","subscription","addListener","remove","View","ScrollView","contentContainerStyle","flexGrow","marginTop","android","onMeasure","measurements","presentCustomerCenter","params","callbacks","subscriptions","onFeedbackSurveyCompleted","push","onShowingManageSubscriptions","onRestoreFailed","onRefundRequestStarted","onRefundRequestCompleted","onManagementOptionSelected","finally","forEach","PaywallFooterContainerView","exports"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -15,6 +15,7 @@ if (!RNCustomerCenter) {
15
15
  throw new Error(LINKING_ERROR);
16
16
  }
17
17
  const eventEmitter = new NativeEventEmitter(RNPaywalls);
18
+ const customerCenterEventEmitter = new NativeEventEmitter(RNCustomerCenter);
18
19
  const InternalPaywall = UIManager.getViewManagerConfig('Paywall') != null ? requireNativeComponent('Paywall') : () => {
19
20
  throw new Error(LINKING_ERROR);
20
21
  };
@@ -24,6 +25,8 @@ const InternalPaywallFooterView = UIManager.getViewManagerConfig('Paywall') != n
24
25
 
25
26
  // Currently the same as the base type, but can be extended later if needed
26
27
 
28
+ // This is to prevent breaking changes when the native SDK adds new options
29
+
27
30
  export default class RevenueCatUI {
28
31
  static Defaults = {
29
32
  PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON: true
@@ -165,11 +168,54 @@ export default class RevenueCatUI {
165
168
  };
166
169
 
167
170
  /**
168
- * Presents the customer center to the user.
169
- *
170
- * @returns {Promise<void>} A promise that resolves when the customer center is presented.
171
- */
172
- static presentCustomerCenter() {
171
+ * Presents the customer center to the user.
172
+ *
173
+ * @param {PresentCustomerCenterParams} params - Optional parameters for presenting the customer center.
174
+ * @returns {Promise<void>} A promise that resolves when the customer center is presented.
175
+ */
176
+ static presentCustomerCenter(params) {
177
+ if (params !== null && params !== void 0 && params.callbacks) {
178
+ const subscriptions = [];
179
+ const callbacks = params.callbacks;
180
+ if (callbacks.onFeedbackSurveyCompleted) {
181
+ const subscription = customerCenterEventEmitter.addListener('onFeedbackSurveyCompleted', event => callbacks.onFeedbackSurveyCompleted && callbacks.onFeedbackSurveyCompleted(event));
182
+ subscriptions.push(subscription);
183
+ }
184
+ if (callbacks.onShowingManageSubscriptions) {
185
+ const subscription = customerCenterEventEmitter.addListener('onShowingManageSubscriptions', () => callbacks.onShowingManageSubscriptions && callbacks.onShowingManageSubscriptions());
186
+ subscriptions.push(subscription);
187
+ }
188
+ if (callbacks.onRestoreCompleted) {
189
+ const subscription = customerCenterEventEmitter.addListener('onRestoreCompleted', event => callbacks.onRestoreCompleted && callbacks.onRestoreCompleted(event));
190
+ subscriptions.push(subscription);
191
+ }
192
+ if (callbacks.onRestoreFailed) {
193
+ const subscription = customerCenterEventEmitter.addListener('onRestoreFailed', event => callbacks.onRestoreFailed && callbacks.onRestoreFailed(event));
194
+ subscriptions.push(subscription);
195
+ }
196
+ if (callbacks.onRestoreStarted) {
197
+ const subscription = customerCenterEventEmitter.addListener('onRestoreStarted', () => callbacks.onRestoreStarted && callbacks.onRestoreStarted());
198
+ subscriptions.push(subscription);
199
+ }
200
+ if (callbacks.onRefundRequestStarted) {
201
+ const subscription = customerCenterEventEmitter.addListener('onRefundRequestStarted', event => callbacks.onRefundRequestStarted && callbacks.onRefundRequestStarted(event));
202
+ subscriptions.push(subscription);
203
+ }
204
+ if (callbacks.onRefundRequestCompleted) {
205
+ const subscription = customerCenterEventEmitter.addListener('onRefundRequestCompleted', event => callbacks.onRefundRequestCompleted && callbacks.onRefundRequestCompleted(event));
206
+ subscriptions.push(subscription);
207
+ }
208
+ if (callbacks.onManagementOptionSelected) {
209
+ const subscription = customerCenterEventEmitter.addListener('onManagementOptionSelected', event => callbacks.onManagementOptionSelected && callbacks.onManagementOptionSelected(event));
210
+ subscriptions.push(subscription);
211
+ }
212
+
213
+ // Return a promise that resolves when the customer center is dismissed
214
+ return RNCustomerCenter.presentCustomerCenter().finally(() => {
215
+ // Clean up all event listeners when the customer center is dismissed
216
+ subscriptions.forEach(subscription => subscription.remove());
217
+ });
218
+ }
173
219
  return RNCustomerCenter.presentCustomerCenter();
174
220
  }
175
221
 
@@ -1 +1 @@
1
- {"version":3,"names":["NativeEventEmitter","NativeModules","Platform","requireNativeComponent","ScrollView","UIManager","View","PAYWALL_RESULT","React","useEffect","useState","LINKING_ERROR","select","ios","default","RNPaywalls","RNCustomerCenter","Error","eventEmitter","InternalPaywall","getViewManagerConfig","InternalPaywallFooterView","RevenueCatUI","Defaults","PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON","presentPaywall","offering","displayCloseButton","fontFamily","identifier","presentPaywallIfNeeded","requiredEntitlementIdentifier","Paywall","style","children","options","onPurchaseStarted","onPurchaseCompleted","onPurchaseError","onPurchaseCancelled","onRestoreStarted","onRestoreCompleted","onRestoreError","onDismiss","createElement","event","nativeEvent","flex","OriginalTemplatePaywallFooterContainerView","paddingBottom","setPaddingBottom","height","setHeight","handleSafeAreaInsetsChange","bottom","subscription","addListener","remove","contentContainerStyle","flexGrow","marginTop","android","onMeasure","measurements","presentCustomerCenter","PaywallFooterContainerView"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeEventEmitter","NativeModules","Platform","requireNativeComponent","ScrollView","UIManager","View","PAYWALL_RESULT","React","useEffect","useState","LINKING_ERROR","select","ios","default","RNPaywalls","RNCustomerCenter","Error","eventEmitter","customerCenterEventEmitter","InternalPaywall","getViewManagerConfig","InternalPaywallFooterView","RevenueCatUI","Defaults","PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON","presentPaywall","offering","displayCloseButton","fontFamily","identifier","presentPaywallIfNeeded","requiredEntitlementIdentifier","Paywall","style","children","options","onPurchaseStarted","onPurchaseCompleted","onPurchaseError","onPurchaseCancelled","onRestoreStarted","onRestoreCompleted","onRestoreError","onDismiss","createElement","event","nativeEvent","flex","OriginalTemplatePaywallFooterContainerView","paddingBottom","setPaddingBottom","height","setHeight","handleSafeAreaInsetsChange","bottom","subscription","addListener","remove","contentContainerStyle","flexGrow","marginTop","android","onMeasure","measurements","presentCustomerCenter","params","callbacks","subscriptions","onFeedbackSurveyCompleted","push","onShowingManageSubscriptions","onRestoreFailed","onRefundRequestStarted","onRefundRequestCompleted","onManagementOptionSelected","finally","forEach","PaywallFooterContainerView"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { type StyleProp, type ViewStyle } from "react-native";
2
- import { type CustomerInfo, PAYWALL_RESULT, type PurchasesError, type PurchasesOffering, type PurchasesPackage, type PurchasesStoreTransaction } from "@revenuecat/purchases-typescript-internal";
2
+ import { type CustomerInfo, PAYWALL_RESULT, type PurchasesError, type PurchasesOffering, type PurchasesPackage, type PurchasesStoreTransaction, REFUND_REQUEST_STATUS } from "@revenuecat/purchases-typescript-internal";
3
3
  import React, { type ReactNode } from "react";
4
4
  export { PAYWALL_RESULT } from "@revenuecat/purchases-typescript-internal";
5
5
  export interface PresentPaywallParams {
@@ -106,6 +106,67 @@ type FooterPaywallViewProps = {
106
106
  }) => void;
107
107
  onDismiss?: () => void;
108
108
  };
109
+ export type CustomerCenterManagementOption = 'cancel' | 'custom_url' | 'missing_purchase' | 'refund_request' | 'change_plans' | 'unknown' | string;
110
+ export type CustomerCenterManagementOptionEvent = {
111
+ option: 'custom_url';
112
+ url: string;
113
+ } | {
114
+ option: Exclude<CustomerCenterManagementOption, 'custom_url'>;
115
+ url: null;
116
+ };
117
+ export interface CustomerCenterCallbacks {
118
+ /**
119
+ * Called when a feedback survey is completed with the selected option ID.
120
+ */
121
+ onFeedbackSurveyCompleted?: ({ feedbackSurveyOptionId }: {
122
+ feedbackSurveyOptionId: string;
123
+ }) => void;
124
+ /**
125
+ * Called when the manage subscriptions section is being shown.
126
+ */
127
+ onShowingManageSubscriptions?: () => void;
128
+ /**
129
+ * Called when a restore operation is completed successfully.
130
+ */
131
+ onRestoreCompleted?: ({ customerInfo }: {
132
+ customerInfo: CustomerInfo;
133
+ }) => void;
134
+ /**
135
+ * Called when a restore operation fails.
136
+ */
137
+ onRestoreFailed?: ({ error }: {
138
+ error: PurchasesError;
139
+ }) => void;
140
+ /**
141
+ * Called when a restore operation starts.
142
+ */
143
+ onRestoreStarted?: () => void;
144
+ /**
145
+ * Called when a refund request starts with the product identifier. iOS-only callback.
146
+ */
147
+ onRefundRequestStarted?: ({ productIdentifier }: {
148
+ productIdentifier: string;
149
+ }) => void;
150
+ /**
151
+ * Called when a refund request completes with status information. iOS-only callback.
152
+ */
153
+ onRefundRequestCompleted?: ({ productIdentifier, refundRequestStatus }: {
154
+ productIdentifier: string;
155
+ refundRequestStatus: REFUND_REQUEST_STATUS;
156
+ }) => void;
157
+ /**
158
+ * Called when a customer center management option is selected.
159
+ * For 'custom_url' options, the url parameter will contain the URL.
160
+ * For all other options, the url parameter will be null.
161
+ */
162
+ onManagementOptionSelected?: (event: CustomerCenterManagementOptionEvent) => void;
163
+ }
164
+ export interface PresentCustomerCenterParams {
165
+ /**
166
+ * Optional callbacks for customer center events.
167
+ */
168
+ callbacks?: CustomerCenterCallbacks;
169
+ }
109
170
  export default class RevenueCatUI {
110
171
  private static Defaults;
111
172
  /**
@@ -142,11 +203,12 @@ export default class RevenueCatUI {
142
203
  static Paywall: React.FC<FullScreenPaywallViewProps>;
143
204
  static OriginalTemplatePaywallFooterContainerView: React.FC<FooterPaywallViewProps>;
144
205
  /**
145
- * Presents the customer center to the user.
146
- *
147
- * @returns {Promise<void>} A promise that resolves when the customer center is presented.
148
- */
149
- static presentCustomerCenter(): Promise<void>;
206
+ * Presents the customer center to the user.
207
+ *
208
+ * @param {PresentCustomerCenterParams} params - Optional parameters for presenting the customer center.
209
+ * @returns {Promise<void>} A promise that resolves when the customer center is presented.
210
+ */
211
+ static presentCustomerCenter(params?: PresentCustomerCenterParams): Promise<void>;
150
212
  /**
151
213
  * @deprecated, Use {@link OriginalTemplatePaywallFooterContainerView} instead
152
214
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EAGd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,YAAY,EACjB,cAAc,EAAE,KAAK,cAAc,EACnC,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAC7C,KAAK,yBAAyB,EAC9B,qBAAqB,EACtB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAmC3E,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAE7B;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,4BAA4B,GAAG,oBAAoB,GAAG;IAChE;;OAEG;IACH,6BAA6B,EAAE,MAAM,CAAC;CACvC,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAEpC;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA6B,SAAQ,kBAAkB;IACtE;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;CACtC;AAGD,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;CAEnE;AAED,KAAK,0BAA0B,GAAG;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,4BAA4B,CAAC;IACvC,iBAAiB,CAAC,EAAE,CAAC,EAAC,qBAAqB,EAAC,EAAE;QAAE,qBAAqB,EAAE,gBAAgB,CAAA;KAAE,KAAK,IAAI,CAAC;IACnG,mBAAmB,CAAC,EAAE,CAAC,EACE,YAAY,EACZ,gBAAgB,EACjB,EAAE;QAAE,YAAY,EAAE,YAAY,CAAC;QAAC,gBAAgB,EAAE,yBAAyB,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/G,eAAe,CAAC,EAAE,CAAC,EAAC,KAAK,EAAC,EAAE;QAAE,KAAK,EAAE,cAAc,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/D,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,kBAAkB,CAAC,EAAE,CAAC,EAAC,YAAY,EAAC,EAAE;QAAE,YAAY,EAAE,YAAY,CAAA;KAAE,KAAK,IAAI,CAAC;IAC9E,cAAc,CAAC,EAAE,CAAC,EAAC,KAAK,EAAC,EAAE;QAAE,KAAK,EAAE,cAAc,CAAA;KAAE,KAAK,IAAI,CAAC;IAC9D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,wBAAwB,CAAC;IACnC,iBAAiB,CAAC,EAAE,CAAC,EAAC,qBAAqB,EAAC,EAAE;QAAE,qBAAqB,EAAE,gBAAgB,CAAA;KAAE,KAAK,IAAI,CAAC;IACnG,mBAAmB,CAAC,EAAE,CAAC,EACE,YAAY,EACZ,gBAAgB,EACjB,EAAE;QAAE,YAAY,EAAE,YAAY,CAAC;QAAC,gBAAgB,EAAE,yBAAyB,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/G,eAAe,CAAC,EAAE,CAAC,EAAC,KAAK,EAAC,EAAE;QAAE,KAAK,EAAE,cAAc,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/D,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,kBAAkB,CAAC,EAAE,CAAC,EAAC,YAAY,EAAC,EAAE;QAAE,YAAY,EAAE,YAAY,CAAA;KAAE,KAAK,IAAI,CAAC;IAC9E,cAAc,CAAC,EAAE,CAAC,EAAC,KAAK,EAAC,EAAE;QAAE,KAAK,EAAE,cAAc,CAAA;KAAE,KAAK,IAAI,CAAC;IAC9D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAMF,MAAM,MAAM,8BAA8B,GACtC,QAAQ,GACR,YAAY,GACZ,kBAAkB,GAClB,gBAAgB,GAChB,cAAc,GACd,SAAS,GACT,MAAM,CAAC;AAEX,MAAM,MAAM,mCAAmC,GAC3C;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,OAAO,CAAC,8BAA8B,EAAE,YAAY,CAAC,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAAC;AAEjF,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,yBAAyB,CAAC,EAAE,CAAC,EAAC,sBAAsB,EAAC,EAAE;QAAE,sBAAsB,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAEnG;;OAEG;IACH,4BAA4B,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1C;;OAEG;IACH,kBAAkB,CAAC,EAAE,CAAC,EAAC,YAAY,EAAC,EAAE;QAAE,YAAY,EAAE,YAAY,CAAA;KAAE,KAAK,IAAI,CAAC;IAE9E;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,EAAC,KAAK,EAAC,EAAE;QAAE,KAAK,EAAE,cAAc,CAAA;KAAE,KAAK,IAAI,CAAC;IAE/D;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAE9B;;OAEG;IACH,sBAAsB,CAAC,EAAE,CAAC,EAAC,iBAAiB,EAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAEtF;;OAEG;IACH,wBAAwB,CAAC,EAAE,CAAC,EAAC,iBAAiB,EAAE,mBAAmB,EAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,qBAAqB,CAAA;KAAE,KAAK,IAAI,CAAC;IAEzJ;;;;OAIG;IACH,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,mCAAmC,KAAK,IAAI,CAAC;CACnF;AAED,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAED,MAAM,CAAC,OAAO,OAAO,YAAY;IAE/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAEtB;IAED;;;;OAIG;IACH,OAAc,cAAc,wBAAkB;IAE9C;;;;;;;;;OASG;WACW,cAAc,CAAC,EACE,QAAQ,EACR,kBAA+E,EAC/E,UAAU,GACX,GAAE,oBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;IAQnF;;;;;;;;;;;;OAYG;WACW,sBAAsB,CAAC,EACE,6BAA6B,EAC7B,QAAQ,EACR,kBAA+E,EAC/E,UAAU,GACX,EAAE,4BAA4B,GAAG,OAAO,CAAC,cAAc,CAAC;IAS9F,OAAc,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAwBzD;IAEF,OAAc,0CAA0C,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAAC,CA+DxF;IAEF;;;;;OAKG;WACW,qBAAqB,CAAC,MAAM,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAqFxF;;OAEG;IACH,OAAc,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAChB;CAC3D"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-native-purchases-ui",
3
3
  "title": "React Native Purchases UI",
4
- "version": "8.8.2",
4
+ "version": "8.9.1",
5
5
  "description": "React Native in-app purchases and subscriptions made easy. Supports iOS and Android.",
6
6
  "main": "lib/commonjs/index",
7
7
  "module": "lib/module/index",
@@ -114,7 +114,7 @@
114
114
  ]
115
115
  },
116
116
  "dependencies": {
117
- "@revenuecat/purchases-typescript-internal": "13.25.0",
118
- "react-native-purchases": "8.8.2"
117
+ "@revenuecat/purchases-typescript-internal": "13.26.0",
118
+ "react-native-purchases": "8.9.1"
119
119
  }
120
120
  }
package/src/index.tsx CHANGED
@@ -13,7 +13,8 @@ import {
13
13
  type CustomerInfo,
14
14
  PAYWALL_RESULT, type PurchasesError,
15
15
  type PurchasesOffering, type PurchasesPackage,
16
- type PurchasesStoreTransaction
16
+ type PurchasesStoreTransaction,
17
+ REFUND_REQUEST_STATUS
17
18
  } from "@revenuecat/purchases-typescript-internal";
18
19
  import React, { type ReactNode, useEffect, useState } from "react";
19
20
 
@@ -37,6 +38,7 @@ if (!RNCustomerCenter) {
37
38
  }
38
39
 
39
40
  const eventEmitter = new NativeEventEmitter(RNPaywalls);
41
+ const customerCenterEventEmitter = new NativeEventEmitter(RNCustomerCenter);
40
42
 
41
43
  const InternalPaywall =
42
44
  UIManager.getViewManagerConfig('Paywall') != null
@@ -155,6 +157,70 @@ type InternalFooterPaywallViewProps = FooterPaywallViewProps & {
155
157
  onMeasure?: ({height}: { height: number }) => void;
156
158
  };
157
159
 
160
+ export type CustomerCenterManagementOption =
161
+ | 'cancel'
162
+ | 'custom_url'
163
+ | 'missing_purchase'
164
+ | 'refund_request'
165
+ | 'change_plans'
166
+ | 'unknown'
167
+ | string; // This is to prevent breaking changes when the native SDK adds new options
168
+
169
+ export type CustomerCenterManagementOptionEvent =
170
+ | { option: 'custom_url'; url: string }
171
+ | { option: Exclude<CustomerCenterManagementOption, 'custom_url'>; url: null };
172
+
173
+ export interface CustomerCenterCallbacks {
174
+ /**
175
+ * Called when a feedback survey is completed with the selected option ID.
176
+ */
177
+ onFeedbackSurveyCompleted?: ({feedbackSurveyOptionId}: { feedbackSurveyOptionId: string }) => void;
178
+
179
+ /**
180
+ * Called when the manage subscriptions section is being shown.
181
+ */
182
+ onShowingManageSubscriptions?: () => void;
183
+
184
+ /**
185
+ * Called when a restore operation is completed successfully.
186
+ */
187
+ onRestoreCompleted?: ({customerInfo}: { customerInfo: CustomerInfo }) => void;
188
+
189
+ /**
190
+ * Called when a restore operation fails.
191
+ */
192
+ onRestoreFailed?: ({error}: { error: PurchasesError }) => void;
193
+
194
+ /**
195
+ * Called when a restore operation starts.
196
+ */
197
+ onRestoreStarted?: () => void;
198
+
199
+ /**
200
+ * Called when a refund request starts with the product identifier. iOS-only callback.
201
+ */
202
+ onRefundRequestStarted?: ({productIdentifier}: { productIdentifier: string }) => void;
203
+
204
+ /**
205
+ * Called when a refund request completes with status information. iOS-only callback.
206
+ */
207
+ onRefundRequestCompleted?: ({productIdentifier, refundRequestStatus}: { productIdentifier: string; refundRequestStatus: REFUND_REQUEST_STATUS }) => void;
208
+
209
+ /**
210
+ * Called when a customer center management option is selected.
211
+ * For 'custom_url' options, the url parameter will contain the URL.
212
+ * For all other options, the url parameter will be null.
213
+ */
214
+ onManagementOptionSelected?: (event: CustomerCenterManagementOptionEvent) => void;
215
+ }
216
+
217
+ export interface PresentCustomerCenterParams {
218
+ /**
219
+ * Optional callbacks for customer center events.
220
+ */
221
+ callbacks?: CustomerCenterCallbacks;
222
+ }
223
+
158
224
  export default class RevenueCatUI {
159
225
 
160
226
  private static Defaults = {
@@ -308,15 +374,97 @@ export default class RevenueCatUI {
308
374
  );
309
375
  };
310
376
 
311
- /**
377
+ /**
312
378
  * Presents the customer center to the user.
313
379
  *
380
+ * @param {PresentCustomerCenterParams} params - Optional parameters for presenting the customer center.
314
381
  * @returns {Promise<void>} A promise that resolves when the customer center is presented.
315
382
  */
316
- public static presentCustomerCenter(): Promise<void> {
317
- return RNCustomerCenter.presentCustomerCenter();
383
+ public static presentCustomerCenter(params?: PresentCustomerCenterParams): Promise<void> {
384
+ if (params?.callbacks) {
385
+ const subscriptions: { remove: () => void }[] = [];
386
+ const callbacks = params.callbacks as CustomerCenterCallbacks;
387
+
388
+ if (callbacks.onFeedbackSurveyCompleted) {
389
+ const subscription = customerCenterEventEmitter.addListener(
390
+ 'onFeedbackSurveyCompleted',
391
+ (event: { feedbackSurveyOptionId: string }) => callbacks.onFeedbackSurveyCompleted &&
392
+ callbacks.onFeedbackSurveyCompleted(event)
393
+ );
394
+ subscriptions.push(subscription);
395
+ }
396
+
397
+ if (callbacks.onShowingManageSubscriptions) {
398
+ const subscription = customerCenterEventEmitter.addListener(
399
+ 'onShowingManageSubscriptions',
400
+ () => callbacks.onShowingManageSubscriptions && callbacks.onShowingManageSubscriptions()
401
+ );
402
+ subscriptions.push(subscription);
403
+ }
404
+
405
+ if (callbacks.onRestoreCompleted) {
406
+ const subscription = customerCenterEventEmitter.addListener(
407
+ 'onRestoreCompleted',
408
+ (event: { customerInfo: CustomerInfo }) => callbacks.onRestoreCompleted &&
409
+ callbacks.onRestoreCompleted(event)
410
+ );
411
+ subscriptions.push(subscription);
412
+ }
413
+
414
+ if (callbacks.onRestoreFailed) {
415
+ const subscription = customerCenterEventEmitter.addListener(
416
+ 'onRestoreFailed',
417
+ (event: { error: PurchasesError }) => callbacks.onRestoreFailed &&
418
+ callbacks.onRestoreFailed(event)
419
+ );
420
+ subscriptions.push(subscription);
421
+ }
422
+
423
+ if (callbacks.onRestoreStarted) {
424
+ const subscription = customerCenterEventEmitter.addListener(
425
+ 'onRestoreStarted',
426
+ () => callbacks.onRestoreStarted && callbacks.onRestoreStarted()
427
+ );
428
+ subscriptions.push(subscription);
429
+ }
430
+
431
+ if (callbacks.onRefundRequestStarted) {
432
+ const subscription = customerCenterEventEmitter.addListener(
433
+ 'onRefundRequestStarted',
434
+ (event: { productIdentifier: string }) => callbacks.onRefundRequestStarted &&
435
+ callbacks.onRefundRequestStarted(event)
436
+ );
437
+ subscriptions.push(subscription);
438
+ }
439
+
440
+ if (callbacks.onRefundRequestCompleted) {
441
+ const subscription = customerCenterEventEmitter.addListener(
442
+ 'onRefundRequestCompleted',
443
+ (event: { productIdentifier: string; refundRequestStatus: REFUND_REQUEST_STATUS }) => callbacks.onRefundRequestCompleted &&
444
+ callbacks.onRefundRequestCompleted(event)
445
+ );
446
+ subscriptions.push(subscription);
447
+ }
448
+
449
+ if (callbacks.onManagementOptionSelected) {
450
+ const subscription = customerCenterEventEmitter.addListener(
451
+ 'onManagementOptionSelected',
452
+ (event: CustomerCenterManagementOptionEvent) => callbacks.onManagementOptionSelected &&
453
+ callbacks.onManagementOptionSelected(event)
454
+ );
455
+ subscriptions.push(subscription);
456
+ }
457
+
458
+ // Return a promise that resolves when the customer center is dismissed
459
+ return RNCustomerCenter.presentCustomerCenter().finally(() => {
460
+ // Clean up all event listeners when the customer center is dismissed
461
+ subscriptions.forEach(subscription => subscription.remove());
462
+ });
318
463
  }
319
464
 
465
+ return RNCustomerCenter.presentCustomerCenter();
466
+ }
467
+
320
468
  /**
321
469
  * @deprecated, Use {@link OriginalTemplatePaywallFooterContainerView} instead
322
470
  */