react-native-purchases-ui 7.24.1 → 7.25.0
Sign up to get free protection for your applications and to get access to all the features.
- package/RNPaywalls.podspec +1 -1
- package/android/build.gradle +2 -2
- package/android/src/main/java/com/revenuecat/purchases/react/ui/BasePaywallViewManager.kt +67 -56
- package/android/src/main/java/com/revenuecat/purchases/react/ui/FontAssetManager.kt +60 -16
- package/android/src/main/java/com/revenuecat/purchases/react/ui/{PaywallEvent.kt → PaywallEventName.kt} +1 -1
- package/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallFooterViewManager.kt +3 -3
- package/android/src/main/java/com/revenuecat/purchases/react/ui/PaywallViewManager.kt +4 -3
- package/android/src/main/java/com/revenuecat/purchases/react/ui/RNPaywallsModule.kt +14 -2
- package/android/src/main/java/com/revenuecat/purchases/react/ui/ViewExtensions.kt +7 -0
- package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnDismissEvent.kt +13 -0
- package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCancelledEvent.kt +13 -0
- package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCompletedEvent.kt +18 -0
- package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseErrorEvent.kt +14 -0
- package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseStartedEvent.kt +16 -0
- package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreCompletedEvent.kt +14 -0
- package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreErrorEvent.kt +14 -0
- package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreStartedEvent.kt +13 -0
- package/android/src/main/java/com/revenuecat/purchases/react/ui/events/PaywallEvent.kt +34 -0
- package/ios/RNPaywalls.m +21 -18
- package/lib/commonjs/index.js +6 -4
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +6 -4
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts +13 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/index.tsx +27 -4
package/RNPaywalls.podspec
CHANGED
@@ -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
|
20
|
+
spec.dependency "PurchasesHybridCommonUI", '10.3.2'
|
21
21
|
spec.swift_version = '5.7'
|
22
22
|
end
|
package/android/build.gradle
CHANGED
@@ -59,7 +59,7 @@ android {
|
|
59
59
|
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
|
60
60
|
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
61
61
|
versionCode 1
|
62
|
-
versionName '7.
|
62
|
+
versionName '7.25.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
|
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.
|
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(
|
31
|
-
.putEvent(
|
32
|
-
.putEvent(
|
33
|
-
.putEvent(
|
34
|
-
.putEvent(
|
35
|
-
.putEvent(
|
36
|
-
.putEvent(
|
37
|
-
.putEvent(
|
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 =
|
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
|
84
|
-
|
90
|
+
val event = OnPurchaseStartedEvent(
|
91
|
+
surfaceId = view.surfaceId,
|
92
|
+
viewTag = view.id,
|
93
|
+
rcPackage
|
85
94
|
)
|
86
|
-
emitEvent(themedReactContext, view.id,
|
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
|
94
|
-
|
95
|
-
|
102
|
+
val event = OnPurchaseCompletedEvent(
|
103
|
+
surfaceId = view.surfaceId,
|
104
|
+
viewTag = view.id,
|
105
|
+
customerInfo,
|
106
|
+
storeTransaction
|
96
107
|
)
|
97
|
-
emitEvent(themedReactContext, view.id,
|
108
|
+
emitEvent(themedReactContext, view.id, event)
|
98
109
|
}
|
99
110
|
|
100
111
|
override fun onPurchaseError(error: Map<String, Any?>) {
|
101
|
-
val
|
102
|
-
|
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
|
-
|
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
|
-
|
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
|
115
|
-
|
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
|
120
|
-
|
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:
|
128
|
-
): (() -> Unit) {
|
129
|
-
|
130
|
-
|
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:
|
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:
|
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
|
-
|
170
|
-
|
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
|
-
|
43
|
-
val fontsInFamily =
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
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
|
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
|
-
|
60
|
-
|
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
|
-
|
22
|
-
|
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,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
|
+
}
|
package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCancelledEvent.kt
ADDED
@@ -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
|
+
}
|
package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseCompletedEvent.kt
ADDED
@@ -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
|
+
}
|
package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseErrorEvent.kt
ADDED
@@ -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
|
+
}
|
package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnPurchaseStartedEvent.kt
ADDED
@@ -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
|
+
}
|
package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreCompletedEvent.kt
ADDED
@@ -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
|
+
}
|
package/android/src/main/java/com/revenuecat/purchases/react/ui/events/OnRestoreStartedEvent.kt
ADDED
@@ -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
|
-
[
|
71
|
-
displayCloseButton:displayCloseButton
|
72
|
-
paywallResultHandler:^(NSString *result) {
|
73
|
-
resolve(result);
|
74
|
-
}];
|
75
|
-
return;
|
72
|
+
options[PaywallOptionsKeys.offeringIdentifier] = offeringIdentifier;
|
76
73
|
}
|
77
|
-
[
|
78
|
-
|
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
|
-
[
|
94
|
-
offeringIdentifier:offeringIdentifier
|
95
|
-
displayCloseButton:displayCloseButton
|
96
|
-
paywallResultHandler:^(NSString *result) {
|
97
|
-
resolve(result);
|
98
|
-
}];
|
99
|
-
return;
|
97
|
+
options[PaywallOptionsKeys.offeringIdentifier] = offeringIdentifier;
|
100
98
|
}
|
101
|
-
[
|
102
|
-
|
103
|
-
|
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 {
|
package/lib/commonjs/index.js
CHANGED
@@ -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":";;;;;;;;;;;;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;;
|
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":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
@@ -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,
|
package/lib/module/index.js.map
CHANGED
@@ -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":"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;;
|
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":"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","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":"AAAA,OAAO,EAML,KAAK,SAAS,EAGd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,YAAY,EACjB,cAAc,EAAE,KAAK,cAAc,EACnC,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAC7C,KAAK,yBAAyB,EAC/B,MAAM,2CAA2C,CAAC;AACnD,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;
|
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.
|
4
|
+
"version": "7.25.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.
|
118
|
+
"react-native-purchases": "7.25.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(
|
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(
|
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> = ({
|