react-native-purchases-ui 7.17.1 → 7.19.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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", '9.2.0'
20
+ spec.dependency "PurchasesHybridCommonUI", '9.6.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 '7.17.1'
62
+ versionName '7.19.0'
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:9.2.0'
94
+ implementation 'com.revenuecat.purchases:purchases-hybrid-common-ui:9.6.0'
95
95
  implementation 'androidx.compose.ui:ui-android:1.5.4'
96
96
  implementation "androidx.appcompat:appcompat:1.6.1"
97
97
  }
@@ -0,0 +1,25 @@
1
+ package com.revenuecat.purchases.react.ui
2
+
3
+ import android.view.View
4
+ import com.facebook.react.bridge.ReadableMap
5
+ import com.facebook.react.uimanager.SimpleViewManager
6
+ import com.facebook.react.uimanager.annotations.ReactProp
7
+
8
+ internal abstract class BasePaywallViewManager<T : View> : SimpleViewManager<T>() {
9
+
10
+ abstract fun setOfferingId(view: T, identifier: String)
11
+
12
+ @ReactProp(name = "options")
13
+ fun setOptions(view: T, options: ReadableMap?) {
14
+ options?.let { props ->
15
+ if (props.hasKey("offering")) {
16
+ props.getDynamic("offering").asMap()?.let { offeringMap ->
17
+ if (offeringMap.hasKey("identifier") && !offeringMap.isNull("identifier")) {
18
+ setOfferingId(view, offeringMap.getString("identifier")!!)
19
+ }
20
+ }
21
+ }
22
+ }
23
+ }
24
+ }
25
+
@@ -2,14 +2,17 @@ package com.revenuecat.purchases.react.ui
2
2
 
3
3
  import android.annotation.SuppressLint
4
4
  import androidx.core.view.children
5
+ import com.facebook.react.bridge.ReadableMap
5
6
  import com.facebook.react.uimanager.SimpleViewManager
6
7
  import com.facebook.react.uimanager.ThemedReactContext
7
8
  import com.facebook.react.uimanager.UIManagerModule
9
+ import com.facebook.react.uimanager.annotations.ReactProp
8
10
  import com.revenuecat.purchases.ui.revenuecatui.ExperimentalPreviewRevenueCatUIPurchasesAPI
9
11
  import com.revenuecat.purchases.ui.revenuecatui.views.PaywallFooterView
10
12
 
11
13
  @OptIn(ExperimentalPreviewRevenueCatUIPurchasesAPI::class)
12
- internal class PaywallFooterViewManager : SimpleViewManager<PaywallFooterView>() {
14
+ internal class PaywallFooterViewManager : BasePaywallViewManager<PaywallFooterView>() {
15
+
13
16
  override fun getName(): String {
14
17
  return "RCPaywallFooterView"
15
18
  }
@@ -61,4 +64,8 @@ internal class PaywallFooterViewManager : SimpleViewManager<PaywallFooterView>()
61
64
  return paywallFooterView
62
65
  }
63
66
 
67
+ override fun setOfferingId(view: PaywallFooterView, identifier: String) {
68
+ view.setOfferingId(identifier)
69
+ }
70
+
64
71
  }
@@ -1,12 +1,15 @@
1
1
  package com.revenuecat.purchases.react.ui
2
2
 
3
+ import com.facebook.react.bridge.ReadableMap
3
4
  import com.facebook.react.uimanager.SimpleViewManager
4
5
  import com.facebook.react.uimanager.ThemedReactContext
6
+ import com.facebook.react.uimanager.annotations.ReactProp
5
7
  import com.revenuecat.purchases.ui.revenuecatui.ExperimentalPreviewRevenueCatUIPurchasesAPI
6
8
  import com.revenuecat.purchases.ui.revenuecatui.views.PaywallView
7
9
 
8
10
  @OptIn(ExperimentalPreviewRevenueCatUIPurchasesAPI::class)
9
- internal class PaywallViewManager : SimpleViewManager<PaywallView>() {
11
+ internal class PaywallViewManager : BasePaywallViewManager<PaywallView>() {
12
+
10
13
  companion object {
11
14
  const val REACT_CLASS = "Paywall"
12
15
  }
@@ -22,4 +25,9 @@ internal class PaywallViewManager : SimpleViewManager<PaywallView>() {
22
25
  override fun createShadowNodeInstance(): PaywallViewShadowNode {
23
26
  return PaywallViewShadowNode()
24
27
  }
28
+
29
+ override fun setOfferingId(view: PaywallView, identifier: String) {
30
+ view.setOfferingId(identifier)
31
+ }
32
+
25
33
  }
@@ -6,7 +6,6 @@ import com.facebook.react.bridge.Promise
6
6
  import com.facebook.react.bridge.ReactApplicationContext
7
7
  import com.facebook.react.bridge.ReactContextBaseJavaModule
8
8
  import com.facebook.react.bridge.ReactMethod
9
- import com.facebook.react.bridge.ReadableMap
10
9
  import com.revenuecat.purchases.hybridcommon.ui.PaywallResultListener
11
10
  import com.revenuecat.purchases.hybridcommon.ui.PaywallSource
12
11
  import com.revenuecat.purchases.hybridcommon.ui.PresentPaywallOptions
@@ -62,6 +61,16 @@ internal class RNPaywallsModule(reactContext: ReactApplicationContext) :
62
61
  )
63
62
  }
64
63
 
64
+ @ReactMethod
65
+ fun addListener(eventName: String?) {
66
+ // Keep: Required for RN built in Event Emitter Calls.
67
+ }
68
+
69
+ @ReactMethod
70
+ fun removeListeners(count: Int?) {
71
+ // Keep: Required for RN built in Event Emitter Calls.
72
+ }
73
+
65
74
  private fun presentPaywall(
66
75
  requiredEntitlementIdentifier: String?,
67
76
  offeringIdentifier: String?,
@@ -14,6 +14,8 @@
14
14
 
15
15
  @implementation PaywallViewManager
16
16
 
17
+ RCT_EXPORT_VIEW_PROPERTY(options, NSDictionary);
18
+
17
19
  RCT_EXPORT_MODULE(Paywall)
18
20
 
19
21
  - (UIView *)view
@@ -12,9 +12,10 @@
12
12
  @import PurchasesHybridCommonUI;
13
13
  @import RevenueCatUI;
14
14
 
15
+ API_AVAILABLE(ios(15.0))
15
16
  @interface PaywallViewWrapper () <RCPaywallViewControllerDelegate>
16
17
 
17
- @property (strong, nonatomic) UIViewController *paywallViewController;
18
+ @property (strong, nonatomic) RCPaywallViewController *paywallViewController;
18
19
 
19
20
  @property (nonatomic) BOOL addedToHierarchy;
20
21
 
@@ -22,7 +23,7 @@
22
23
 
23
24
  @implementation PaywallViewWrapper
24
25
 
25
- - (instancetype)initWithPaywallViewController:(UIViewController *)paywallViewController {
26
+ - (instancetype)initWithPaywallViewController:(RCPaywallViewController *)paywallViewController API_AVAILABLE(ios(15.0)){
26
27
  NSParameterAssert(paywallViewController);
27
28
 
28
29
  if ((self = [super initWithFrame:paywallViewController.view.bounds])) {
@@ -58,4 +59,18 @@
58
59
  }
59
60
  }
60
61
 
62
+ - (void)setOptions:(NSDictionary *)options {
63
+ if (@available(iOS 15.0, *)) {
64
+ NSDictionary *offering = options[@"offering"];
65
+ if (offering && ![offering isKindOfClass:[NSNull class]]) {
66
+ NSString *identifier = offering[@"identifier"];
67
+ if (identifier) {
68
+ [self.paywallViewController updateWithOfferingIdentifier:identifier];
69
+ }
70
+ }
71
+ } else {
72
+ NSLog(@"Error: attempted to present paywalls on unsupported iOS version.");
73
+ }
74
+ }
75
+
61
76
  @end
@@ -24,8 +24,8 @@ NS_ASSUME_NONNULL_BEGIN
24
24
 
25
25
  @interface FooterViewWrapper: PaywallViewWrapper
26
26
 
27
- - (instancetype)initWithFooterViewController:(UIViewController *)footerViewController
28
- bridge:(RCTBridge *)bridge;
27
+ - (instancetype)initWithPaywallViewController:(UIViewController *)footerViewController
28
+ bridge:(RCTBridge *)bridge;
29
29
 
30
30
  @end
31
31
 
@@ -35,13 +35,11 @@ NS_ASSUME_NONNULL_END
35
35
 
36
36
  @property (strong, nonatomic) RCTBridge *bridge;
37
37
 
38
- @property BOOL addedToHierarchy;
39
-
40
38
  @end
41
39
 
42
40
  @implementation FooterViewWrapper
43
41
 
44
- - (instancetype)initWithFooterViewController:(UIViewController *)footerViewController bridge:(RCTBridge *)bridge {
42
+ - (instancetype)initWithPaywallViewController:(UIViewController *)footerViewController bridge:(RCTBridge *)bridge {
45
43
  if ((self = [super initWithPaywallViewController:footerViewController])) {
46
44
  _bridge = bridge;
47
45
  }
@@ -81,6 +79,8 @@ NS_ASSUME_NONNULL_END
81
79
 
82
80
  @implementation RCPaywallFooterViewManager
83
81
 
82
+ RCT_EXPORT_VIEW_PROPERTY(options, NSDictionary);
83
+
84
84
  RCT_EXPORT_MODULE(RCPaywallFooterView)
85
85
 
86
86
  - (instancetype)init {
@@ -101,8 +101,8 @@ RCT_EXPORT_MODULE(RCPaywallFooterView)
101
101
  {
102
102
  if (@available(iOS 15.0, *)) {
103
103
  UIViewController *footerViewController = [self.proxy createFooterPaywallView];
104
- FooterViewWrapper *wrapper = [[FooterViewWrapper alloc] initWithFooterViewController:footerViewController
105
- bridge:self.bridge];
104
+ FooterViewWrapper *wrapper = [[FooterViewWrapper alloc] initWithPaywallViewController:footerViewController
105
+ bridge:self.bridge];
106
106
  self.proxy.delegate = wrapper;
107
107
 
108
108
  return wrapper;
@@ -0,0 +1,329 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 56;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 354FF7CC2B6423CB0050DDFD /* PaywallViewWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 354FF7C12B6423CB0050DDFD /* PaywallViewWrapper.m */; };
11
+ 354FF7CD2B6423CB0050DDFD /* RNPaywalls.m in Sources */ = {isa = PBXBuildFile; fileRef = 354FF7C22B6423CB0050DDFD /* RNPaywalls.m */; };
12
+ 354FF7CE2B6423CB0050DDFD /* RCPaywallFooterViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 354FF7C62B6423CB0050DDFD /* RCPaywallFooterViewManager.m */; };
13
+ 354FF7CF2B6423CB0050DDFD /* PaywallViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 354FF7C72B6423CB0050DDFD /* PaywallViewManager.m */; };
14
+ 354FF7D02B6423CB0050DDFD /* PurchasesPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 354FF7C92B6423CB0050DDFD /* PurchasesPlugin.swift */; };
15
+ 354FF7D12B6423CB0050DDFD /* UIView+Extensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 354FF7CA2B6423CB0050DDFD /* UIView+Extensions.m */; };
16
+ /* End PBXBuildFile section */
17
+
18
+ /* Begin PBXCopyFilesBuildPhase section */
19
+ 354FF7B32B6422970050DDFD /* CopyFiles */ = {
20
+ isa = PBXCopyFilesBuildPhase;
21
+ buildActionMask = 2147483647;
22
+ dstPath = "include/$(PRODUCT_NAME)";
23
+ dstSubfolderSpec = 16;
24
+ files = (
25
+ );
26
+ runOnlyForDeploymentPostprocessing = 0;
27
+ };
28
+ /* End PBXCopyFilesBuildPhase section */
29
+
30
+ /* Begin PBXFileReference section */
31
+ 354FF7B52B6422970050DDFD /* libRNPaywalls.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRNPaywalls.a; sourceTree = BUILT_PRODUCTS_DIR; };
32
+ 354FF7BF2B6423CA0050DDFD /* RNPaywalls-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RNPaywalls-Bridging-Header.h"; sourceTree = "<group>"; };
33
+ 354FF7C02B6423CB0050DDFD /* RNPaywalls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNPaywalls.h; sourceTree = "<group>"; };
34
+ 354FF7C12B6423CB0050DDFD /* PaywallViewWrapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PaywallViewWrapper.m; sourceTree = "<group>"; };
35
+ 354FF7C22B6423CB0050DDFD /* RNPaywalls.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNPaywalls.m; sourceTree = "<group>"; };
36
+ 354FF7C32B6423CB0050DDFD /* RNPaywalls-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RNPaywalls-Bridging-Header.h"; sourceTree = "<group>"; };
37
+ 354FF7C42B6423CB0050DDFD /* PaywallViewWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PaywallViewWrapper.h; sourceTree = "<group>"; };
38
+ 354FF7C52B6423CB0050DDFD /* RCPaywallFooterViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCPaywallFooterViewManager.h; sourceTree = "<group>"; };
39
+ 354FF7C62B6423CB0050DDFD /* RCPaywallFooterViewManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCPaywallFooterViewManager.m; sourceTree = "<group>"; };
40
+ 354FF7C72B6423CB0050DDFD /* PaywallViewManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PaywallViewManager.m; sourceTree = "<group>"; };
41
+ 354FF7C82B6423CB0050DDFD /* UIView+Extensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+Extensions.h"; sourceTree = "<group>"; };
42
+ 354FF7C92B6423CB0050DDFD /* PurchasesPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PurchasesPlugin.swift; sourceTree = "<group>"; };
43
+ 354FF7CA2B6423CB0050DDFD /* UIView+Extensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Extensions.m"; sourceTree = "<group>"; };
44
+ 354FF7CB2B6423CB0050DDFD /* PaywallViewManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PaywallViewManager.h; sourceTree = "<group>"; };
45
+ /* End PBXFileReference section */
46
+
47
+ /* Begin PBXFrameworksBuildPhase section */
48
+ 354FF7B22B6422970050DDFD /* Frameworks */ = {
49
+ isa = PBXFrameworksBuildPhase;
50
+ buildActionMask = 2147483647;
51
+ files = (
52
+ );
53
+ runOnlyForDeploymentPostprocessing = 0;
54
+ };
55
+ /* End PBXFrameworksBuildPhase section */
56
+
57
+ /* Begin PBXGroup section */
58
+ 354FF7AC2B6422970050DDFD = {
59
+ isa = PBXGroup;
60
+ children = (
61
+ 354FF7CB2B6423CB0050DDFD /* PaywallViewManager.h */,
62
+ 354FF7C72B6423CB0050DDFD /* PaywallViewManager.m */,
63
+ 354FF7C42B6423CB0050DDFD /* PaywallViewWrapper.h */,
64
+ 354FF7C12B6423CB0050DDFD /* PaywallViewWrapper.m */,
65
+ 354FF7C92B6423CB0050DDFD /* PurchasesPlugin.swift */,
66
+ 354FF7C52B6423CB0050DDFD /* RCPaywallFooterViewManager.h */,
67
+ 354FF7C62B6423CB0050DDFD /* RCPaywallFooterViewManager.m */,
68
+ 354FF7C32B6423CB0050DDFD /* RNPaywalls-Bridging-Header.h */,
69
+ 354FF7C02B6423CB0050DDFD /* RNPaywalls.h */,
70
+ 354FF7C22B6423CB0050DDFD /* RNPaywalls.m */,
71
+ 354FF7C82B6423CB0050DDFD /* UIView+Extensions.h */,
72
+ 354FF7CA2B6423CB0050DDFD /* UIView+Extensions.m */,
73
+ 354FF7B62B6422970050DDFD /* Products */,
74
+ 354FF7BF2B6423CA0050DDFD /* RNPaywalls-Bridging-Header.h */,
75
+ );
76
+ sourceTree = "<group>";
77
+ };
78
+ 354FF7B62B6422970050DDFD /* Products */ = {
79
+ isa = PBXGroup;
80
+ children = (
81
+ 354FF7B52B6422970050DDFD /* libRNPaywalls.a */,
82
+ );
83
+ name = Products;
84
+ sourceTree = "<group>";
85
+ };
86
+ /* End PBXGroup section */
87
+
88
+ /* Begin PBXNativeTarget section */
89
+ 354FF7B42B6422970050DDFD /* RNPaywalls */ = {
90
+ isa = PBXNativeTarget;
91
+ buildConfigurationList = 354FF7BC2B6422970050DDFD /* Build configuration list for PBXNativeTarget "RNPaywalls" */;
92
+ buildPhases = (
93
+ 354FF7B12B6422970050DDFD /* Sources */,
94
+ 354FF7B22B6422970050DDFD /* Frameworks */,
95
+ 354FF7B32B6422970050DDFD /* CopyFiles */,
96
+ );
97
+ buildRules = (
98
+ );
99
+ dependencies = (
100
+ );
101
+ name = RNPaywalls;
102
+ productName = RNPaywalls;
103
+ productReference = 354FF7B52B6422970050DDFD /* libRNPaywalls.a */;
104
+ productType = "com.apple.product-type.library.static";
105
+ };
106
+ /* End PBXNativeTarget section */
107
+
108
+ /* Begin PBXProject section */
109
+ 354FF7AD2B6422970050DDFD /* Project object */ = {
110
+ isa = PBXProject;
111
+ attributes = {
112
+ BuildIndependentTargetsInParallel = NO;
113
+ LastSwiftUpdateCheck = 1520;
114
+ LastUpgradeCheck = 1520;
115
+ TargetAttributes = {
116
+ 354FF7B42B6422970050DDFD = {
117
+ CreatedOnToolsVersion = 15.2;
118
+ LastSwiftMigration = 1520;
119
+ };
120
+ };
121
+ };
122
+ buildConfigurationList = 354FF7B02B6422970050DDFD /* Build configuration list for PBXProject "RNPaywalls" */;
123
+ compatibilityVersion = "Xcode 14.0";
124
+ developmentRegion = en;
125
+ hasScannedForEncodings = 0;
126
+ knownRegions = (
127
+ en,
128
+ Base,
129
+ );
130
+ mainGroup = 354FF7AC2B6422970050DDFD;
131
+ productRefGroup = 354FF7B62B6422970050DDFD /* Products */;
132
+ projectDirPath = "";
133
+ projectRoot = "";
134
+ targets = (
135
+ 354FF7B42B6422970050DDFD /* RNPaywalls */,
136
+ );
137
+ };
138
+ /* End PBXProject section */
139
+
140
+ /* Begin PBXSourcesBuildPhase section */
141
+ 354FF7B12B6422970050DDFD /* Sources */ = {
142
+ isa = PBXSourcesBuildPhase;
143
+ buildActionMask = 2147483647;
144
+ files = (
145
+ 354FF7CE2B6423CB0050DDFD /* RCPaywallFooterViewManager.m in Sources */,
146
+ 354FF7CD2B6423CB0050DDFD /* RNPaywalls.m in Sources */,
147
+ 354FF7CC2B6423CB0050DDFD /* PaywallViewWrapper.m in Sources */,
148
+ 354FF7D02B6423CB0050DDFD /* PurchasesPlugin.swift in Sources */,
149
+ 354FF7D12B6423CB0050DDFD /* UIView+Extensions.m in Sources */,
150
+ 354FF7CF2B6423CB0050DDFD /* PaywallViewManager.m in Sources */,
151
+ );
152
+ runOnlyForDeploymentPostprocessing = 0;
153
+ };
154
+ /* End PBXSourcesBuildPhase section */
155
+
156
+ /* Begin XCBuildConfiguration section */
157
+ 354FF7BA2B6422970050DDFD /* Debug */ = {
158
+ isa = XCBuildConfiguration;
159
+ buildSettings = {
160
+ ALWAYS_SEARCH_USER_PATHS = NO;
161
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
162
+ CLANG_ANALYZER_NONNULL = YES;
163
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
164
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
165
+ CLANG_ENABLE_MODULES = YES;
166
+ CLANG_ENABLE_OBJC_ARC = YES;
167
+ CLANG_ENABLE_OBJC_WEAK = YES;
168
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
169
+ CLANG_WARN_BOOL_CONVERSION = YES;
170
+ CLANG_WARN_COMMA = YES;
171
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
172
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
173
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
174
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
175
+ CLANG_WARN_EMPTY_BODY = YES;
176
+ CLANG_WARN_ENUM_CONVERSION = YES;
177
+ CLANG_WARN_INFINITE_RECURSION = YES;
178
+ CLANG_WARN_INT_CONVERSION = YES;
179
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
180
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
181
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
182
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
183
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
184
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
185
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
186
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
187
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
188
+ CLANG_WARN_UNREACHABLE_CODE = YES;
189
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
190
+ COPY_PHASE_STRIP = NO;
191
+ DEBUG_INFORMATION_FORMAT = dwarf;
192
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
193
+ ENABLE_TESTABILITY = YES;
194
+ ENABLE_USER_SCRIPT_SANDBOXING = YES;
195
+ GCC_C_LANGUAGE_STANDARD = gnu17;
196
+ GCC_DYNAMIC_NO_PIC = NO;
197
+ GCC_NO_COMMON_BLOCKS = YES;
198
+ GCC_OPTIMIZATION_LEVEL = 0;
199
+ GCC_PREPROCESSOR_DEFINITIONS = (
200
+ "DEBUG=1",
201
+ "$(inherited)",
202
+ );
203
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
204
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
205
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
206
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
207
+ GCC_WARN_UNUSED_FUNCTION = YES;
208
+ GCC_WARN_UNUSED_VARIABLE = YES;
209
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
210
+ LOCALIZATION_PREFERS_STRING_CATALOGS = NO;
211
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
212
+ MTL_FAST_MATH = YES;
213
+ ONLY_ACTIVE_ARCH = YES;
214
+ SDKROOT = iphoneos;
215
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
216
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
217
+ };
218
+ name = Debug;
219
+ };
220
+ 354FF7BB2B6422970050DDFD /* Release */ = {
221
+ isa = XCBuildConfiguration;
222
+ buildSettings = {
223
+ ALWAYS_SEARCH_USER_PATHS = NO;
224
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
225
+ CLANG_ANALYZER_NONNULL = YES;
226
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
227
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
228
+ CLANG_ENABLE_MODULES = YES;
229
+ CLANG_ENABLE_OBJC_ARC = YES;
230
+ CLANG_ENABLE_OBJC_WEAK = YES;
231
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
232
+ CLANG_WARN_BOOL_CONVERSION = YES;
233
+ CLANG_WARN_COMMA = YES;
234
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
235
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
236
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
237
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
238
+ CLANG_WARN_EMPTY_BODY = YES;
239
+ CLANG_WARN_ENUM_CONVERSION = YES;
240
+ CLANG_WARN_INFINITE_RECURSION = YES;
241
+ CLANG_WARN_INT_CONVERSION = YES;
242
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
243
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
244
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
245
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
246
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
247
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
248
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
249
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
250
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
251
+ CLANG_WARN_UNREACHABLE_CODE = YES;
252
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
253
+ COPY_PHASE_STRIP = YES;
254
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
255
+ ENABLE_NS_ASSERTIONS = NO;
256
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
257
+ ENABLE_USER_SCRIPT_SANDBOXING = YES;
258
+ GCC_C_LANGUAGE_STANDARD = gnu17;
259
+ GCC_NO_COMMON_BLOCKS = YES;
260
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
261
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
262
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
263
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
264
+ GCC_WARN_UNUSED_FUNCTION = YES;
265
+ GCC_WARN_UNUSED_VARIABLE = YES;
266
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
267
+ LOCALIZATION_PREFERS_STRING_CATALOGS = NO;
268
+ MTL_ENABLE_DEBUG_INFO = NO;
269
+ MTL_FAST_MATH = YES;
270
+ SDKROOT = iphoneos;
271
+ SWIFT_COMPILATION_MODE = wholemodule;
272
+ VALIDATE_PRODUCT = YES;
273
+ };
274
+ name = Release;
275
+ };
276
+ 354FF7BD2B6422970050DDFD /* Debug */ = {
277
+ isa = XCBuildConfiguration;
278
+ buildSettings = {
279
+ CLANG_ENABLE_MODULES = YES;
280
+ CODE_SIGN_STYLE = Automatic;
281
+ OTHER_LDFLAGS = "-ObjC";
282
+ PRODUCT_NAME = "$(TARGET_NAME)";
283
+ SKIP_INSTALL = YES;
284
+ SWIFT_OBJC_BRIDGING_HEADER = "RNPaywalls-Bridging-Header.h";
285
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
286
+ SWIFT_VERSION = 5.0;
287
+ TARGETED_DEVICE_FAMILY = "1,2";
288
+ };
289
+ name = Debug;
290
+ };
291
+ 354FF7BE2B6422970050DDFD /* Release */ = {
292
+ isa = XCBuildConfiguration;
293
+ buildSettings = {
294
+ CLANG_ENABLE_MODULES = YES;
295
+ CODE_SIGN_STYLE = Automatic;
296
+ OTHER_LDFLAGS = "-ObjC";
297
+ PRODUCT_NAME = "$(TARGET_NAME)";
298
+ SKIP_INSTALL = YES;
299
+ SWIFT_OBJC_BRIDGING_HEADER = "RNPaywalls-Bridging-Header.h";
300
+ SWIFT_VERSION = 5.0;
301
+ TARGETED_DEVICE_FAMILY = "1,2";
302
+ };
303
+ name = Release;
304
+ };
305
+ /* End XCBuildConfiguration section */
306
+
307
+ /* Begin XCConfigurationList section */
308
+ 354FF7B02B6422970050DDFD /* Build configuration list for PBXProject "RNPaywalls" */ = {
309
+ isa = XCConfigurationList;
310
+ buildConfigurations = (
311
+ 354FF7BA2B6422970050DDFD /* Debug */,
312
+ 354FF7BB2B6422970050DDFD /* Release */,
313
+ );
314
+ defaultConfigurationIsVisible = 0;
315
+ defaultConfigurationName = Release;
316
+ };
317
+ 354FF7BC2B6422970050DDFD /* Build configuration list for PBXNativeTarget "RNPaywalls" */ = {
318
+ isa = XCConfigurationList;
319
+ buildConfigurations = (
320
+ 354FF7BD2B6422970050DDFD /* Debug */,
321
+ 354FF7BE2B6422970050DDFD /* Release */,
322
+ );
323
+ defaultConfigurationIsVisible = 0;
324
+ defaultConfigurationName = Release;
325
+ };
326
+ /* End XCConfigurationList section */
327
+ };
328
+ rootObject = 354FF7AD2B6422970050DDFD /* Project object */;
329
+ }
@@ -16,11 +16,14 @@ var _react = _interopRequireWildcard(require("react"));
16
16
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
18
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
19
- const LINKING_ERROR = `The package 'react-native-purchases-view' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
19
+ const LINKING_ERROR = `The package 'react-native-purchases-ui' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
20
20
  ios: "- You have run 'pod install'\n",
21
21
  default: ''
22
22
  }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
23
23
  const RNPaywalls = _reactNative.NativeModules.RNPaywalls;
24
+ if (!RNPaywalls) {
25
+ throw new Error(LINKING_ERROR);
26
+ }
24
27
  const eventEmitter = new _reactNative.NativeEventEmitter(RNPaywalls);
25
28
  const InternalPaywall = _reactNative.UIManager.getViewManagerConfig('Paywall') != null ? (0, _reactNative.requireNativeComponent)('Paywall') : () => {
26
29
  throw new Error(LINKING_ERROR);
@@ -28,6 +31,9 @@ const InternalPaywall = _reactNative.UIManager.getViewManagerConfig('Paywall') !
28
31
  const InternalPaywallFooterView = _reactNative.UIManager.getViewManagerConfig('Paywall') != null ? (0, _reactNative.requireNativeComponent)('RCPaywallFooterView') : () => {
29
32
  throw new Error(LINKING_ERROR);
30
33
  };
34
+
35
+ // Currently the same as the base type, but can be extended later if needed
36
+
31
37
  class RevenueCatUI {
32
38
  static Defaults = {
33
39
  PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON: true
@@ -84,7 +90,8 @@ class RevenueCatUI {
84
90
  }));
85
91
  static PaywallFooterContainerView = ({
86
92
  style,
87
- children
93
+ children,
94
+ options
88
95
  }) => {
89
96
  // We use 20 as the default paddingBottom because that's the corner radius in the Android native SDK.
90
97
  // We also listen to safeAreaInsetsDidChange which is only sent from iOS and which is triggered when the
@@ -114,7 +121,8 @@ class RevenueCatUI {
114
121
  }, children), /*#__PURE__*/_react.default.createElement(InternalPaywallFooterView, {
115
122
  style: {
116
123
  marginTop: -20
117
- }
124
+ },
125
+ options: options
118
126
  }));
119
127
  };
120
128
  }
@@ -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","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","LINKING_ERROR","Platform","select","ios","RNPaywalls","NativeModules","eventEmitter","NativeEventEmitter","InternalPaywall","UIManager","getViewManagerConfig","requireNativeComponent","Error","InternalPaywallFooterView","RevenueCatUI","Defaults","PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON","PAYWALL_RESULT","presentPaywall","offering","displayCloseButton","identifier","presentPaywallIfNeeded","requiredEntitlementIdentifier","Paywall","props","createElement","style","flex","PaywallFooterContainerView","children","paddingBottom","setPaddingBottom","useState","useEffect","handleSafeAreaInsetsChange","bottom","subscription","addListener","remove","View","ScrollView","contentContainerStyle","flexGrow","marginTop","exports"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
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","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","LINKING_ERROR","Platform","select","ios","RNPaywalls","NativeModules","Error","eventEmitter","NativeEventEmitter","InternalPaywall","UIManager","getViewManagerConfig","requireNativeComponent","InternalPaywallFooterView","RevenueCatUI","Defaults","PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON","PAYWALL_RESULT","presentPaywall","offering","displayCloseButton","identifier","presentPaywallIfNeeded","requiredEntitlementIdentifier","Paywall","props","createElement","style","flex","PaywallFooterContainerView","children","options","paddingBottom","setPaddingBottom","useState","useEffect","handleSafeAreaInsetsChange","bottom","subscription","addListener","remove","View","ScrollView","contentContainerStyle","flexGrow","marginTop","exports"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
@@ -3,11 +3,14 @@ import { NativeEventEmitter, NativeModules, Platform, requireNativeComponent, Sc
3
3
  import { PAYWALL_RESULT } from "@revenuecat/purchases-typescript-internal";
4
4
  import React, { useEffect, useState } from "react";
5
5
  export { PAYWALL_RESULT } from "@revenuecat/purchases-typescript-internal";
6
- const LINKING_ERROR = `The package 'react-native-purchases-view' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
6
+ const LINKING_ERROR = `The package 'react-native-purchases-ui' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
7
7
  ios: "- You have run 'pod install'\n",
8
8
  default: ''
9
9
  }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
10
10
  const RNPaywalls = NativeModules.RNPaywalls;
11
+ if (!RNPaywalls) {
12
+ throw new Error(LINKING_ERROR);
13
+ }
11
14
  const eventEmitter = new NativeEventEmitter(RNPaywalls);
12
15
  const InternalPaywall = UIManager.getViewManagerConfig('Paywall') != null ? requireNativeComponent('Paywall') : () => {
13
16
  throw new Error(LINKING_ERROR);
@@ -15,6 +18,9 @@ const InternalPaywall = UIManager.getViewManagerConfig('Paywall') != null ? requ
15
18
  const InternalPaywallFooterView = UIManager.getViewManagerConfig('Paywall') != null ? requireNativeComponent('RCPaywallFooterView') : () => {
16
19
  throw new Error(LINKING_ERROR);
17
20
  };
21
+
22
+ // Currently the same as the base type, but can be extended later if needed
23
+
18
24
  export default class RevenueCatUI {
19
25
  static Defaults = {
20
26
  PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON: true
@@ -71,7 +77,8 @@ export default class RevenueCatUI {
71
77
  }));
72
78
  static PaywallFooterContainerView = ({
73
79
  style,
74
- children
80
+ children,
81
+ options
75
82
  }) => {
76
83
  // We use 20 as the default paddingBottom because that's the corner radius in the Android native SDK.
77
84
  // We also listen to safeAreaInsetsDidChange which is only sent from iOS and which is triggered when the
@@ -101,7 +108,8 @@ export default class RevenueCatUI {
101
108
  }, children), /*#__PURE__*/React.createElement(InternalPaywallFooterView, {
102
109
  style: {
103
110
  marginTop: -20
104
- }
111
+ },
112
+ options: options
105
113
  }));
106
114
  };
107
115
  }
@@ -1 +1 @@
1
- {"version":3,"names":["NativeEventEmitter","NativeModules","Platform","requireNativeComponent","ScrollView","UIManager","View","PAYWALL_RESULT","React","useEffect","useState","LINKING_ERROR","select","ios","default","RNPaywalls","eventEmitter","InternalPaywall","getViewManagerConfig","Error","InternalPaywallFooterView","RevenueCatUI","Defaults","PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON","presentPaywall","offering","displayCloseButton","identifier","presentPaywallIfNeeded","requiredEntitlementIdentifier","Paywall","props","createElement","_extends","style","flex","PaywallFooterContainerView","children","paddingBottom","setPaddingBottom","handleSafeAreaInsetsChange","bottom","subscription","addListener","remove","contentContainerStyle","flexGrow","marginTop"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["NativeEventEmitter","NativeModules","Platform","requireNativeComponent","ScrollView","UIManager","View","PAYWALL_RESULT","React","useEffect","useState","LINKING_ERROR","select","ios","default","RNPaywalls","Error","eventEmitter","InternalPaywall","getViewManagerConfig","InternalPaywallFooterView","RevenueCatUI","Defaults","PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON","presentPaywall","offering","displayCloseButton","identifier","presentPaywallIfNeeded","requiredEntitlementIdentifier","Paywall","props","createElement","_extends","style","flex","PaywallFooterContainerView","children","options","paddingBottom","setPaddingBottom","handleSafeAreaInsetsChange","bottom","subscription","addListener","remove","contentContainerStyle","flexGrow","marginTop"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
@@ -2,10 +2,6 @@ import { type StyleProp, type ViewStyle } from "react-native";
2
2
  import { PAYWALL_RESULT, type PurchasesOffering } from "@revenuecat/purchases-typescript-internal";
3
3
  import React, { type ReactNode } from "react";
4
4
  export { PAYWALL_RESULT } from "@revenuecat/purchases-typescript-internal";
5
- type PaywallViewProps = {
6
- style?: StyleProp<ViewStyle>;
7
- children?: ReactNode;
8
- };
9
5
  export interface PresentPaywallParams {
10
6
  /**
11
7
  * Whether to display the close button or not.
@@ -22,6 +18,23 @@ export type PresentPaywallIfNeededParams = PresentPaywallParams & {
22
18
  */
23
19
  requiredEntitlementIdentifier: string;
24
20
  };
21
+ export interface PaywallViewOptions {
22
+ offering?: PurchasesOffering | null;
23
+ }
24
+ export interface FullScreenPaywallViewOptions extends PaywallViewOptions {
25
+ }
26
+ export interface FooterPaywallViewOptions extends PaywallViewOptions {
27
+ }
28
+ type FullScreenPaywallViewProps = {
29
+ style?: StyleProp<ViewStyle>;
30
+ children?: ReactNode;
31
+ options?: FullScreenPaywallViewOptions;
32
+ };
33
+ type FooterPaywallViewProps = {
34
+ style?: StyleProp<ViewStyle>;
35
+ children?: ReactNode;
36
+ options?: FooterPaywallViewOptions;
37
+ };
25
38
  export default class RevenueCatUI {
26
39
  private static Defaults;
27
40
  /**
@@ -55,7 +68,7 @@ export default class RevenueCatUI {
55
68
  * @returns {Promise<PAYWALL_RESULT>} A promise that resolves with the result of the paywall presentation.
56
69
  */
57
70
  static presentPaywallIfNeeded({ requiredEntitlementIdentifier, offering, displayCloseButton }: PresentPaywallIfNeededParams): Promise<PAYWALL_RESULT>;
58
- static Paywall: React.FC<PaywallViewProps>;
59
- static PaywallFooterContainerView: React.FC<PaywallViewProps>;
71
+ static Paywall: React.FC<FullScreenPaywallViewProps>;
72
+ static PaywallFooterContainerView: React.FC<FooterPaywallViewProps>;
60
73
  }
61
74
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
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,EAAE,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AACnG,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAY3E,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAeF,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAED,MAAM,MAAM,4BAA4B,GAAG,oBAAoB,GAAG;IAChE;;OAEG;IACH,6BAA6B,EAAE,MAAM,CAAC;CACvC,CAAA;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,EAChF,GAAE,oBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;IAInF;;;;;;;;;;;;OAYG;WACW,sBAAsB,CAAC,EACE,6BAA6B,EAC7B,QAAQ,EACR,kBAA+E,EAChF,EAAE,4BAA4B,GAAG,OAAO,CAAC,cAAc,CAAC;IAI9F,OAAc,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAE/C;IAEF,OAAc,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAmClE;CACH"}
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,EAAE,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AACnG,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AA6B3E,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAED,MAAM,MAAM,4BAA4B,GAAG,oBAAoB,GAAG;IAChE;;OAEG;IACH,6BAA6B,EAAE,MAAM,CAAC;CACvC,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,4BAA6B,SAAQ,kBAAkB;CAEvE;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;CACxC,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;CACpC,CAAC;AAEF,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,EAChF,GAAE,oBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;IAInF;;;;;;;;;;;;OAYG;WACW,sBAAsB,CAAC,EACE,6BAA6B,EAC7B,QAAQ,EACR,kBAA+E,EAChF,EAAE,4BAA4B,GAAG,OAAO,CAAC,cAAc,CAAC;IAI9F,OAAc,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAEzD;IAEF,OAAc,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAmCxE;CACH"}
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": "7.17.1",
4
+ "version": "7.19.0",
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",
@@ -18,9 +18,11 @@
18
18
  "!android/gradlew.bat",
19
19
  "!android/local.properties",
20
20
  "ios",
21
+ "!ios/build",
22
+ "!ios/RNPaywalls.xcodeproj/project.xcworkspace",
23
+ "!ios/RNPaywalls.xcodeproj/xcuserdata",
21
24
  "cpp",
22
25
  "*.podspec",
23
- "!ios/build",
24
26
  "!**/__tests__",
25
27
  "!**/__fixtures__",
26
28
  "!**/__mocks__",
@@ -112,6 +114,6 @@
112
114
  },
113
115
  "dependencies": {
114
116
  "@revenuecat/purchases-typescript-internal": "8.10.1",
115
- "react-native-purchases": "7.17.1"
117
+ "react-native-purchases": "7.19.0"
116
118
  }
117
119
  }
package/src/index.tsx CHANGED
@@ -15,29 +15,28 @@ import React, { type ReactNode, useEffect, useState } from "react";
15
15
  export { PAYWALL_RESULT } from "@revenuecat/purchases-typescript-internal";
16
16
 
17
17
  const LINKING_ERROR =
18
- `The package 'react-native-purchases-view' doesn't seem to be linked. Make sure: \n\n` +
18
+ `The package 'react-native-purchases-ui' doesn't seem to be linked. Make sure: \n\n` +
19
19
  Platform.select({ios: "- You have run 'pod install'\n", default: ''}) +
20
20
  '- You rebuilt the app after installing the package\n' +
21
21
  '- You are not using Expo Go\n';
22
22
 
23
23
  const RNPaywalls = NativeModules.RNPaywalls;
24
24
 
25
- const eventEmitter = new NativeEventEmitter(RNPaywalls);
25
+ if (!RNPaywalls) {
26
+ throw new Error(LINKING_ERROR);
27
+ }
26
28
 
27
- type PaywallViewProps = {
28
- style?: StyleProp<ViewStyle>;
29
- children?: ReactNode;
30
- };
29
+ const eventEmitter = new NativeEventEmitter(RNPaywalls);
31
30
 
32
31
  const InternalPaywall =
33
32
  UIManager.getViewManagerConfig('Paywall') != null
34
- ? requireNativeComponent<PaywallViewProps>('Paywall')
33
+ ? requireNativeComponent<FullScreenPaywallViewProps>('Paywall')
35
34
  : () => {
36
35
  throw new Error(LINKING_ERROR);
37
36
  };
38
37
 
39
38
  const InternalPaywallFooterView = UIManager.getViewManagerConfig('Paywall') != null
40
- ? requireNativeComponent<PaywallViewProps>('RCPaywallFooterView')
39
+ ? requireNativeComponent<FooterPaywallViewProps>('RCPaywallFooterView')
41
40
  : () => {
42
41
  throw new Error(LINKING_ERROR);
43
42
  };
@@ -61,6 +60,31 @@ export type PresentPaywallIfNeededParams = PresentPaywallParams & {
61
60
  requiredEntitlementIdentifier: string;
62
61
  }
63
62
 
63
+ export interface PaywallViewOptions {
64
+ offering?: PurchasesOffering | null;
65
+ }
66
+
67
+ export interface FullScreenPaywallViewOptions extends PaywallViewOptions {
68
+ // Additional properties for FullScreenPaywallViewOptions can be added here if needed in the future
69
+ }
70
+
71
+ // Currently the same as the base type, but can be extended later if needed
72
+ export interface FooterPaywallViewOptions extends PaywallViewOptions {
73
+ // Additional properties for FooterPaywallViewOptions can be added here if needed in the future
74
+ }
75
+
76
+ type FullScreenPaywallViewProps = {
77
+ style?: StyleProp<ViewStyle>;
78
+ children?: ReactNode;
79
+ options?: FullScreenPaywallViewOptions;
80
+ };
81
+
82
+ type FooterPaywallViewProps = {
83
+ style?: StyleProp<ViewStyle>;
84
+ children?: ReactNode;
85
+ options?: FooterPaywallViewOptions;
86
+ };
87
+
64
88
  export default class RevenueCatUI {
65
89
 
66
90
  private static Defaults = {
@@ -112,11 +136,11 @@ export default class RevenueCatUI {
112
136
  return RNPaywalls.presentPaywallIfNeeded(requiredEntitlementIdentifier, offering?.identifier ?? null, displayCloseButton)
113
137
  }
114
138
 
115
- public static Paywall: React.FC<PaywallViewProps> = (props) => (
139
+ public static Paywall: React.FC<FullScreenPaywallViewProps> = (props) => (
116
140
  <InternalPaywall {...props} style={[{flex: 1}, props.style]}/>
117
141
  );
118
142
 
119
- public static PaywallFooterContainerView: React.FC<PaywallViewProps> = ({style, children}) => {
143
+ public static PaywallFooterContainerView: React.FC<FooterPaywallViewProps> = ({style, children, options}) => {
120
144
  // We use 20 as the default paddingBottom because that's the corner radius in the Android native SDK.
121
145
  // We also listen to safeAreaInsetsDidChange which is only sent from iOS and which is triggered when the
122
146
  // safe area insets change. Not adding this extra padding on iOS will cause the content of the scrollview
@@ -148,7 +172,7 @@ export default class RevenueCatUI {
148
172
  {children}
149
173
  </ScrollView>
150
174
  {/*Adding negative margin to the footer view to make it overlap with the extra padding of the scroll*/}
151
- <InternalPaywallFooterView style={{marginTop: -20}}/>
175
+ <InternalPaywallFooterView style={{marginTop: -20}} options={options}/>
152
176
  </View>
153
177
  );
154
178
  };