react-native-purchases-ui 7.24.1 → 7.26.0

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.
Files changed (27) hide show
  1. package/RNPaywalls.podspec +1 -1
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt +67 -56
  4. package/android/src/main/java/com/revenuecat/purchases/react/ui/FontAssetManager.kt +60 -16
  5. package/android/src/main/java/com/revenuecat/purchases/react/ui/{PaywallEvent.kt → PaywallEventName.kt} +1 -1
  6. package/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallFooterViewManager.kt +3 -3
  7. package/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallViewManager.kt +4 -3
  8. package/android/src/main/java/com/revenuecat/purchases/react/ui/RNPaywallsModule.kt +14 -2
  9. package/android/src/main/java/com/revenuecat/purchases/react/ui/ViewExtensions.kt +7 -0
  10. package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnDismissEvent.kt +13 -0
  11. package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCancelledEvent.kt +13 -0
  12. package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCompletedEvent.kt +18 -0
  13. package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseErrorEvent.kt +14 -0
  14. package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseStartedEvent.kt +16 -0
  15. package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreCompletedEvent.kt +14 -0
  16. package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreErrorEvent.kt +14 -0
  17. package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreStartedEvent.kt +13 -0
  18. package/android/src/main/java/com/revenuecat/purchases/react/ui/events/PaywallEvent.kt +34 -0
  19. package/ios/RNPaywalls.m +21 -18
  20. package/lib/commonjs/index.js +6 -4
  21. package/lib/commonjs/index.js.map +1 -1
  22. package/lib/module/index.js +6 -4
  23. package/lib/module/index.js.map +1 -1
  24. package/lib/typescript/src/index.d.ts +13 -2
  25. package/lib/typescript/src/index.d.ts.map +1 -1
  26. package/package.json +2 -2
  27. package/src/index.tsx +27 -4
@@ -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", '10.2.0'
20
+ spec.dependency "PurchasesHybridCommonUI", '10.3.2'
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.24.1'
62
+ versionName '7.26.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:10.2.0'
94
+ implementation 'com.revenuecat.purchases:purchases-hybrid-common-ui:10.3.2'
95
95
  implementation 'androidx.compose.ui:ui-android:1.5.4'
96
96
  implementation "androidx.appcompat:appcompat:1.6.1"
97
97
  }
@@ -6,9 +6,18 @@ import com.facebook.react.bridge.WritableNativeMap
6
6
  import com.facebook.react.common.MapBuilder
7
7
  import com.facebook.react.uimanager.SimpleViewManager
8
8
  import com.facebook.react.uimanager.ThemedReactContext
9
+ import com.facebook.react.uimanager.UIManagerHelper
9
10
  import com.facebook.react.uimanager.annotations.ReactProp
10
- import com.facebook.react.uimanager.events.RCTEventEmitter
11
+ import com.facebook.react.uimanager.events.Event
11
12
  import com.revenuecat.purchases.hybridcommon.ui.PaywallListenerWrapper
13
+ import com.revenuecat.purchases.react.ui.events.OnDismissEvent
14
+ import com.revenuecat.purchases.react.ui.events.OnPurchaseCancelledEvent
15
+ import com.revenuecat.purchases.react.ui.events.OnPurchaseCompletedEvent
16
+ import com.revenuecat.purchases.react.ui.events.OnPurchaseErrorEvent
17
+ import com.revenuecat.purchases.react.ui.events.OnPurchaseStartedEvent
18
+ import com.revenuecat.purchases.react.ui.events.OnRestoreCompletedEvent
19
+ import com.revenuecat.purchases.react.ui.events.OnRestoreErrorEvent
20
+ import com.revenuecat.purchases.react.ui.events.OnRestoreStartedEvent
12
21
  import com.revenuecat.purchases.ui.revenuecatui.ExperimentalPreviewRevenueCatUIPurchasesAPI
13
22
  import com.revenuecat.purchases.ui.revenuecatui.fonts.CustomFontProvider
14
23
 
@@ -27,14 +36,14 @@ internal abstract class BasePaywallViewManager<T : View> : SimpleViewManager<T>(
27
36
 
28
37
  override fun getExportedCustomDirectEventTypeConstants(): Map<String, Any>? {
29
38
  return MapBuilder.builder<String, Any>()
30
- .putEvent(PaywallEvent.ON_PURCHASE_STARTED)
31
- .putEvent(PaywallEvent.ON_PURCHASE_COMPLETED)
32
- .putEvent(PaywallEvent.ON_PURCHASE_ERROR)
33
- .putEvent(PaywallEvent.ON_PURCHASE_CANCELLED)
34
- .putEvent(PaywallEvent.ON_RESTORE_STARTED)
35
- .putEvent(PaywallEvent.ON_RESTORE_COMPLETED)
36
- .putEvent(PaywallEvent.ON_RESTORE_ERROR)
37
- .putEvent(PaywallEvent.ON_DISMISS)
39
+ .putEvent(PaywallEventName.ON_PURCHASE_STARTED)
40
+ .putEvent(PaywallEventName.ON_PURCHASE_COMPLETED)
41
+ .putEvent(PaywallEventName.ON_PURCHASE_ERROR)
42
+ .putEvent(PaywallEventName.ON_PURCHASE_CANCELLED)
43
+ .putEvent(PaywallEventName.ON_RESTORE_STARTED)
44
+ .putEvent(PaywallEventName.ON_RESTORE_COMPLETED)
45
+ .putEvent(PaywallEventName.ON_RESTORE_ERROR)
46
+ .putEvent(PaywallEventName.ON_DISMISS)
38
47
  .build()
39
48
  }
40
49
 
@@ -51,7 +60,8 @@ internal abstract class BasePaywallViewManager<T : View> : SimpleViewManager<T>(
51
60
  }
52
61
 
53
62
  private fun setOfferingIdProp(view: T, props: ReadableMap?) {
54
- val offeringIdentifier = props?.getDynamic(OPTION_OFFERING)?.asMap()?.getString(OFFERING_IDENTIFIER)
63
+ val offeringIdentifier =
64
+ props?.getDynamic(OPTION_OFFERING)?.asMap()?.getString(OFFERING_IDENTIFIER)
55
65
  offeringIdentifier?.let {
56
66
  setOfferingId(view, it)
57
67
  }
@@ -72,67 +82,87 @@ internal abstract class BasePaywallViewManager<T : View> : SimpleViewManager<T>(
72
82
  }
73
83
  }
74
84
 
75
- // TODO: RCTEventEmitter is deprecated, and RCTModernEventEmitter should be used instead
76
- // but documentation is not clear on how to use it so keeping this for now
77
85
  internal fun createPaywallListenerWrapper(
78
86
  themedReactContext: ThemedReactContext,
79
87
  view: View
80
88
  ) = object : PaywallListenerWrapper() {
81
-
82
89
  override fun onPurchaseStarted(rcPackage: Map<String, Any?>) {
83
- val payload = mapOf(
84
- PaywallEventKey.PACKAGE to rcPackage,
90
+ val event = OnPurchaseStartedEvent(
91
+ surfaceId = view.surfaceId,
92
+ viewTag = view.id,
93
+ rcPackage
85
94
  )
86
- emitEvent(themedReactContext, view.id, PaywallEvent.ON_PURCHASE_STARTED, payload)
95
+ emitEvent(themedReactContext, view.id, event)
87
96
  }
88
97
 
89
98
  override fun onPurchaseCompleted(
90
99
  customerInfo: Map<String, Any?>,
91
100
  storeTransaction: Map<String, Any?>
92
101
  ) {
93
- val payload = mapOf(
94
- PaywallEventKey.CUSTOMER_INFO to customerInfo,
95
- PaywallEventKey.STORE_TRANSACTION to storeTransaction
102
+ val event = OnPurchaseCompletedEvent(
103
+ surfaceId = view.surfaceId,
104
+ viewTag = view.id,
105
+ customerInfo,
106
+ storeTransaction
96
107
  )
97
- emitEvent(themedReactContext, view.id, PaywallEvent.ON_PURCHASE_COMPLETED, payload)
108
+ emitEvent(themedReactContext, view.id, event)
98
109
  }
99
110
 
100
111
  override fun onPurchaseError(error: Map<String, Any?>) {
101
- val payload = mapOf(PaywallEventKey.ERROR to error)
102
- emitEvent(themedReactContext, view.id, PaywallEvent.ON_PURCHASE_ERROR, payload)
112
+ val event = OnPurchaseErrorEvent(
113
+ surfaceId = view.surfaceId,
114
+ viewTag = view.id,
115
+ error
116
+ )
117
+ emitEvent(themedReactContext, view.id, event)
103
118
  }
104
119
 
105
120
  override fun onPurchaseCancelled() {
106
- emitEvent(themedReactContext, view.id, PaywallEvent.ON_PURCHASE_CANCELLED)
121
+ val event = OnPurchaseCancelledEvent(
122
+ surfaceId = view.surfaceId,
123
+ viewTag = view.id,
124
+ )
125
+ emitEvent(themedReactContext, view.id, event)
107
126
  }
108
127
 
109
128
  override fun onRestoreStarted() {
110
- emitEvent(themedReactContext, view.id, PaywallEvent.ON_RESTORE_STARTED)
129
+ val event = OnRestoreStartedEvent(
130
+ surfaceId = view.surfaceId,
131
+ viewTag = view.id,
132
+ )
133
+ emitEvent(themedReactContext, view.id, event)
111
134
  }
112
135
 
113
136
  override fun onRestoreCompleted(customerInfo: Map<String, Any?>) {
114
- val payload = mapOf(PaywallEventKey.CUSTOMER_INFO to customerInfo)
115
- emitEvent(themedReactContext, view.id, PaywallEvent.ON_RESTORE_COMPLETED, payload)
137
+ val event = OnRestoreCompletedEvent(
138
+ surfaceId = view.surfaceId,
139
+ viewTag = view.id,
140
+ customerInfo,
141
+ )
142
+ emitEvent(themedReactContext, view.id, event)
116
143
  }
117
144
 
118
145
  override fun onRestoreError(error: Map<String, Any?>) {
119
- val payload = mapOf(PaywallEventKey.ERROR to error)
120
- emitEvent(themedReactContext, view.id, PaywallEvent.ON_RESTORE_ERROR, payload)
146
+ val event = OnRestoreErrorEvent(
147
+ surfaceId = view.surfaceId,
148
+ viewTag = view.id,
149
+ error,
150
+ )
151
+ emitEvent(themedReactContext, view.id, event)
121
152
  }
122
153
 
123
154
  }
124
155
 
125
156
  internal fun getDismissHandler(
126
157
  themedReactContext: ThemedReactContext,
127
- view: T
128
- ): (() -> Unit) {
129
- return {
130
- emitEvent(themedReactContext, view.id, PaywallEvent.ON_DISMISS)
131
- }
158
+ view: View,
159
+ ): (() -> Unit) = {
160
+ val event = OnDismissEvent(view.surfaceId, view.id)
161
+ emitEvent(themedReactContext, view.id, event)
132
162
  }
133
163
 
134
164
  private fun MapBuilder.Builder<String, Any>.putEvent(
135
- paywallEvent: PaywallEvent
165
+ paywallEvent: PaywallEventName
136
166
  ): MapBuilder.Builder<String, Any> {
137
167
  val registrationName = MapBuilder.of("registrationName", paywallEvent.eventName)
138
168
  return this.put(paywallEvent.eventName, registrationName)
@@ -148,28 +178,9 @@ internal abstract class BasePaywallViewManager<T : View> : SimpleViewManager<T>(
148
178
  private fun emitEvent(
149
179
  context: ThemedReactContext,
150
180
  viewId: Int,
151
- event: PaywallEvent,
152
- payload: Map<PaywallEventKey, Map<String, Any?>>,
153
- ) {
154
- val convertedPayload = WritableNativeMap().apply {
155
- payload.forEach { (key, value) ->
156
- putMap(key.key, RNPurchasesConverters.convertMapToWriteableMap(value))
157
- }
158
- }
159
- emitEvent(context, viewId, event, convertedPayload)
160
- }
161
-
162
- @Suppress("DEPRECATION")
163
- private fun emitEvent(
164
- context: ThemedReactContext,
165
- viewId: Int,
166
- event: PaywallEvent,
167
- payload: WritableNativeMap? = null
181
+ event: Event<*>,
168
182
  ) {
169
- context.getJSModule(RCTEventEmitter::class.java).receiveEvent(
170
- viewId,
171
- event.eventName,
172
- payload
173
- )
183
+ val eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(context, viewId)
184
+ eventDispatcher?.dispatchEvent(event)
174
185
  }
175
186
  }
@@ -5,11 +5,16 @@ import androidx.compose.ui.text.font.Font
5
5
  import androidx.compose.ui.text.font.FontFamily
6
6
  import androidx.compose.ui.text.font.FontStyle
7
7
  import androidx.compose.ui.text.font.FontWeight
8
+ import com.revenuecat.purchases.ui.revenuecatui.ExperimentalPreviewRevenueCatUIPurchasesAPI
9
+ import com.revenuecat.purchases.ui.revenuecatui.fonts.PaywallFont
10
+ import com.revenuecat.purchases.ui.revenuecatui.fonts.PaywallFontFamily
8
11
 
9
12
 
13
+ @OptIn(ExperimentalPreviewRevenueCatUIPurchasesAPI::class)
10
14
  internal object FontAssetManager {
11
15
  @get:Synchronized
12
16
  private var fontFamilyCache = mapOf<String, FontFamily>()
17
+ private var paywallFontFamilyCache = mapOf<String, PaywallFontFamily>()
13
18
  private val FILE_EXTENSIONS = arrayOf(".ttf", ".otf")
14
19
 
15
20
  private const val FONT_PATH = "fonts/"
@@ -39,23 +44,16 @@ internal object FontAssetManager {
39
44
  if (cachedFontFamily != null) {
40
45
  return cachedFontFamily
41
46
  }
42
- val existingFontFileNames = assetManager.list(FONT_PATH)?.toList() ?: emptyList()
43
- val fontsInFamily = mutableListOf<Font>()
44
- FontStyleExtension.values().forEach { styleExtension ->
45
- FILE_EXTENSIONS.forEach { fileNameExtension ->
46
- val fileName = "$fontFamilyName${styleExtension.extension}$fileNameExtension"
47
- if (existingFontFileNames.contains(fileName)) {
48
- fontsInFamily.add(
49
- Font(
50
- path = FONT_PATH + fileName,
51
- assetManager = assetManager,
52
- weight = styleExtension.weight,
53
- style = styleExtension.style
54
- )
55
- )
56
- }
47
+
48
+ val fontsInFamily =
49
+ getFontsInFamily(fontFamilyName, assetManager) { fileName, styleExtension ->
50
+ Font(
51
+ path = FONT_PATH + fileName,
52
+ assetManager = assetManager,
53
+ weight = styleExtension.weight,
54
+ style = styleExtension.style
55
+ )
57
56
  }
58
- }
59
57
 
60
58
  return if (fontsInFamily.isNotEmpty()) {
61
59
  val fontFamily = FontFamily(fontsInFamily)
@@ -65,4 +63,50 @@ internal object FontAssetManager {
65
63
  null
66
64
  }
67
65
  }
66
+
67
+ @Synchronized
68
+ fun getPaywallFontFamily(
69
+ fontFamilyName: String,
70
+ assetManager: AssetManager
71
+ ): PaywallFontFamily? {
72
+ val cachedPaywallFontFamily = paywallFontFamilyCache[fontFamilyName]
73
+ if (cachedPaywallFontFamily != null) {
74
+ return cachedPaywallFontFamily
75
+ }
76
+
77
+ val paywallFontsInFamily =
78
+ getFontsInFamily(fontFamilyName, assetManager) { fileName, styleExtension ->
79
+ PaywallFont.AssetFont(
80
+ path = FONT_PATH + fileName,
81
+ fontWeight = styleExtension.weight,
82
+ fontStyle = styleExtension.style.value
83
+ )
84
+ }
85
+
86
+ return if (paywallFontsInFamily.isNotEmpty()) {
87
+ val fontFamily = PaywallFontFamily(paywallFontsInFamily)
88
+ paywallFontFamilyCache = paywallFontFamilyCache + (fontFamilyName to fontFamily)
89
+ fontFamily
90
+ } else {
91
+ null
92
+ }
93
+ }
94
+
95
+ private fun <T> getFontsInFamily(
96
+ fontFamilyName: String,
97
+ assetManager: AssetManager,
98
+ createFont: (String, FontStyleExtension) -> T
99
+ ): List<T> {
100
+ val existingFontFileNames = assetManager.list(FONT_PATH)?.toList() ?: emptyList()
101
+ val fontsInFamily = mutableListOf<T>()
102
+ FontStyleExtension.values().forEach { styleExtension ->
103
+ FILE_EXTENSIONS.forEach { fileNameExtension ->
104
+ val fileName = "$fontFamilyName${styleExtension.extension}$fileNameExtension"
105
+ if (existingFontFileNames.contains(fileName)) {
106
+ fontsInFamily.add(createFont(fileName, styleExtension))
107
+ }
108
+ }
109
+ }
110
+ return fontsInFamily
111
+ }
68
112
  }
@@ -1,6 +1,6 @@
1
1
  package com.revenuecat.purchases.react.ui
2
2
 
3
- internal enum class PaywallEvent(val eventName: String) {
3
+ internal enum class PaywallEventName(val eventName: String) {
4
4
  ON_PURCHASE_STARTED("onPurchaseStarted"),
5
5
  ON_PURCHASE_COMPLETED("onPurchaseCompleted"),
6
6
  ON_PURCHASE_ERROR("onPurchaseError"),
@@ -55,9 +55,9 @@ internal class PaywallFooterViewManager : BasePaywallViewManager<PaywallFooterVi
55
55
  }
56
56
  }
57
57
  }
58
- }.also {
59
- it.setPaywallListener(createPaywallListenerWrapper(themedReactContext, it))
60
- it.setDismissHandler(getDismissHandler(themedReactContext, it))
58
+ }.also { view ->
59
+ view.setPaywallListener(createPaywallListenerWrapper(themedReactContext, view))
60
+ view.setDismissHandler(getDismissHandler(themedReactContext, view))
61
61
  }
62
62
  }
63
63
 
@@ -5,6 +5,7 @@ import com.revenuecat.purchases.ui.revenuecatui.ExperimentalPreviewRevenueCatUIP
5
5
  import com.revenuecat.purchases.ui.revenuecatui.fonts.CustomFontProvider
6
6
  import com.revenuecat.purchases.ui.revenuecatui.views.PaywallView
7
7
 
8
+
8
9
  @OptIn(ExperimentalPreviewRevenueCatUIPurchasesAPI::class)
9
10
  internal class PaywallViewManager : BasePaywallViewManager<PaywallView>() {
10
11
 
@@ -17,9 +18,9 @@ internal class PaywallViewManager : BasePaywallViewManager<PaywallView>() {
17
18
  }
18
19
 
19
20
  override fun createViewInstance(themedReactContext: ThemedReactContext): PaywallView {
20
- return PaywallView(themedReactContext).also {
21
- it.setPaywallListener(createPaywallListenerWrapper(themedReactContext, it))
22
- it.setDismissHandler(getDismissHandler(themedReactContext, it))
21
+ return PaywallView(themedReactContext).also { view ->
22
+ view.setPaywallListener(createPaywallListenerWrapper(themedReactContext, view))
23
+ view.setDismissHandler(getDismissHandler(themedReactContext, view))
23
24
  }
24
25
  }
25
26
 
@@ -10,6 +10,9 @@ import com.revenuecat.purchases.hybridcommon.ui.PaywallResultListener
10
10
  import com.revenuecat.purchases.hybridcommon.ui.PaywallSource
11
11
  import com.revenuecat.purchases.hybridcommon.ui.PresentPaywallOptions
12
12
  import com.revenuecat.purchases.hybridcommon.ui.presentPaywallFromFragment
13
+ import com.revenuecat.purchases.ui.revenuecatui.ExperimentalPreviewRevenueCatUIPurchasesAPI
14
+ import com.revenuecat.purchases.ui.revenuecatui.fonts.PaywallFont
15
+ import com.revenuecat.purchases.ui.revenuecatui.fonts.PaywallFontFamily
13
16
 
14
17
  internal class RNPaywallsModule(reactContext: ReactApplicationContext) :
15
18
  ReactContextBaseJavaModule(reactContext) {
@@ -36,12 +39,14 @@ internal class RNPaywallsModule(reactContext: ReactApplicationContext) :
36
39
  fun presentPaywall(
37
40
  offeringIdentifier: String?,
38
41
  displayCloseButton: Boolean?,
42
+ fontFamily: String?,
39
43
  promise: Promise
40
44
  ) {
41
45
  presentPaywall(
42
46
  null,
43
47
  offeringIdentifier,
44
48
  displayCloseButton,
49
+ fontFamily,
45
50
  promise
46
51
  )
47
52
  }
@@ -51,12 +56,14 @@ internal class RNPaywallsModule(reactContext: ReactApplicationContext) :
51
56
  requiredEntitlementIdentifier: String,
52
57
  offeringIdentifier: String?,
53
58
  displayCloseButton: Boolean,
59
+ fontFamily: String?,
54
60
  promise: Promise
55
61
  ) {
56
62
  presentPaywall(
57
63
  requiredEntitlementIdentifier,
58
64
  offeringIdentifier,
59
65
  displayCloseButton,
66
+ fontFamily,
60
67
  promise
61
68
  )
62
69
  }
@@ -71,14 +78,18 @@ internal class RNPaywallsModule(reactContext: ReactApplicationContext) :
71
78
  // Keep: Required for RN built in Event Emitter Calls.
72
79
  }
73
80
 
81
+ @OptIn(ExperimentalPreviewRevenueCatUIPurchasesAPI::class)
74
82
  private fun presentPaywall(
75
83
  requiredEntitlementIdentifier: String?,
76
84
  offeringIdentifier: String?,
77
85
  displayCloseButton: Boolean?,
86
+ fontFamilyName: String?,
78
87
  promise: Promise
79
88
  ) {
80
89
  val fragment = currentActivityFragment ?: return
81
-
90
+ val fontFamily = fontFamilyName?.let {
91
+ FontAssetManager.getPaywallFontFamily(fontFamilyName = it, fragment.resources.assets)
92
+ }
82
93
  presentPaywallFromFragment(
83
94
  fragment = fragment,
84
95
  PresentPaywallOptions(
@@ -91,7 +102,8 @@ internal class RNPaywallsModule(reactContext: ReactApplicationContext) :
91
102
  override fun onPaywallResult(paywallResult: String) {
92
103
  promise.resolve(paywallResult)
93
104
  }
94
- }
105
+ },
106
+ fontFamily = fontFamily
95
107
  )
96
108
  )
97
109
  }
@@ -0,0 +1,7 @@
1
+ package com.revenuecat.purchases.react.ui
2
+
3
+ import android.view.View
4
+ import com.facebook.react.uimanager.UIManagerHelper
5
+
6
+ internal val View.surfaceId
7
+ get() = UIManagerHelper.getSurfaceId(this)
@@ -0,0 +1,13 @@
1
+ package com.revenuecat.purchases.react.ui.events
2
+
3
+ import com.revenuecat.purchases.react.ui.PaywallEventKey
4
+ import com.revenuecat.purchases.react.ui.PaywallEventName
5
+
6
+ internal class OnDismissEvent(
7
+ surfaceId: Int,
8
+ viewTag: Int,
9
+ ) : PaywallEvent<OnDismissEvent>(surfaceId, viewTag) {
10
+ override fun getPaywallEventName() = PaywallEventName.ON_DISMISS
11
+
12
+ override fun getPayload(): Map<PaywallEventKey, Map<String, Any?>> = emptyMap()
13
+ }
@@ -0,0 +1,13 @@
1
+ package com.revenuecat.purchases.react.ui.events
2
+
3
+ import com.revenuecat.purchases.react.ui.PaywallEventKey
4
+ import com.revenuecat.purchases.react.ui.PaywallEventName
5
+
6
+ internal class OnPurchaseCancelledEvent(
7
+ surfaceId: Int,
8
+ viewTag: Int,
9
+ ) : PaywallEvent<OnPurchaseCancelledEvent>(surfaceId, viewTag) {
10
+ override fun getPaywallEventName() = PaywallEventName.ON_PURCHASE_CANCELLED
11
+
12
+ override fun getPayload(): Map<PaywallEventKey, Map<String, Any?>> = emptyMap()
13
+ }
@@ -0,0 +1,18 @@
1
+ package com.revenuecat.purchases.react.ui.events
2
+
3
+ import com.revenuecat.purchases.react.ui.PaywallEventKey
4
+ import com.revenuecat.purchases.react.ui.PaywallEventName
5
+
6
+ internal class OnPurchaseCompletedEvent(
7
+ surfaceId: Int,
8
+ viewTag: Int,
9
+ private val customerInfo: Map<String, Any?>,
10
+ private val storeTransaction: Map<String, Any?>
11
+ ) : PaywallEvent<OnPurchaseCompletedEvent>(surfaceId, viewTag) {
12
+ override fun getPaywallEventName() = PaywallEventName.ON_PURCHASE_COMPLETED
13
+
14
+ override fun getPayload() = mapOf(
15
+ PaywallEventKey.CUSTOMER_INFO to customerInfo,
16
+ PaywallEventKey.STORE_TRANSACTION to storeTransaction
17
+ )
18
+ }
@@ -0,0 +1,14 @@
1
+ package com.revenuecat.purchases.react.ui.events
2
+
3
+ import com.revenuecat.purchases.react.ui.PaywallEventKey
4
+ import com.revenuecat.purchases.react.ui.PaywallEventName
5
+
6
+ internal class OnPurchaseErrorEvent(
7
+ surfaceId: Int,
8
+ viewTag: Int,
9
+ private val error: Map<String, Any?>
10
+ ) : PaywallEvent<OnPurchaseErrorEvent>(surfaceId, viewTag) {
11
+ override fun getPaywallEventName() = PaywallEventName.ON_PURCHASE_ERROR
12
+
13
+ override fun getPayload() = mapOf(PaywallEventKey.ERROR to error)
14
+ }
@@ -0,0 +1,16 @@
1
+ package com.revenuecat.purchases.react.ui.events
2
+
3
+ import com.revenuecat.purchases.react.ui.PaywallEventKey
4
+ import com.revenuecat.purchases.react.ui.PaywallEventName
5
+
6
+ internal class OnPurchaseStartedEvent(
7
+ surfaceId: Int,
8
+ viewTag: Int,
9
+ private val packageMap: Map<String, Any?>
10
+ ) : PaywallEvent<OnPurchaseStartedEvent>(surfaceId, viewTag) {
11
+ override fun getPaywallEventName() = PaywallEventName.ON_PURCHASE_STARTED
12
+
13
+ override fun getPayload() = mapOf(
14
+ PaywallEventKey.PACKAGE to packageMap,
15
+ )
16
+ }
@@ -0,0 +1,14 @@
1
+ package com.revenuecat.purchases.react.ui.events
2
+
3
+ import com.revenuecat.purchases.react.ui.PaywallEventKey
4
+ import com.revenuecat.purchases.react.ui.PaywallEventName
5
+
6
+ internal class OnRestoreCompletedEvent(
7
+ surfaceId: Int,
8
+ viewTag: Int,
9
+ private val customerInfo: Map<String, Any?>,
10
+ ) : PaywallEvent<OnRestoreCompletedEvent>(surfaceId, viewTag) {
11
+ override fun getPaywallEventName() = PaywallEventName.ON_RESTORE_COMPLETED
12
+
13
+ override fun getPayload() = mapOf(PaywallEventKey.CUSTOMER_INFO to customerInfo)
14
+ }
@@ -0,0 +1,14 @@
1
+ package com.revenuecat.purchases.react.ui.events
2
+
3
+ import com.revenuecat.purchases.react.ui.PaywallEventKey
4
+ import com.revenuecat.purchases.react.ui.PaywallEventName
5
+
6
+ internal class OnRestoreErrorEvent(
7
+ surfaceId: Int,
8
+ viewTag: Int,
9
+ private val error: Map<String, Any?>
10
+ ) : PaywallEvent<OnRestoreErrorEvent>(surfaceId, viewTag) {
11
+ override fun getPaywallEventName() = PaywallEventName.ON_RESTORE_ERROR
12
+
13
+ override fun getPayload() = mapOf(PaywallEventKey.ERROR to error)
14
+ }
@@ -0,0 +1,13 @@
1
+ package com.revenuecat.purchases.react.ui.events
2
+
3
+ import com.revenuecat.purchases.react.ui.PaywallEventKey
4
+ import com.revenuecat.purchases.react.ui.PaywallEventName
5
+
6
+ internal class OnRestoreStartedEvent(
7
+ surfaceId: Int,
8
+ viewTag: Int,
9
+ ) : PaywallEvent<OnRestoreStartedEvent>(surfaceId, viewTag) {
10
+ override fun getPaywallEventName() = PaywallEventName.ON_RESTORE_STARTED
11
+
12
+ override fun getPayload(): Map<PaywallEventKey, Map<String, Any?>> = emptyMap()
13
+ }
@@ -0,0 +1,34 @@
1
+ package com.revenuecat.purchases.react.ui.events
2
+
3
+ import com.facebook.react.bridge.WritableMap
4
+ import com.facebook.react.bridge.WritableNativeMap
5
+ import com.facebook.react.uimanager.events.Event
6
+ import com.revenuecat.purchases.react.ui.PaywallEventKey
7
+ import com.revenuecat.purchases.react.ui.PaywallEventName
8
+ import com.revenuecat.purchases.react.ui.RNPurchasesConverters
9
+
10
+ internal abstract class PaywallEvent<T>(
11
+ surfaceId: Int,
12
+ viewTag: Int,
13
+ ) : Event<PaywallEvent<T>>(surfaceId, viewTag) {
14
+
15
+ abstract fun getPaywallEventName(): PaywallEventName
16
+
17
+ abstract fun getPayload(): Map<PaywallEventKey, Map<String, Any?>>
18
+
19
+ override fun getEventName(): String {
20
+ return getPaywallEventName().eventName
21
+ }
22
+
23
+ override fun getEventData(): WritableMap {
24
+ val convertedPayload = getPayload().let { payload ->
25
+ WritableNativeMap().apply {
26
+ payload.forEach { (key, value) ->
27
+ putMap(key.key, RNPurchasesConverters.convertMapToWriteableMap(value))
28
+ }
29
+ }
30
+ }
31
+
32
+ return convertedPayload
33
+ }
34
+ }
package/ios/RNPaywalls.m CHANGED
@@ -63,19 +63,21 @@ RCT_EXPORT_MODULE();
63
63
 
64
64
  RCT_EXPORT_METHOD(presentPaywall:(nullable NSString *)offeringIdentifier
65
65
  shouldDisplayCloseButton:(BOOL)displayCloseButton
66
+ withFontFamily:(nullable NSString *)fontFamily
66
67
  withResolve:(RCTPromiseResolveBlock)resolve
67
68
  reject:(RCTPromiseRejectBlock)reject) {
68
69
  if (@available(iOS 15.0, *)) {
70
+ NSMutableDictionary *options = [NSMutableDictionary dictionary];
69
71
  if (offeringIdentifier != nil) {
70
- [self.paywalls presentPaywallWithOfferingIdentifier:offeringIdentifier
71
- displayCloseButton:displayCloseButton
72
- paywallResultHandler:^(NSString *result) {
73
- resolve(result);
74
- }];
75
- return;
72
+ options[PaywallOptionsKeys.offeringIdentifier] = offeringIdentifier;
76
73
  }
77
- [self.paywalls presentPaywallWithDisplayCloseButton:displayCloseButton
78
- paywallResultHandler:^(NSString *result) {
74
+ options[PaywallOptionsKeys.displayCloseButton] = @(displayCloseButton);
75
+ if (fontFamily) {
76
+ options[PaywallOptionsKeys.fontName] = fontFamily;
77
+ }
78
+
79
+ [self.paywalls presentPaywallWithOptions:options
80
+ paywallResultHandler:^(NSString *result) {
79
81
  resolve(result);
80
82
  }];
81
83
  } else {
@@ -86,21 +88,22 @@ RCT_EXPORT_METHOD(presentPaywall:(nullable NSString *)offeringIdentifier
86
88
  RCT_EXPORT_METHOD(presentPaywallIfNeeded:(NSString *)requiredEntitlementIdentifier
87
89
  withOfferingIdentifier:(nullable NSString *)offeringIdentifier
88
90
  shouldDisplayCloseButton:(BOOL)displayCloseButton
91
+ withFontFamily:(nullable NSString *)fontFamily
89
92
  withResolve:(RCTPromiseResolveBlock)resolve
90
93
  reject:(RCTPromiseRejectBlock)reject) {
91
94
  if (@available(iOS 15.0, *)) {
95
+ NSMutableDictionary *options = [NSMutableDictionary dictionary];
92
96
  if (offeringIdentifier != nil) {
93
- [self.paywalls presentPaywallIfNeededWithRequiredEntitlementIdentifier:requiredEntitlementIdentifier
94
- offeringIdentifier:offeringIdentifier
95
- displayCloseButton:displayCloseButton
96
- paywallResultHandler:^(NSString *result) {
97
- resolve(result);
98
- }];
99
- return;
97
+ options[PaywallOptionsKeys.offeringIdentifier] = offeringIdentifier;
100
98
  }
101
- [self.paywalls presentPaywallIfNeededWithRequiredEntitlementIdentifier:requiredEntitlementIdentifier
102
- displayCloseButton:displayCloseButton
103
- paywallResultHandler:^(NSString *result) {
99
+ options[PaywallOptionsKeys.requiredEntitlementIdentifier] = requiredEntitlementIdentifier;
100
+ options[PaywallOptionsKeys.displayCloseButton] = @(displayCloseButton);
101
+ if (fontFamily) {
102
+ options[PaywallOptionsKeys.fontName] = fontFamily;
103
+ }
104
+
105
+ [self.paywalls presentPaywallIfNeededWithOptions:options
106
+ paywallResultHandler:^(NSString *result) {
104
107
  resolve(result);
105
108
  }];
106
109
  } else {
@@ -57,9 +57,10 @@ class RevenueCatUI {
57
57
  */
58
58
  static presentPaywall({
59
59
  offering,
60
- displayCloseButton = RevenueCatUI.Defaults.PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON
60
+ displayCloseButton = RevenueCatUI.Defaults.PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON,
61
+ fontFamily
61
62
  } = {}) {
62
- return RNPaywalls.presentPaywall((offering === null || offering === void 0 ? void 0 : offering.identifier) ?? null, displayCloseButton);
63
+ return RNPaywalls.presentPaywall((offering === null || offering === void 0 ? void 0 : offering.identifier) ?? null, displayCloseButton, fontFamily);
63
64
  }
64
65
 
65
66
  /**
@@ -78,9 +79,10 @@ class RevenueCatUI {
78
79
  static presentPaywallIfNeeded({
79
80
  requiredEntitlementIdentifier,
80
81
  offering,
81
- displayCloseButton = RevenueCatUI.Defaults.PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON
82
+ displayCloseButton = RevenueCatUI.Defaults.PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON,
83
+ fontFamily
82
84
  }) {
83
- return RNPaywalls.presentPaywallIfNeeded(requiredEntitlementIdentifier, (offering === null || offering === void 0 ? void 0 : offering.identifier) ?? null, displayCloseButton);
85
+ return RNPaywalls.presentPaywallIfNeeded(requiredEntitlementIdentifier, (offering === null || offering === void 0 ? void 0 : offering.identifier) ?? null, displayCloseButton, fontFamily);
84
86
  }
85
87
  static Paywall = ({
86
88
  style,
@@ -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","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","style","children","options","onPurchaseStarted","onPurchaseCompleted","onPurchaseError","onPurchaseCancelled","onRestoreStarted","onRestoreCompleted","onRestoreError","onDismiss","createElement","event","nativeEvent","flex","PaywallFooterContainerView","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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","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","prototype","hasOwnProperty","call","i","set","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","fontFamily","identifier","presentPaywallIfNeeded","requiredEntitlementIdentifier","Paywall","style","children","options","onPurchaseStarted","onPurchaseCompleted","onPurchaseError","onPurchaseCancelled","onRestoreStarted","onRestoreCompleted","onRestoreError","onDismiss","createElement","event","nativeEvent","flex","PaywallFooterContainerView","paddingBottom","setPaddingBottom","useState","useEffect","handleSafeAreaInsetsChange","bottom","subscription","addListener","remove","View","ScrollView","contentContainerStyle","flexGrow","marginTop","exports"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAWA,IAAAC,4BAAA,GAAAD,OAAA;AAMA,IAAAE,MAAA,GAAAC,uBAAA,CAAAH,OAAA;AAAmE,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAF,wBAAAE,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAInE,MAAMY,aAAa,GAChB,oFAAmF,GACpFC,qBAAQ,CAACC,MAAM,CAAC;EAACC,GAAG,EAAE,gCAAgC;EAAElB,OAAO,EAAE;AAAE,CAAC,CAAC,GACrE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMmB,UAAU,GAAGC,0BAAa,CAACD,UAAU;AAE3C,IAAI,CAACA,UAAU,EAAE;EACf,MAAM,IAAIE,KAAK,CAACN,aAAa,CAAC;AAChC;AAEA,MAAMO,YAAY,GAAG,IAAIC,+BAAkB,CAACJ,UAAU,CAAC;AAEvD,MAAMK,eAAe,GACnBC,sBAAS,CAACC,oBAAoB,CAAC,SAAS,CAAC,IAAI,IAAI,GAC7C,IAAAC,mCAAsB,EAA6B,SAAS,CAAC,GAC7D,MAAM;EACN,MAAM,IAAIN,KAAK,CAACN,aAAa,CAAC;AAChC,CAAC;AAEL,MAAMa,yBAAyB,GAAGH,sBAAS,CAACC,oBAAoB,CAAC,SAAS,CAAC,IAAI,IAAI,GAC/E,IAAAC,mCAAsB,EAAyB,qBAAqB,CAAC,GACrE,MAAM;EACN,MAAM,IAAIN,KAAK,CAACN,aAAa,CAAC;AAChC,CAAC;;AAwDH;;AAuCe,MAAMc,YAAY,CAAC;EAEhC,OAAeC,QAAQ,GAAG;IACxBC,oCAAoC,EAAE;EACxC,CAAC;;EAED;AACF;AACA;AACA;AACA;EACE,OAAcC,cAAc,GAAGA,2CAAc;;EAE7C;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAcC,cAAcA,CAAC;IACEC,QAAQ;IACRC,kBAAkB,GAAGN,YAAY,CAACC,QAAQ,CAACC,oCAAoC;IAC/EK;EACoB,CAAC,GAAG,CAAC,CAAC,EAA2B;IAClF,OAAOjB,UAAU,CAACc,cAAc,CAC9B,CAAAC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,UAAU,KAAI,IAAI,EAC5BF,kBAAkB,EAClBC,UACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAcE,sBAAsBA,CAAC;IACEC,6BAA6B;IAC7BL,QAAQ;IACRC,kBAAkB,GAAGN,YAAY,CAACC,QAAQ,CAACC,oCAAoC;IAC/EK;EAC4B,CAAC,EAA2B;IAC7F,OAAOjB,UAAU,CAACmB,sBAAsB,CACtCC,6BAA6B,EAC7B,CAAAL,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,UAAU,KAAI,IAAI,EAC5BF,kBAAkB,EAClBC,UACF,CAAC;EACH;EAEA,OAAcI,OAAO,GAAyCA,CAAC;IACEC,KAAK;IACLC,QAAQ;IACRC,OAAO;IACPC,iBAAiB;IACjBC,mBAAmB;IACnBC,eAAe;IACfC,mBAAmB;IACnBC,gBAAgB;IAChBC,kBAAkB;IAClBC,cAAc;IACdC;EACF,CAAC,kBAC9D3D,MAAA,CAAAQ,OAAA,CAAAoD,aAAA,CAAC5B,eAAe;IAACmB,OAAO,EAAEA,OAAQ;IACjBD,QAAQ,EAAEA,QAAS;IACnBE,iBAAiB,EAAGS,KAAU,IAAKT,iBAAiB,IAAIA,iBAAiB,CAACS,KAAK,CAACC,WAAW,CAAE;IAC7FT,mBAAmB,EAAGQ,KAAU,IAAKR,mBAAmB,IAAIA,mBAAmB,CAACQ,KAAK,CAACC,WAAW,CAAE;IACnGR,eAAe,EAAGO,KAAU,IAAKP,eAAe,IAAIA,eAAe,CAACO,KAAK,CAACC,WAAW,CAAE;IACvFP,mBAAmB,EAAEA,CAAA,KAAMA,mBAAmB,IAAIA,mBAAmB,CAAC,CAAE;IACxEC,gBAAgB,EAAEA,CAAA,KAAMA,gBAAgB,IAAIA,gBAAgB,CAAC,CAAE;IAC/DC,kBAAkB,EAAGI,KAAU,IAAKJ,kBAAkB,IAAIA,kBAAkB,CAACI,KAAK,CAACC,WAAW,CAAE;IAChGJ,cAAc,EAAGG,KAAU,IAAKH,cAAc,IAAIA,cAAc,CAACG,KAAK,CAACC,WAAW,CAAE;IACpFH,SAAS,EAAEA,CAAA,KAAMA,SAAS,IAAIA,SAAS,CAAC,CAAE;IAC1CV,KAAK,EAAE,CAAC;MAACc,IAAI,EAAE;IAAC,CAAC,EAAEd,KAAK;EAAE,CAAC,CAC7C;EAED,OAAce,0BAA0B,GAAqCA,CAAC;IACEf,KAAK;IACLC,QAAQ;IACRC,OAAO;IACPC,iBAAiB;IACjBC,mBAAmB;IACnBC,eAAe;IACfC,mBAAmB;IACnBC,gBAAgB;IAChBC,kBAAkB;IAClBC,cAAc;IACdC;EACF,CAAC,KAAK;IAClF;IACA;IACA;IACA;IACA,MAAM,CAACM,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAC,eAAQ,EAAC,EAAE,CAAC;IAEtD,IAAAC,gBAAS,EAAC,MAAM;MAKd,MAAMC,0BAA0B,GAAGA,CAAC;QAACC;MAAwC,CAAC,KAAK;QACjFJ,gBAAgB,CAAC,EAAE,GAAGI,MAAM,CAAC;MAC/B,CAAC;MAED,MAAMC,YAAY,GAAGzC,YAAY,CAAC0C,WAAW,CAC3C,yBAAyB,EACzBH,0BACF,CAAC;MAED,OAAO,MAAM;QACXE,YAAY,CAACE,MAAM,CAAC,CAAC;MACvB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;IAEN,oBACEzE,MAAA,CAAAQ,OAAA,CAAAoD,aAAA,CAAC/D,YAAA,CAAA6E,IAAI;MAACzB,KAAK,EAAE,CAAC;QAACc,IAAI,EAAE;MAAC,CAAC,EAAEd,KAAK;IAAE,gBAC9BjD,MAAA,CAAAQ,OAAA,CAAAoD,aAAA,CAAC/D,YAAA,CAAA8E,UAAU;MAACC,qBAAqB,EAAE;QAACC,QAAQ,EAAE,CAAC;QAAEZ;MAAa;IAAE,GAC7Df,QACS,CAAC,eAEblD,MAAA,CAAAQ,OAAA,CAAAoD,aAAA,CAACxB,yBAAyB;MACxBa,KAAK,EAAE;QAAC6B,SAAS,EAAE,CAAC;MAAE,CAAE;MACxB3B,OAAO,EAAEA,OAAQ;MACjBC,iBAAiB,EAAGS,KAAU,IAAKT,iBAAiB,IAAIA,iBAAiB,CAACS,KAAK,CAACC,WAAW,CAAE;MAC7FT,mBAAmB,EAAGQ,KAAU,IAAKR,mBAAmB,IAAIA,mBAAmB,CAACQ,KAAK,CAACC,WAAW,CAAE;MACnGR,eAAe,EAAGO,KAAU,IAAKP,eAAe,IAAIA,eAAe,CAACO,KAAK,CAACC,WAAW,CAAE;MACvFP,mBAAmB,EAAEA,CAAA,KAAMA,mBAAmB,IAAIA,mBAAmB,CAAC,CAAE;MACxEC,gBAAgB,EAAEA,CAAA,KAAMA,gBAAgB,IAAIA,gBAAgB,CAAC,CAAE;MAC/DC,kBAAkB,EAAGI,KAAU,IAAKJ,kBAAkB,IAAIA,kBAAkB,CAACI,KAAK,CAACC,WAAW,CAAE;MAChGJ,cAAc,EAAGG,KAAU,IAAKH,cAAc,IAAIA,cAAc,CAACG,KAAK,CAACC,WAAW,CAAE;MACpFH,SAAS,EAAEA,CAAA,KAAMA,SAAS,IAAIA,SAAS,CAAC;IAAE,CAC3C,CACG,CAAC;EAEX,CAAC;AACH;AAACoB,OAAA,CAAAvE,OAAA,GAAA6B,YAAA","ignoreList":[]}
@@ -44,9 +44,10 @@ export default class RevenueCatUI {
44
44
  */
45
45
  static presentPaywall({
46
46
  offering,
47
- displayCloseButton = RevenueCatUI.Defaults.PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON
47
+ displayCloseButton = RevenueCatUI.Defaults.PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON,
48
+ fontFamily
48
49
  } = {}) {
49
- return RNPaywalls.presentPaywall((offering === null || offering === void 0 ? void 0 : offering.identifier) ?? null, displayCloseButton);
50
+ return RNPaywalls.presentPaywall((offering === null || offering === void 0 ? void 0 : offering.identifier) ?? null, displayCloseButton, fontFamily);
50
51
  }
51
52
 
52
53
  /**
@@ -65,9 +66,10 @@ export default class RevenueCatUI {
65
66
  static presentPaywallIfNeeded({
66
67
  requiredEntitlementIdentifier,
67
68
  offering,
68
- displayCloseButton = RevenueCatUI.Defaults.PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON
69
+ displayCloseButton = RevenueCatUI.Defaults.PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON,
70
+ fontFamily
69
71
  }) {
70
- return RNPaywalls.presentPaywallIfNeeded(requiredEntitlementIdentifier, (offering === null || offering === void 0 ? void 0 : offering.identifier) ?? null, displayCloseButton);
72
+ return RNPaywalls.presentPaywallIfNeeded(requiredEntitlementIdentifier, (offering === null || offering === void 0 ? void 0 : offering.identifier) ?? null, displayCloseButton, fontFamily);
71
73
  }
72
74
  static Paywall = ({
73
75
  style,
@@ -1 +1 @@
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","style","children","options","onPurchaseStarted","onPurchaseCompleted","onPurchaseError","onPurchaseCancelled","onRestoreStarted","onRestoreCompleted","onRestoreError","onDismiss","createElement","event","nativeEvent","flex","PaywallFooterContainerView","paddingBottom","setPaddingBottom","handleSafeAreaInsetsChange","bottom","subscription","addListener","remove","contentContainerStyle","flexGrow","marginTop"],"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","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","PaywallFooterContainerView","paddingBottom","setPaddingBottom","handleSafeAreaInsetsChange","bottom","subscription","addListener","remove","contentContainerStyle","flexGrow","marginTop"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SACEA,kBAAkB,EAClBC,aAAa,EACbC,QAAQ,EACRC,sBAAsB,EACtBC,UAAU,EAEVC,SAAS,EACTC,IAAI,QAEC,cAAc;AACrB,SAEEC,cAAc,QAGT,2CAA2C;AAClD,OAAOC,KAAK,IAAoBC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAElE,SAASH,cAAc,QAAQ,2CAA2C;AAE1E,MAAMI,aAAa,GAChB,oFAAmF,GACpFT,QAAQ,CAACU,MAAM,CAAC;EAACC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAE,CAAC,CAAC,GACrE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,UAAU,GAAGd,aAAa,CAACc,UAAU;AAE3C,IAAI,CAACA,UAAU,EAAE;EACf,MAAM,IAAIC,KAAK,CAACL,aAAa,CAAC;AAChC;AAEA,MAAMM,YAAY,GAAG,IAAIjB,kBAAkB,CAACe,UAAU,CAAC;AAEvD,MAAMG,eAAe,GACnBb,SAAS,CAACc,oBAAoB,CAAC,SAAS,CAAC,IAAI,IAAI,GAC7ChB,sBAAsB,CAA6B,SAAS,CAAC,GAC7D,MAAM;EACN,MAAM,IAAIa,KAAK,CAACL,aAAa,CAAC;AAChC,CAAC;AAEL,MAAMS,yBAAyB,GAAGf,SAAS,CAACc,oBAAoB,CAAC,SAAS,CAAC,IAAI,IAAI,GAC/EhB,sBAAsB,CAAyB,qBAAqB,CAAC,GACrE,MAAM;EACN,MAAM,IAAIa,KAAK,CAACL,aAAa,CAAC;AAChC,CAAC;;AAwDH;;AAuCA,eAAe,MAAMU,YAAY,CAAC;EAEhC,OAAeC,QAAQ,GAAG;IACxBC,oCAAoC,EAAE;EACxC,CAAC;;EAED;AACF;AACA;AACA;AACA;EACE,OAAchB,cAAc,GAAGA,cAAc;;EAE7C;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAciB,cAAcA,CAAC;IACEC,QAAQ;IACRC,kBAAkB,GAAGL,YAAY,CAACC,QAAQ,CAACC,oCAAoC;IAC/EI;EACoB,CAAC,GAAG,CAAC,CAAC,EAA2B;IAClF,OAAOZ,UAAU,CAACS,cAAc,CAC9B,CAAAC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,UAAU,KAAI,IAAI,EAC5BF,kBAAkB,EAClBC,UACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAcE,sBAAsBA,CAAC;IACEC,6BAA6B;IAC7BL,QAAQ;IACRC,kBAAkB,GAAGL,YAAY,CAACC,QAAQ,CAACC,oCAAoC;IAC/EI;EAC4B,CAAC,EAA2B;IAC7F,OAAOZ,UAAU,CAACc,sBAAsB,CACtCC,6BAA6B,EAC7B,CAAAL,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,UAAU,KAAI,IAAI,EAC5BF,kBAAkB,EAClBC,UACF,CAAC;EACH;EAEA,OAAcI,OAAO,GAAyCA,CAAC;IACEC,KAAK;IACLC,QAAQ;IACRC,OAAO;IACPC,iBAAiB;IACjBC,mBAAmB;IACnBC,eAAe;IACfC,mBAAmB;IACnBC,gBAAgB;IAChBC,kBAAkB;IAClBC,cAAc;IACdC;EACF,CAAC,kBAC9DlC,KAAA,CAAAmC,aAAA,CAACzB,eAAe;IAACgB,OAAO,EAAEA,OAAQ;IACjBD,QAAQ,EAAEA,QAAS;IACnBE,iBAAiB,EAAGS,KAAU,IAAKT,iBAAiB,IAAIA,iBAAiB,CAACS,KAAK,CAACC,WAAW,CAAE;IAC7FT,mBAAmB,EAAGQ,KAAU,IAAKR,mBAAmB,IAAIA,mBAAmB,CAACQ,KAAK,CAACC,WAAW,CAAE;IACnGR,eAAe,EAAGO,KAAU,IAAKP,eAAe,IAAIA,eAAe,CAACO,KAAK,CAACC,WAAW,CAAE;IACvFP,mBAAmB,EAAEA,CAAA,KAAMA,mBAAmB,IAAIA,mBAAmB,CAAC,CAAE;IACxEC,gBAAgB,EAAEA,CAAA,KAAMA,gBAAgB,IAAIA,gBAAgB,CAAC,CAAE;IAC/DC,kBAAkB,EAAGI,KAAU,IAAKJ,kBAAkB,IAAIA,kBAAkB,CAACI,KAAK,CAACC,WAAW,CAAE;IAChGJ,cAAc,EAAGG,KAAU,IAAKH,cAAc,IAAIA,cAAc,CAACG,KAAK,CAACC,WAAW,CAAE;IACpFH,SAAS,EAAEA,CAAA,KAAMA,SAAS,IAAIA,SAAS,CAAC,CAAE;IAC1CV,KAAK,EAAE,CAAC;MAACc,IAAI,EAAE;IAAC,CAAC,EAAEd,KAAK;EAAE,CAAC,CAC7C;EAED,OAAce,0BAA0B,GAAqCA,CAAC;IACEf,KAAK;IACLC,QAAQ;IACRC,OAAO;IACPC,iBAAiB;IACjBC,mBAAmB;IACnBC,eAAe;IACfC,mBAAmB;IACnBC,gBAAgB;IAChBC,kBAAkB;IAClBC,cAAc;IACdC;EACF,CAAC,KAAK;IAClF;IACA;IACA;IACA;IACA,MAAM,CAACM,aAAa,EAAEC,gBAAgB,CAAC,GAAGvC,QAAQ,CAAC,EAAE,CAAC;IAEtDD,SAAS,CAAC,MAAM;MAKd,MAAMyC,0BAA0B,GAAGA,CAAC;QAACC;MAAwC,CAAC,KAAK;QACjFF,gBAAgB,CAAC,EAAE,GAAGE,MAAM,CAAC;MAC/B,CAAC;MAED,MAAMC,YAAY,GAAGnC,YAAY,CAACoC,WAAW,CAC3C,yBAAyB,EACzBH,0BACF,CAAC;MAED,OAAO,MAAM;QACXE,YAAY,CAACE,MAAM,CAAC,CAAC;MACvB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;IAEN,oBACE9C,KAAA,CAAAmC,aAAA,CAACrC,IAAI;MAAC0B,KAAK,EAAE,CAAC;QAACc,IAAI,EAAE;MAAC,CAAC,EAAEd,KAAK;IAAE,gBAC9BxB,KAAA,CAAAmC,aAAA,CAACvC,UAAU;MAACmD,qBAAqB,EAAE;QAACC,QAAQ,EAAE,CAAC;QAAER;MAAa;IAAE,GAC7Df,QACS,CAAC,eAEbzB,KAAA,CAAAmC,aAAA,CAACvB,yBAAyB;MACxBY,KAAK,EAAE;QAACyB,SAAS,EAAE,CAAC;MAAE,CAAE;MACxBvB,OAAO,EAAEA,OAAQ;MACjBC,iBAAiB,EAAGS,KAAU,IAAKT,iBAAiB,IAAIA,iBAAiB,CAACS,KAAK,CAACC,WAAW,CAAE;MAC7FT,mBAAmB,EAAGQ,KAAU,IAAKR,mBAAmB,IAAIA,mBAAmB,CAACQ,KAAK,CAACC,WAAW,CAAE;MACnGR,eAAe,EAAGO,KAAU,IAAKP,eAAe,IAAIA,eAAe,CAACO,KAAK,CAACC,WAAW,CAAE;MACvFP,mBAAmB,EAAEA,CAAA,KAAMA,mBAAmB,IAAIA,mBAAmB,CAAC,CAAE;MACxEC,gBAAgB,EAAEA,CAAA,KAAMA,gBAAgB,IAAIA,gBAAgB,CAAC,CAAE;MAC/DC,kBAAkB,EAAGI,KAAU,IAAKJ,kBAAkB,IAAIA,kBAAkB,CAACI,KAAK,CAACC,WAAW,CAAE;MAChGJ,cAAc,EAAGG,KAAU,IAAKH,cAAc,IAAIA,cAAc,CAACG,KAAK,CAACC,WAAW,CAAE;MACpFH,SAAS,EAAEA,CAAA,KAAMA,SAAS,IAAIA,SAAS,CAAC;IAAE,CAC3C,CACG,CAAC;EAEX,CAAC;AACH","ignoreList":[]}
@@ -11,6 +11,17 @@ export interface PresentPaywallParams {
11
11
  * The offering to load the paywall with. This will be the "current" offering by default.
12
12
  */
13
13
  offering?: PurchasesOffering;
14
+ /**
15
+ * The fontFamily name to use in the Paywall. In order to add a font family, add it in the react native app and make
16
+ * sure to run `npx react-native-asset` so it's added to the native components.
17
+ * Supported font types are `.ttf` and `.otf`.
18
+ * Make sure the file names follow the convention:
19
+ * - Regular: MyFont.ttf/MyFont.otf
20
+ * - Bold: MyFont_bold.ttf/MyFont_bold.otf
21
+ * - Italic: MyFont_italic.ttf/MyFont_italic.otf
22
+ * - Bold and Italic: MyFont_bold_italic.ttf/MyFont_bold_italic.otf
23
+ */
24
+ fontFamily?: string | null;
14
25
  }
15
26
  export type PresentPaywallIfNeededParams = PresentPaywallParams & {
16
27
  /**
@@ -106,7 +117,7 @@ export default class RevenueCatUI {
106
117
  * @param {PresentPaywallParams} params - The options for presenting the paywall.
107
118
  * @returns {Promise<PAYWALL_RESULT>} A promise that resolves with the result of the paywall presentation.
108
119
  */
109
- static presentPaywall({ offering, displayCloseButton }?: PresentPaywallParams): Promise<PAYWALL_RESULT>;
120
+ static presentPaywall({ offering, displayCloseButton, fontFamily, }?: PresentPaywallParams): Promise<PAYWALL_RESULT>;
110
121
  /**
111
122
  * Presents a paywall to the user if a specific entitlement is not already owned.
112
123
  *
@@ -120,7 +131,7 @@ export default class RevenueCatUI {
120
131
  * @param {PresentPaywallIfNeededParams} params - The parameters for presenting the paywall.
121
132
  * @returns {Promise<PAYWALL_RESULT>} A promise that resolves with the result of the paywall presentation.
122
133
  */
123
- static presentPaywallIfNeeded({ requiredEntitlementIdentifier, offering, displayCloseButton }: PresentPaywallIfNeededParams): Promise<PAYWALL_RESULT>;
134
+ static presentPaywallIfNeeded({ requiredEntitlementIdentifier, offering, displayCloseButton, fontFamily, }: PresentPaywallIfNeededParams): Promise<PAYWALL_RESULT>;
124
135
  static Paywall: React.FC<FullScreenPaywallViewProps>;
125
136
  static PaywallFooterContainerView: React.FC<FooterPaywallViewProps>;
126
137
  }
@@ -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":"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"}
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.24.1",
4
+ "version": "7.26.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",
@@ -115,6 +115,6 @@
115
115
  },
116
116
  "dependencies": {
117
117
  "@revenuecat/purchases-typescript-internal": "10.1.0",
118
- "react-native-purchases": "7.24.1"
118
+ "react-native-purchases": "7.26.0"
119
119
  }
120
120
  }
package/src/index.tsx CHANGED
@@ -56,6 +56,18 @@ export interface PresentPaywallParams {
56
56
  * The offering to load the paywall with. This will be the "current" offering by default.
57
57
  */
58
58
  offering?: PurchasesOffering;
59
+
60
+ /**
61
+ * The fontFamily name to use in the Paywall. In order to add a font family, add it in the react native app and make
62
+ * sure to run `npx react-native-asset` so it's added to the native components.
63
+ * Supported font types are `.ttf` and `.otf`.
64
+ * Make sure the file names follow the convention:
65
+ * - Regular: MyFont.ttf/MyFont.otf
66
+ * - Bold: MyFont_bold.ttf/MyFont_bold.otf
67
+ * - Italic: MyFont_italic.ttf/MyFont_italic.otf
68
+ * - Bold and Italic: MyFont_bold_italic.ttf/MyFont_bold_italic.otf
69
+ */
70
+ fontFamily?: string | null;
59
71
  }
60
72
 
61
73
  export type PresentPaywallIfNeededParams = PresentPaywallParams & {
@@ -152,9 +164,14 @@ export default class RevenueCatUI {
152
164
  */
153
165
  public static presentPaywall({
154
166
  offering,
155
- displayCloseButton = RevenueCatUI.Defaults.PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON
167
+ displayCloseButton = RevenueCatUI.Defaults.PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON,
168
+ fontFamily,
156
169
  }: PresentPaywallParams = {}): Promise<PAYWALL_RESULT> {
157
- return RNPaywalls.presentPaywall(offering?.identifier ?? null, displayCloseButton)
170
+ return RNPaywalls.presentPaywall(
171
+ offering?.identifier ?? null,
172
+ displayCloseButton,
173
+ fontFamily,
174
+ )
158
175
  }
159
176
 
160
177
  /**
@@ -173,9 +190,15 @@ export default class RevenueCatUI {
173
190
  public static presentPaywallIfNeeded({
174
191
  requiredEntitlementIdentifier,
175
192
  offering,
176
- displayCloseButton = RevenueCatUI.Defaults.PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON
193
+ displayCloseButton = RevenueCatUI.Defaults.PRESENT_PAYWALL_DISPLAY_CLOSE_BUTTON,
194
+ fontFamily,
177
195
  }: PresentPaywallIfNeededParams): Promise<PAYWALL_RESULT> {
178
- return RNPaywalls.presentPaywallIfNeeded(requiredEntitlementIdentifier, offering?.identifier ?? null, displayCloseButton)
196
+ return RNPaywalls.presentPaywallIfNeeded(
197
+ requiredEntitlementIdentifier,
198
+ offering?.identifier ?? null,
199
+ displayCloseButton,
200
+ fontFamily,
201
+ )
179
202
  }
180
203
 
181
204
  public static Paywall: React.FC<FullScreenPaywallViewProps> = ({