rn-onboarding-analytics 1.6.0 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +119 -2
- package/lib/module/spill-onboarding/components/OnboardingImageContainer.js.map +1 -1
- package/lib/module/spill-onboarding/components/OnboardingPaywallPanel.js +241 -16
- package/lib/module/spill-onboarding/components/OnboardingPaywallPanel.js.map +1 -1
- package/lib/module/spill-onboarding/index.js +9 -2
- package/lib/module/spill-onboarding/index.js.map +1 -1
- package/lib/typescript/src/spill-onboarding/components/OnboardingImageContainer.d.ts.map +1 -1
- package/lib/typescript/src/spill-onboarding/components/OnboardingPaywallPanel.d.ts +1 -1
- package/lib/typescript/src/spill-onboarding/components/OnboardingPaywallPanel.d.ts.map +1 -1
- package/lib/typescript/src/spill-onboarding/index.d.ts.map +1 -1
- package/lib/typescript/src/spill-onboarding/types.d.ts +34 -3
- package/lib/typescript/src/spill-onboarding/types.d.ts.map +1 -1
- package/package.json +8 -4
- package/src/spill-onboarding/components/OnboardingImageContainer.tsx +2 -1
- package/src/spill-onboarding/components/OnboardingPaywallPanel.tsx +294 -16
- package/src/spill-onboarding/index.tsx +7 -2
- package/src/spill-onboarding/types.ts +41 -3
package/README.md
CHANGED
|
@@ -28,14 +28,25 @@ npm install rn-onboarding-analytics
|
|
|
28
28
|
The library requires these dependencies for animations and safe area context:
|
|
29
29
|
|
|
30
30
|
```sh
|
|
31
|
-
npm install react-native-reanimated react-native-safe-area-context expo-constants expo-localization
|
|
31
|
+
npm install react-native-reanimated react-native-safe-area-context expo-constants expo-localization react-native-iap
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
+
```
|
|
35
|
+
Add on the babel config:
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
plugins: [
|
|
39
|
+
// should be always the last plugin
|
|
40
|
+
'react-native-reanimated/plugin',
|
|
41
|
+
],
|
|
42
|
+
|
|
43
|
+
````
|
|
44
|
+
|
|
34
45
|
Optionally for image support, install one of:
|
|
35
46
|
|
|
36
47
|
```sh
|
|
37
48
|
npm install expo-image
|
|
38
|
-
|
|
49
|
+
````
|
|
39
50
|
|
|
40
51
|
```sh
|
|
41
52
|
npm install react-native-svg
|
|
@@ -348,6 +359,112 @@ skipButton={({ onPress }) => (
|
|
|
348
359
|
)}
|
|
349
360
|
```
|
|
350
361
|
|
|
362
|
+
#### `paywallPanel`
|
|
363
|
+
|
|
364
|
+
**Type:** `OnboardingPaywallPanelConfig`
|
|
365
|
+
**Optional** - Configuration for the paywall screen shown after the last step.
|
|
366
|
+
|
|
367
|
+
The paywall panel can be either:
|
|
368
|
+
|
|
369
|
+
- **Configuration object**: Pass an object with properties to use the default paywall
|
|
370
|
+
- **Custom component**: Pass a component that receives `onPressContinue` callback
|
|
371
|
+
|
|
372
|
+
**Option 1: Configuration Object**
|
|
373
|
+
|
|
374
|
+
You can use the streamlined configuration by passing `products` with the required parameters. The `SKus` can be defined either as a platform-specific object or a simple array of strings.
|
|
375
|
+
|
|
376
|
+
```tsx
|
|
377
|
+
paywallPanel={{
|
|
378
|
+
title: "Unlock Premium",
|
|
379
|
+
subtitle: "Get access to all features",
|
|
380
|
+
button: "Subscribe",
|
|
381
|
+
image: require('./assets/paywall.png'),
|
|
382
|
+
onPressContinue: (planId) => console.log('Purchased:', planId),
|
|
383
|
+
// Optional links
|
|
384
|
+
onRestorePurchase: {
|
|
385
|
+
text: "Restore",
|
|
386
|
+
onPress: () => console.log("Restore clicked"),
|
|
387
|
+
},
|
|
388
|
+
onTerms: {
|
|
389
|
+
text: "Terms",
|
|
390
|
+
onPress: () => console.log("Terms clicked"),
|
|
391
|
+
},
|
|
392
|
+
onPrivacy: {
|
|
393
|
+
text: "Privacy",
|
|
394
|
+
onPress: () => console.log("Privacy clicked"),
|
|
395
|
+
},
|
|
396
|
+
products: [
|
|
397
|
+
{
|
|
398
|
+
// Platform specific SKUs (Recommended)
|
|
399
|
+
SKus: {
|
|
400
|
+
ios: ['pro_monthly_ios'],
|
|
401
|
+
android: ['pro_monthly_android']
|
|
402
|
+
},
|
|
403
|
+
title: "Monthly Pro",
|
|
404
|
+
featues: ["Unlimited Access", "No Ads"],
|
|
405
|
+
sortOrder: 1
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
// Simple array (The library will attempt to match these SKus)
|
|
409
|
+
SKus: ['pro_yearly'],
|
|
410
|
+
title: "Yearly Pro",
|
|
411
|
+
featues: ["Unlimited Access", "No Ads", "Save 20%"],
|
|
412
|
+
sortOrder: 2
|
|
413
|
+
}
|
|
414
|
+
]
|
|
415
|
+
}}
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
**Option 2: Custom Component**
|
|
419
|
+
|
|
420
|
+
For complete control, you can pass a custom component. This is useful if you want to wrap the paywall in your own layout or use `OnboardingPaywallPanel` directly with custom logic.
|
|
421
|
+
|
|
422
|
+
```tsx
|
|
423
|
+
import { OnboardingPaywallPanel } from 'rn-onboarding-analytics';
|
|
424
|
+
|
|
425
|
+
function PaywallScreen({ onPressContinue }) {
|
|
426
|
+
return (
|
|
427
|
+
<OnboardingPaywallPanel
|
|
428
|
+
title="Unlock Premium Features"
|
|
429
|
+
subtitle="Get unlimited lists and more"
|
|
430
|
+
image={require('./assets/paywall.png')}
|
|
431
|
+
onPressContinue={onPressContinue}
|
|
432
|
+
products={[
|
|
433
|
+
{
|
|
434
|
+
SKus: { ios: ['weeklyDose'] },
|
|
435
|
+
title: 'Weekly',
|
|
436
|
+
featues: ['Unlimited lists', 'Priority support'],
|
|
437
|
+
sortOrder: 1,
|
|
438
|
+
},
|
|
439
|
+
]}
|
|
440
|
+
onRestorePurchase={{
|
|
441
|
+
text: 'Restore',
|
|
442
|
+
onPress: () => console.log('Restore'),
|
|
443
|
+
}}
|
|
444
|
+
/>
|
|
445
|
+
);
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
// In your Onboarding usage:
|
|
449
|
+
<Onboarding
|
|
450
|
+
// ...
|
|
451
|
+
paywallPanel={PaywallScreen}
|
|
452
|
+
/>;
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
**Legacy Configuration:**
|
|
456
|
+
You can also manually provide `plans` and `subscriptionSkus`:
|
|
457
|
+
|
|
458
|
+
```tsx
|
|
459
|
+
paywallPanel={{
|
|
460
|
+
// ...
|
|
461
|
+
plans: [
|
|
462
|
+
{ id: 'monthly', title: 'Monthly', price: '$9.99', features: [...] }
|
|
463
|
+
],
|
|
464
|
+
subscriptionSkus: { ios: [...], android: [...] }
|
|
465
|
+
}}
|
|
466
|
+
```
|
|
467
|
+
|
|
351
468
|
## 💡 Best Practices
|
|
352
469
|
|
|
353
470
|
### Image Consistency
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","Image","Platform","StyleSheet","useWindowDimensions","Animated","interpolate","useDerivedValue","useAnimatedStyle","withTiming","Easing","useSharedValue","useTheme","useMeasureHeight","ExpoImage","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","OnboardingImageContainer","currentStep","currentStepImage","position","animationDuration","backgroundSpillProgress","introPanel","stepPanel","screenHeight","background","theme","image","styles","createStyles","extraPadding","OS","width","screenWidth","bottomPanelHeight","height","backgroundSpillDistance","value","imageWrapperHeight","imageWrapperAnimation","imageTargetY","topSafe","insets","top","imageH","modalTop","yBottom","shouldClampTop","Math","max","hasMounted","imageAnimation","translateY","duration","easing","out","cubic","sideEdges","transform","maxWidth","backgroundAnimation","topEdge","sideEdge","left","right","bottom","borderRadius","children","View","style","colorBg","imageWrapper","ref","source","contentFit","transition","imageStyle","resizeMode","fadeDuration","create","backgroundColor","bg","primary","overflow","alignSelf","alignItems"],"sourceRoot":"../../../../src","sources":["spill-onboarding/components/OnboardingImageContainer.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAwB,OAAO;
|
|
1
|
+
{"version":3,"names":["useMemo","Image","Platform","StyleSheet","useWindowDimensions","Animated","interpolate","useDerivedValue","useAnimatedStyle","withTiming","Easing","useSharedValue","useTheme","useMeasureHeight","ExpoImage","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","OnboardingImageContainer","currentStep","currentStepImage","position","animationDuration","backgroundSpillProgress","introPanel","stepPanel","screenHeight","background","theme","image","styles","createStyles","extraPadding","OS","width","screenWidth","bottomPanelHeight","height","backgroundSpillDistance","value","imageWrapperHeight","imageWrapperAnimation","imageTargetY","topSafe","insets","top","imageH","modalTop","yBottom","shouldClampTop","Math","max","hasMounted","imageAnimation","translateY","duration","easing","out","cubic","sideEdges","transform","maxWidth","backgroundAnimation","topEdge","sideEdge","left","right","bottom","borderRadius","children","View","style","colorBg","imageWrapper","ref","source","contentFit","transition","imageStyle","resizeMode","fadeDuration","create","backgroundColor","bg","primary","overflow","alignSelf","alignItems"],"sourceRoot":"../../../../src","sources":["spill-onboarding/components/OnboardingImageContainer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { useMemo, useState } from 'react';
|
|
4
|
-
import { Image, StyleSheet, Text, View, TouchableOpacity, ScrollView, Dimensions } from 'react-native';
|
|
3
|
+
import { useMemo, useState, useEffect } from 'react';
|
|
4
|
+
import { Image, StyleSheet, Text, View, TouchableOpacity, ScrollView, Dimensions, Platform } from 'react-native';
|
|
5
|
+
import { initConnection, getSubscriptions, getProducts, requestSubscription, requestPurchase, endConnection } from 'react-native-iap';
|
|
5
6
|
import { useTheme } from "../../utils/ThemeContext.js";
|
|
6
7
|
import PrimaryButton from "../buttons/PrimaryButton.js";
|
|
7
8
|
import { fontSizes, lineHeights } from "../../utils/fontStyles.js";
|
|
@@ -15,18 +16,169 @@ function OnboardingPaywallPanel({
|
|
|
15
16
|
subtitle,
|
|
16
17
|
button,
|
|
17
18
|
image,
|
|
18
|
-
plans,
|
|
19
|
+
plans = [],
|
|
20
|
+
products,
|
|
19
21
|
helperTextContinue,
|
|
20
22
|
onRestorePurchase,
|
|
21
23
|
onTerms,
|
|
22
|
-
onPrivacy
|
|
24
|
+
onPrivacy,
|
|
25
|
+
subscriptionSkus
|
|
23
26
|
}) {
|
|
24
27
|
const {
|
|
25
28
|
theme
|
|
26
29
|
} = useTheme();
|
|
27
30
|
const styles = useMemo(() => createStyles(theme), [theme]);
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
|
|
32
|
+
// Initialize selectedPlanId based on available configuration
|
|
33
|
+
const initialPlanId = useMemo(() => {
|
|
34
|
+
if (products && products.length > 0) {
|
|
35
|
+
// Sort first to pick the first one correctly if needed,
|
|
36
|
+
// but simplistic approach: pick the first product's first SKU for the current platform
|
|
37
|
+
const firstProduct = products[0];
|
|
38
|
+
if (!firstProduct) return '';
|
|
39
|
+
let firstSku = '';
|
|
40
|
+
if (Array.isArray(firstProduct.SKus)) {
|
|
41
|
+
firstSku = firstProduct.SKus[0] || '';
|
|
42
|
+
} else {
|
|
43
|
+
const skusObj = firstProduct.SKus;
|
|
44
|
+
const skus = Platform.select({
|
|
45
|
+
ios: skusObj.ios,
|
|
46
|
+
android: skusObj.android
|
|
47
|
+
});
|
|
48
|
+
firstSku = skus?.[0] || '';
|
|
49
|
+
}
|
|
50
|
+
return firstSku;
|
|
51
|
+
}
|
|
52
|
+
return plans?.[0]?.id || '';
|
|
53
|
+
}, [products, plans]);
|
|
54
|
+
const [selectedPlanId, setSelectedPlanId] = useState(initialPlanId);
|
|
55
|
+
const [iapProducts, setIapProducts] = useState([]);
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
let isMounted = true;
|
|
58
|
+
const fetchIapProducts = async skus => {
|
|
59
|
+
try {
|
|
60
|
+
await initConnection();
|
|
61
|
+
if (!isMounted) return;
|
|
62
|
+
|
|
63
|
+
// Fetch both subscriptions and products to cover all bases
|
|
64
|
+
const [subs, prods] = await Promise.all([getSubscriptions({
|
|
65
|
+
skus
|
|
66
|
+
}).catch(() => []), getProducts({
|
|
67
|
+
skus
|
|
68
|
+
}).catch(() => [])]);
|
|
69
|
+
if (isMounted) {
|
|
70
|
+
// Filter out duplicates if any (unlikely but safe)
|
|
71
|
+
const allItems = [...subs, ...prods];
|
|
72
|
+
const uniqueItems = Array.from(new Map(allItems.map(item => [item.productId, item])).values());
|
|
73
|
+
setIapProducts(uniqueItems);
|
|
74
|
+
}
|
|
75
|
+
} catch (err) {
|
|
76
|
+
console.warn('IAP Error:', err);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
if (products && products.length > 0) {
|
|
80
|
+
// Collect all SKUs from all products for current platform
|
|
81
|
+
const allSkus = products.flatMap(p => {
|
|
82
|
+
if (Array.isArray(p.SKus)) {
|
|
83
|
+
return p.SKus;
|
|
84
|
+
}
|
|
85
|
+
const skusObj = p.SKus;
|
|
86
|
+
const skus = Platform.select({
|
|
87
|
+
ios: skusObj.ios,
|
|
88
|
+
android: skusObj.android
|
|
89
|
+
});
|
|
90
|
+
return skus || [];
|
|
91
|
+
});
|
|
92
|
+
if (allSkus.length > 0) {
|
|
93
|
+
fetchIapProducts(allSkus);
|
|
94
|
+
}
|
|
95
|
+
} else if (subscriptionSkus) {
|
|
96
|
+
const skus = Platform.select({
|
|
97
|
+
ios: subscriptionSkus.ios,
|
|
98
|
+
android: subscriptionSkus.android
|
|
99
|
+
});
|
|
100
|
+
if (skus && skus.length > 0) {
|
|
101
|
+
fetchIapProducts(skus);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return () => {
|
|
105
|
+
isMounted = false;
|
|
106
|
+
if (subscriptionSkus || products) {
|
|
107
|
+
endConnection();
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
}, [subscriptionSkus, products]);
|
|
111
|
+
const displayPlans = useMemo(() => {
|
|
112
|
+
// New Configuration Mode
|
|
113
|
+
if (products && products.length > 0) {
|
|
114
|
+
const mappedPlans = products.map(config => {
|
|
115
|
+
// Find if any of the product's SKUs matches a fetched IAP product
|
|
116
|
+
let targetSkus = [];
|
|
117
|
+
if (Array.isArray(config.SKus)) {
|
|
118
|
+
targetSkus = config.SKus;
|
|
119
|
+
} else {
|
|
120
|
+
const skusObj = config.SKus;
|
|
121
|
+
targetSkus = Platform.select({
|
|
122
|
+
ios: skusObj.ios,
|
|
123
|
+
android: skusObj.android
|
|
124
|
+
}) || [];
|
|
125
|
+
}
|
|
126
|
+
const iapProduct = iapProducts.find(p => targetSkus.includes(p.productId));
|
|
127
|
+
let price = '...'; // Default loading state
|
|
128
|
+
let id = targetSkus[0] || ''; // Default ID to first SKU
|
|
129
|
+
|
|
130
|
+
if (iapProduct) {
|
|
131
|
+
id = iapProduct.productId;
|
|
132
|
+
if (Platform.OS === 'ios') {
|
|
133
|
+
price = iapProduct.localizedPrice || price;
|
|
134
|
+
} else if (Platform.OS === 'android') {
|
|
135
|
+
const offer = iapProduct.subscriptionOfferDetails?.[0];
|
|
136
|
+
price = offer?.pricingPhases?.pricingPhaseList?.[0]?.formattedPrice || iapProduct.localizedPrice || price;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
id,
|
|
141
|
+
title: config.title,
|
|
142
|
+
price,
|
|
143
|
+
// features with typo 'featues' mapped to correct prop 'features'
|
|
144
|
+
features: config.featues,
|
|
145
|
+
interval: '',
|
|
146
|
+
// Could be inferred from IAP if needed
|
|
147
|
+
sortOrder: config.sortOrder
|
|
148
|
+
};
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
// Sort based on sortOrder
|
|
152
|
+
return mappedPlans.sort((a, b) => {
|
|
153
|
+
if (typeof a.sortOrder === 'number' && typeof b.sortOrder === 'number') {
|
|
154
|
+
return a.sortOrder - b.sortOrder;
|
|
155
|
+
}
|
|
156
|
+
return String(a.sortOrder).localeCompare(String(b.sortOrder));
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Legacy Mode
|
|
161
|
+
if (iapProducts.length === 0) return plans;
|
|
162
|
+
return plans.map(plan => {
|
|
163
|
+
const iapProduct = iapProducts.find(p => p.productId === plan.id);
|
|
164
|
+
if (iapProduct) {
|
|
165
|
+
let price = plan.price;
|
|
166
|
+
if (Platform.OS === 'ios') {
|
|
167
|
+
price = iapProduct.localizedPrice || plan.price;
|
|
168
|
+
} else if (Platform.OS === 'android') {
|
|
169
|
+
// Android specific logic for RNIap v12+
|
|
170
|
+
const offer = iapProduct.subscriptionOfferDetails?.[0];
|
|
171
|
+
price = offer?.pricingPhases?.pricingPhaseList?.[0]?.formattedPrice || iapProduct.localizedPrice || plan.price;
|
|
172
|
+
}
|
|
173
|
+
return {
|
|
174
|
+
...plan,
|
|
175
|
+
price
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
return plan;
|
|
179
|
+
});
|
|
180
|
+
}, [products, plans, iapProducts]);
|
|
181
|
+
const selectedPlan = displayPlans.find(p => p.id === selectedPlanId);
|
|
30
182
|
const renderTitle = () => {
|
|
31
183
|
if (!title) return null;
|
|
32
184
|
if (typeof title === 'string') {
|
|
@@ -66,7 +218,7 @@ function OnboardingPaywallPanel({
|
|
|
66
218
|
const renderPlans = () => {
|
|
67
219
|
return /*#__PURE__*/_jsx(View, {
|
|
68
220
|
style: styles.plansContainer,
|
|
69
|
-
children:
|
|
221
|
+
children: displayPlans.map(plan => {
|
|
70
222
|
const isSelected = plan.id === selectedPlanId;
|
|
71
223
|
return /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
72
224
|
style: [styles.planCard, isSelected && styles.planCardSelected],
|
|
@@ -89,7 +241,80 @@ function OnboardingPaywallPanel({
|
|
|
89
241
|
});
|
|
90
242
|
};
|
|
91
243
|
const renderButton = () => {
|
|
92
|
-
const handlePress = () =>
|
|
244
|
+
const handlePress = async () => {
|
|
245
|
+
console.log('OnboardingPaywallPanel: handlePress', {
|
|
246
|
+
selectedPlanId
|
|
247
|
+
});
|
|
248
|
+
if ((subscriptionSkus || products) && selectedPlanId) {
|
|
249
|
+
try {
|
|
250
|
+
const iapProduct = iapProducts.find(p => p.productId === selectedPlanId);
|
|
251
|
+
if (iapProduct) {
|
|
252
|
+
// Determine if it's a subscription or one-time purchase
|
|
253
|
+
// Subscriptions usually have 'subscriptionPeriodNumberIOS' or 'subscriptionOfferDetails'
|
|
254
|
+
const isSubscription = 'subscriptionPeriodNumberIOS' in iapProduct || 'subscriptionOfferDetails' in iapProduct;
|
|
255
|
+
console.log('OnboardingPaywallPanel: Processing purchase', {
|
|
256
|
+
isSubscription,
|
|
257
|
+
productId: iapProduct.productId
|
|
258
|
+
});
|
|
259
|
+
if (isSubscription) {
|
|
260
|
+
// For Android, we might need offerToken if available
|
|
261
|
+
let offerToken;
|
|
262
|
+
if (Platform.OS === 'android') {
|
|
263
|
+
offerToken = iapProduct.subscriptionOfferDetails?.[0]?.offerToken;
|
|
264
|
+
}
|
|
265
|
+
console.log('OnboardingPaywallPanel: Requesting subscription', {
|
|
266
|
+
sku: selectedPlanId,
|
|
267
|
+
offerToken
|
|
268
|
+
});
|
|
269
|
+
await requestSubscription({
|
|
270
|
+
sku: selectedPlanId,
|
|
271
|
+
...(offerToken && {
|
|
272
|
+
subscriptionOffers: [{
|
|
273
|
+
sku: selectedPlanId,
|
|
274
|
+
offerToken
|
|
275
|
+
}]
|
|
276
|
+
})
|
|
277
|
+
});
|
|
278
|
+
} else {
|
|
279
|
+
console.log('OnboardingPaywallPanel: Requesting one-time purchase', {
|
|
280
|
+
sku: selectedPlanId
|
|
281
|
+
});
|
|
282
|
+
await requestPurchase({
|
|
283
|
+
sku: selectedPlanId
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
} else {
|
|
287
|
+
// Fallback if product not found in fetched list but ID exists
|
|
288
|
+
// Try subscription first as default legacy behavior
|
|
289
|
+
console.log('OnboardingPaywallPanel: Product not in IAP list, attempting fallback purchase', selectedPlanId);
|
|
290
|
+
try {
|
|
291
|
+
console.log('OnboardingPaywallPanel: Fallback - attempting requestSubscription', selectedPlanId);
|
|
292
|
+
await requestSubscription({
|
|
293
|
+
sku: selectedPlanId
|
|
294
|
+
});
|
|
295
|
+
} catch (subErr) {
|
|
296
|
+
console.warn('OnboardingPaywallPanel: Fallback requestSubscription failed', subErr);
|
|
297
|
+
console.log('OnboardingPaywallPanel: Fallback - attempting requestPurchase', selectedPlanId);
|
|
298
|
+
try {
|
|
299
|
+
await requestPurchase({
|
|
300
|
+
sku: selectedPlanId
|
|
301
|
+
});
|
|
302
|
+
} catch (purchErr) {
|
|
303
|
+
console.warn('OnboardingPaywallPanel: Fallback requestPurchase failed', purchErr);
|
|
304
|
+
throw purchErr;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
} catch (err) {
|
|
309
|
+
console.warn('Purchase Error:', err);
|
|
310
|
+
if (typeof err === 'object') {
|
|
311
|
+
console.warn('Purchase Error Details:', JSON.stringify(err, null, 2));
|
|
312
|
+
}
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
onPressContinue(selectedPlanId);
|
|
317
|
+
};
|
|
93
318
|
if (typeof button === 'string') {
|
|
94
319
|
return /*#__PURE__*/_jsx(PrimaryButton, {
|
|
95
320
|
text: button,
|
|
@@ -176,22 +401,22 @@ const createStyles = theme => StyleSheet.create({
|
|
|
176
401
|
},
|
|
177
402
|
sheetContainer: {
|
|
178
403
|
flex: 1,
|
|
179
|
-
marginTop: -
|
|
404
|
+
marginTop: -24,
|
|
180
405
|
backgroundColor: theme.bg.secondary,
|
|
181
|
-
borderTopLeftRadius:
|
|
182
|
-
borderTopRightRadius:
|
|
183
|
-
overflow: '
|
|
406
|
+
borderTopLeftRadius: 30,
|
|
407
|
+
borderTopRightRadius: 30,
|
|
408
|
+
overflow: 'scroll'
|
|
184
409
|
},
|
|
185
410
|
container: {
|
|
186
411
|
flex: 1
|
|
187
412
|
},
|
|
188
413
|
contentContainer: {
|
|
189
|
-
paddingBottom:
|
|
414
|
+
paddingBottom: 24
|
|
190
415
|
},
|
|
191
416
|
footerContainer: {
|
|
192
|
-
paddingHorizontal:
|
|
193
|
-
|
|
194
|
-
paddingTop:
|
|
417
|
+
paddingHorizontal: 8,
|
|
418
|
+
marginBottom: 40,
|
|
419
|
+
paddingTop: 4,
|
|
195
420
|
backgroundColor: theme.bg.secondary
|
|
196
421
|
},
|
|
197
422
|
contentWrapper: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useState","Image","StyleSheet","Text","View","TouchableOpacity","ScrollView","Dimensions","useTheme","PrimaryButton","fontSizes","lineHeights","jsx","_jsx","jsxs","_jsxs","height","screenHeight","get","OnboardingPaywallPanel","onPressContinue","title","subtitle","button","image","plans","helperTextContinue","onRestorePurchase","onTerms","onPrivacy","theme","styles","createStyles","selectedPlanId","setSelectedPlanId","id","selectedPlan","find","p","renderTitle","style","text","line1","titleText","children","renderSubtitle","line2","subtitleText","renderFeatures","features","length","featuresContainer","map","feature","index","featureRow","checkIcon","featureText","renderPlans","plansContainer","plan","isSelected","planCard","planCardSelected","onPress","activeOpacity","planTitle","planTitleSelected","interval","planInterval","planIntervalSelected","planPrice","planPriceSelected","price","renderButton","handlePress","renderFooterLinks","footerLinksContainer","footerLinkText","footerLinkSeparator","mainContainer","headerImageContainer","source","resizeMode","sheetContainer","container","contentContainerStyle","contentContainer","showsVerticalScrollIndicator","bounces","contentWrapper","headerContainer","footerContainer","helperText","create","flex","backgroundColor","bg","secondary","width","marginTop","borderTopLeftRadius","borderTopRightRadius","overflow","paddingBottom","paddingHorizontal","paddingTop","alignItems","marginBottom","fontSize","xxl","lineHeight","textAlign","color","primary","md","fontFamily","fonts","introTitle","fontWeight","introSubtitle","flexDirection","accent","lg","marginRight","gap","justifyContent","padding","minHeight","borderRadius","borderWidth","borderColor","label","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","sm","xs"],"sourceRoot":"../../../../src","sources":["spill-onboarding/components/OnboardingPaywallPanel.tsx"],"mappings":";;AAAA,SAASA,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AACzC,SACEC,KAAK,EACLC,UAAU,EACVC,IAAI,EACJC,IAAI,EACJC,gBAAgB,EAChBC,UAAU,EACVC,UAAU,QACL,cAAc;AACrB,SAASC,QAAQ,QAAQ,6BAA0B;AAEnD,OAAOC,aAAa,MAAM,6BAA0B;AACpD,SAASC,SAAS,EAAEC,WAAW,QAAQ,2BAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGhE,MAAM;EAAEC,MAAM,EAAEC;AAAa,CAAC,GAAGV,UAAU,CAACW,GAAG,CAAC,QAAQ,CAAC;AAEzD,SAASC,sBAAsBA,CAAC;EAC9BC,eAAe;EACfC,KAAK;EACLC,QAAQ;EACRC,MAAM;EACNC,KAAK;EACLC,KAAK;EACLC,kBAAkB;EAClBC,iBAAiB;EACjBC,OAAO;EACPC;AAC2B,CAAC,EAAE;EAC9B,MAAM;IAAEC;EAAM,CAAC,GAAGtB,QAAQ,CAAC,CAAC;EAC5B,MAAMuB,MAAM,GAAGhC,OAAO,CAAC,MAAMiC,YAAY,CAACF,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAC1D,MAAM,CAACG,cAAc,EAAEC,iBAAiB,CAAC,GAAGlC,QAAQ,CAClDyB,KAAK,CAAC,CAAC,CAAC,EAAEU,EAAE,IAAI,EAClB,CAAC;EAED,MAAMC,YAAY,GAAGX,KAAK,CAACY,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACH,EAAE,KAAKF,cAAc,CAAC;EAE/D,MAAMM,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAI,CAAClB,KAAK,EAAE,OAAO,IAAI;IACvB,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,oBACER,IAAA,CAACV,IAAI;QAACqC,KAAK,EAAE,CAACT,MAAM,CAACU,IAAI,EAAEV,MAAM,CAACW,KAAK,EAAEX,MAAM,CAACY,SAAS,CAAE;QAAAC,QAAA,EACxDvB;MAAK,CACF,CAAC;IAEX;IACA,OAAOA,KAAK;EACd,CAAC;EAED,MAAMwB,cAAc,GAAGA,CAAA,KAAM;IAC3B,IAAI,CAACvB,QAAQ,EAAE,OAAO,IAAI;IAC1B,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;MAChC,oBACET,IAAA,CAACV,IAAI;QAACqC,KAAK,EAAE,CAACT,MAAM,CAACU,IAAI,EAAEV,MAAM,CAACe,KAAK,EAAEf,MAAM,CAACgB,YAAY,CAAE;QAAAH,QAAA,EAC3DtB;MAAQ,CACL,CAAC;IAEX;IACA,OAAOA,QAAQ;EACjB,CAAC;EAED,MAAM0B,cAAc,GAAGA,CAAA,KAAM;IAC3B,IAAI,CAACZ,YAAY,EAAEa,QAAQ,IAAIb,YAAY,CAACa,QAAQ,CAACC,MAAM,KAAK,CAAC,EAC/D,OAAO,IAAI;IAEb,oBACErC,IAAA,CAACT,IAAI;MAACoC,KAAK,EAAET,MAAM,CAACoB,iBAAkB;MAAAP,QAAA,EACnCR,YAAY,CAACa,QAAQ,CAACG,GAAG,CAAC,CAACC,OAAO,EAAEC,KAAK,kBACxCvC,KAAA,CAACX,IAAI;QAAaoC,KAAK,EAAET,MAAM,CAACwB,UAAW;QAAAX,QAAA,gBACzC/B,IAAA,CAACV,IAAI;UAACqC,KAAK,EAAET,MAAM,CAACyB,SAAU;UAAAZ,QAAA,EAAC;QAAC,CAAM,CAAC,eACvC/B,IAAA,CAACV,IAAI;UAACqC,KAAK,EAAET,MAAM,CAAC0B,WAAY;UAAAb,QAAA,EAAES;QAAO,CAAO,CAAC;MAAA,GAFxCC,KAGL,CACP;IAAC,CACE,CAAC;EAEX,CAAC;EAED,MAAMI,WAAW,GAAGA,CAAA,KAAM;IACxB,oBACE7C,IAAA,CAACT,IAAI;MAACoC,KAAK,EAAET,MAAM,CAAC4B,cAAe;MAAAf,QAAA,EAChCnB,KAAK,CAAC2B,GAAG,CAAEQ,IAAI,IAAK;QACnB,MAAMC,UAAU,GAAGD,IAAI,CAACzB,EAAE,KAAKF,cAAc;QAC7C,oBACElB,KAAA,CAACV,gBAAgB;UAEfmC,KAAK,EAAE,CAACT,MAAM,CAAC+B,QAAQ,EAAED,UAAU,IAAI9B,MAAM,CAACgC,gBAAgB,CAAE;UAChEC,OAAO,EAAEA,CAAA,KAAM9B,iBAAiB,CAAC0B,IAAI,CAACzB,EAAE,CAAE;UAC1C8B,aAAa,EAAE,GAAI;UAAArB,QAAA,gBAEnB7B,KAAA,CAACX,IAAI;YAAAwC,QAAA,gBACH/B,IAAA,CAACV,IAAI;cACHqC,KAAK,EAAE,CACLT,MAAM,CAACmC,SAAS,EAChBL,UAAU,IAAI9B,MAAM,CAACoC,iBAAiB,CACtC;cAAAvB,QAAA,EAEDgB,IAAI,CAACvC;YAAK,CACP,CAAC,EACNuC,IAAI,CAACQ,QAAQ,iBACZvD,IAAA,CAACV,IAAI;cACHqC,KAAK,EAAE,CACLT,MAAM,CAACsC,YAAY,EACnBR,UAAU,IAAI9B,MAAM,CAACuC,oBAAoB,CACzC;cAAA1B,QAAA,EAEDgB,IAAI,CAACQ;YAAQ,CACV,CACP;UAAA,CACG,CAAC,eACPvD,IAAA,CAACV,IAAI;YACHqC,KAAK,EAAE,CACLT,MAAM,CAACwC,SAAS,EAChBV,UAAU,IAAI9B,MAAM,CAACyC,iBAAiB,CACtC;YAAA5B,QAAA,EAEDgB,IAAI,CAACa;UAAK,CACP,CAAC;QAAA,GAhCFb,IAAI,CAACzB,EAiCM,CAAC;MAEvB,CAAC;IAAC,CACE,CAAC;EAEX,CAAC;EAED,MAAMuC,YAAY,GAAGA,CAAA,KAAM;IACzB,MAAMC,WAAW,GAAGA,CAAA,KAAMvD,eAAe,CAACa,cAAc,CAAC;IAEzD,IAAI,OAAOV,MAAM,KAAK,QAAQ,EAAE;MAC9B,oBAAOV,IAAA,CAACJ,aAAa;QAACgC,IAAI,EAAElB,MAAO;QAACyC,OAAO,EAAEW;MAAY,CAAE,CAAC;IAC9D;IACA,OAAOpD,MAAM,CAAC;MAAEyC,OAAO,EAAEW;IAAY,CAAC,CAAC;EACzC,CAAC;EAED,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;IAC9B,IAAI,CAACjD,iBAAiB,IAAI,CAACC,OAAO,IAAI,CAACC,SAAS,EAAE,OAAO,IAAI;IAE7D,oBACEd,KAAA,CAACX,IAAI;MAACoC,KAAK,EAAET,MAAM,CAAC8C,oBAAqB;MAAAjC,QAAA,GACtCjB,iBAAiB,iBAChBd,IAAA,CAACR,gBAAgB;QAAC2D,OAAO,EAAErC,iBAAiB,CAACqC,OAAQ;QAAApB,QAAA,eACnD/B,IAAA,CAACV,IAAI;UAACqC,KAAK,EAAET,MAAM,CAAC+C,cAAe;UAAAlC,QAAA,EAAEjB,iBAAiB,CAACc;QAAI,CAAO;MAAC,CACnD,CACnB,EAEAd,iBAAiB,KAAKC,OAAO,IAAIC,SAAS,CAAC,iBAC1ChB,IAAA,CAACV,IAAI;QAACqC,KAAK,EAAET,MAAM,CAACgD,mBAAoB;QAAAnC,QAAA,EAAC;MAAC,CAAM,CACjD,EAEAhB,OAAO,iBACNf,IAAA,CAACR,gBAAgB;QAAC2D,OAAO,EAAEpC,OAAO,CAACoC,OAAQ;QAAApB,QAAA,eACzC/B,IAAA,CAACV,IAAI;UAACqC,KAAK,EAAET,MAAM,CAAC+C,cAAe;UAAAlC,QAAA,EAAEhB,OAAO,CAACa;QAAI,CAAO;MAAC,CACzC,CACnB,EAEAb,OAAO,IAAIC,SAAS,iBACnBhB,IAAA,CAACV,IAAI;QAACqC,KAAK,EAAET,MAAM,CAACgD,mBAAoB;QAAAnC,QAAA,EAAC;MAAC,CAAM,CACjD,EAEAf,SAAS,iBACRhB,IAAA,CAACR,gBAAgB;QAAC2D,OAAO,EAAEnC,SAAS,CAACmC,OAAQ;QAAApB,QAAA,eAC3C/B,IAAA,CAACV,IAAI;UAACqC,KAAK,EAAET,MAAM,CAAC+C,cAAe;UAAAlC,QAAA,EAAEf,SAAS,CAACY;QAAI,CAAO;MAAC,CAC3C,CACnB;IAAA,CACG,CAAC;EAEX,CAAC;EAED,oBACE1B,KAAA,CAACX,IAAI;IAACoC,KAAK,EAAET,MAAM,CAACiD,aAAc;IAAApC,QAAA,gBAChC/B,IAAA,CAACT,IAAI;MAACoC,KAAK,EAAET,MAAM,CAACkD,oBAAqB;MAAArC,QAAA,EACtC,OAAOpB,KAAK,KAAK,UAAU,GACxBA,KAAK,CAAC,CAAC,GACPA,KAAK,iBACHX,IAAA,CAACZ,KAAK;QAACiF,MAAM,EAAE1D,KAAM;QAACgB,KAAK,EAAET,MAAM,CAACP,KAAM;QAAC2D,UAAU,EAAC;MAAO,CAAE;IAChE,CACD,CAAC,eAEPpE,KAAA,CAACX,IAAI;MAACoC,KAAK,EAAET,MAAM,CAACqD,cAAe;MAAAxC,QAAA,gBACjC/B,IAAA,CAACP,UAAU;QACTkC,KAAK,EAAET,MAAM,CAACsD,SAAU;QACxBC,qBAAqB,EAAEvD,MAAM,CAACwD,gBAAiB;QAC/CC,4BAA4B,EAAE,KAAM;QACpCC,OAAO,EAAE,KAAM;QAAA7C,QAAA,eAEf7B,KAAA,CAACX,IAAI;UAACoC,KAAK,EAAET,MAAM,CAAC2D,cAAe;UAAA9C,QAAA,gBACjC7B,KAAA,CAACX,IAAI;YAACoC,KAAK,EAAET,MAAM,CAAC4D,eAAgB;YAAA/C,QAAA,GACjCL,WAAW,CAAC,CAAC,EACbM,cAAc,CAAC,CAAC;UAAA,CACb,CAAC,EAENG,cAAc,CAAC,CAAC,EAEhBU,WAAW,CAAC,CAAC,EAEbkB,iBAAiB,CAAC,CAAC;QAAA,CAChB;MAAC,CACG,CAAC,eACb7D,KAAA,CAACX,IAAI;QAACoC,KAAK,EAAET,MAAM,CAAC6D,eAAgB;QAAAhD,QAAA,GACjClB,kBAAkB,iBACjBb,IAAA,CAACV,IAAI;UAACqC,KAAK,EAAET,MAAM,CAAC8D,UAAW;UAAAjD,QAAA,EAAElB;QAAkB,CAAO,CAC3D,EAEAgD,YAAY,CAAC,CAAC;MAAA,CACX,CAAC;IAAA,CACH,CAAC;EAAA,CACH,CAAC;AAEX;AAEA,eAAevD,sBAAsB;AAErC,MAAMa,YAAY,GAAIF,KAAY,IAChC5B,UAAU,CAAC4F,MAAM,CAAC;EAChBd,aAAa,EAAE;IACbe,IAAI,EAAE,CAAC;IACPC,eAAe,EAAElE,KAAK,CAACmE,EAAE,CAACC;EAC5B,CAAC;EACDjB,oBAAoB,EAAE;IACpBjE,MAAM,EAAEC,YAAY,GAAG,GAAG;IAC1BkF,KAAK,EAAE;EACT,CAAC;EACDf,cAAc,EAAE;IACdW,IAAI,EAAE,CAAC;IACPK,SAAS,EAAE,CAAC,CAAC;IACbJ,eAAe,EAAElE,KAAK,CAACmE,EAAE,CAACC,SAAS;IACnCG,mBAAmB,EAAE,EAAE;IACvBC,oBAAoB,EAAE,EAAE;IACxBC,QAAQ,EAAE;EACZ,CAAC;EACDlB,SAAS,EAAE;IACTU,IAAI,EAAE;EACR,CAAC;EACDR,gBAAgB,EAAE;IAChBiB,aAAa,EAAE;EACjB,CAAC;EACDZ,eAAe,EAAE;IACfa,iBAAiB,EAAE,EAAE;IACrBD,aAAa,EAAE,EAAE;IACjBE,UAAU,EAAE,EAAE;IACdV,eAAe,EAAElE,KAAK,CAACmE,EAAE,CAACC;EAC5B,CAAC;EACDR,cAAc,EAAE;IACde,iBAAiB,EAAE,EAAE;IACrBC,UAAU,EAAE;EACd,CAAC;EACDlF,KAAK,EAAE;IACL2E,KAAK,EAAE,MAAM;IACbnF,MAAM,EAAE;EACV,CAAC;EACD2E,eAAe,EAAE;IACfgB,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE,EAAE;IAChBR,SAAS,EAAE;EACb,CAAC;EACD3D,IAAI,EAAE;IACJoE,QAAQ,EAAEnG,SAAS,CAACoG,GAAG;IACvBC,UAAU,EAAEpG,WAAW,CAACmG,GAAG;IAC3BE,SAAS,EAAE;EACb,CAAC;EACDtE,KAAK,EAAE;IACLuE,KAAK,EAAEnF,KAAK,CAACW,IAAI,CAACyE;EACpB,CAAC;EACDpE,KAAK,EAAE;IACLsD,SAAS,EAAE,CAAC;IACZa,KAAK,EAAEnF,KAAK,CAACW,IAAI,CAACyD,SAAS;IAC3BW,QAAQ,EAAEnG,SAAS,CAACyG,EAAE;IACtBJ,UAAU,EAAEpG,WAAW,CAACwG;EAC1B,CAAC;EACDxE,SAAS,EAAE;IACTyE,UAAU,EAAEtF,KAAK,CAACuF,KAAK,CAACC,UAAU;IAClCC,UAAU,EAAE;EACd,CAAC;EACDxE,YAAY,EAAE;IACZqE,UAAU,EAAEtF,KAAK,CAACuF,KAAK,CAACG;EAC1B,CAAC;EACDrE,iBAAiB,EAAE;IACjByD,YAAY,EAAE,EAAE;IAChBH,iBAAiB,EAAE;EACrB,CAAC;EACDlD,UAAU,EAAE;IACVkE,aAAa,EAAE,KAAK;IACpBd,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE;EAChB,CAAC;EACDpD,SAAS,EAAE;IACTyD,KAAK,EAAEnF,KAAK,CAACmE,EAAE,CAACyB,MAAM;IACtBb,QAAQ,EAAEnG,SAAS,CAACiH,EAAE;IACtBC,WAAW,EAAE,EAAE;IACfL,UAAU,EAAE;EACd,CAAC;EACD9D,WAAW,EAAE;IACXwD,KAAK,EAAEnF,KAAK,CAACW,IAAI,CAACyE,OAAO;IACzBL,QAAQ,EAAEnG,SAAS,CAACyG,EAAE;IACtBI,UAAU,EAAE;EACd,CAAC;EACD5D,cAAc,EAAE;IACdkE,GAAG,EAAE,EAAE;IACPjB,YAAY,EAAE;EAChB,CAAC;EACD9C,QAAQ,EAAE;IACR2D,aAAa,EAAE,KAAK;IACpBd,UAAU,EAAE,QAAQ;IACpBmB,cAAc,EAAE,eAAe;IAC/BC,OAAO,EAAE,EAAE;IACXC,SAAS,EAAE,EAAE;IACbC,YAAY,EAAE,EAAE;IAChBjC,eAAe,EAAElE,KAAK,CAACmE,EAAE,CAACC,SAAS;IACnCgC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAErG,KAAK,CAACmE,EAAE,CAACmC,KAAK;IAC3B;IACAC,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MAAEnC,KAAK,EAAE,CAAC;MAAEnF,MAAM,EAAE;IAAE,CAAC;IACrCuH,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACD1E,gBAAgB,EAAE;IAChBoE,WAAW,EAAErG,KAAK,CAACmE,EAAE,CAACyB,MAAM;IAC5B1B,eAAe,EAAElE,KAAK,CAACmE,EAAE,CAACmC,KAAK;IAC/BF,WAAW,EAAE;EACf,CAAC;EACDhE,SAAS,EAAE;IACT2C,QAAQ,EAAEnG,SAAS,CAACyG,EAAE;IACtBI,UAAU,EAAE,KAAK;IACjBN,KAAK,EAAEnF,KAAK,CAACW,IAAI,CAACyE;EACpB,CAAC;EACD/C,iBAAiB,EAAE;IACjB8C,KAAK,EAAEnF,KAAK,CAACW,IAAI,CAACyE,OAAO;IACzBK,UAAU,EAAE;EACd,CAAC;EACDlD,YAAY,EAAE;IACZwC,QAAQ,EAAEnG,SAAS,CAACgI,EAAE;IACtBzB,KAAK,EAAEnF,KAAK,CAACW,IAAI,CAACyD,SAAS;IAC3BE,SAAS,EAAE;EACb,CAAC;EACD9B,oBAAoB,EAAE;IACpB2C,KAAK,EAAEnF,KAAK,CAACW,IAAI,CAACyD;EACpB,CAAC;EACD3B,SAAS,EAAE;IACTsC,QAAQ,EAAEnG,SAAS,CAACiH,EAAE;IACtBJ,UAAU,EAAE,KAAK;IACjBN,KAAK,EAAEnF,KAAK,CAACW,IAAI,CAACyE;EACpB,CAAC;EACD1C,iBAAiB,EAAE;IACjByC,KAAK,EAAEnF,KAAK,CAACmE,EAAE,CAACyB;EAClB,CAAC;EACD7B,UAAU,EAAE;IACVmB,SAAS,EAAE,QAAQ;IACnBC,KAAK,EAAEnF,KAAK,CAACW,IAAI,CAACyD,SAAS;IAC3BW,QAAQ,EAAEnG,SAAS,CAACgI,EAAE;IACtB9B,YAAY,EAAE,CAAC;IACfW,UAAU,EAAE;EACd,CAAC;EACD1C,oBAAoB,EAAE;IACpB4C,aAAa,EAAE,KAAK;IACpBK,cAAc,EAAE,QAAQ;IACxBnB,UAAU,EAAE,QAAQ;IACpBP,SAAS,EAAE,CAAC;IACZyB,GAAG,EAAE;EACP,CAAC;EACD/C,cAAc,EAAE;IACd+B,QAAQ,EAAEnG,SAAS,CAACyG,EAAE;IACtBF,KAAK,EAAEnF,KAAK,CAACW,IAAI,CAACyD;EACpB,CAAC;EACDnB,mBAAmB,EAAE;IACnB8B,QAAQ,EAAEnG,SAAS,CAACiI,EAAE;IACtB1B,KAAK,EAAEnF,KAAK,CAACW,IAAI,CAACyD;EACpB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useMemo","useState","useEffect","Image","StyleSheet","Text","View","TouchableOpacity","ScrollView","Dimensions","Platform","initConnection","getSubscriptions","getProducts","requestSubscription","requestPurchase","endConnection","useTheme","PrimaryButton","fontSizes","lineHeights","jsx","_jsx","jsxs","_jsxs","height","screenHeight","get","OnboardingPaywallPanel","onPressContinue","title","subtitle","button","image","plans","products","helperTextContinue","onRestorePurchase","onTerms","onPrivacy","subscriptionSkus","theme","styles","createStyles","initialPlanId","length","firstProduct","firstSku","Array","isArray","SKus","skusObj","skus","select","ios","android","id","selectedPlanId","setSelectedPlanId","iapProducts","setIapProducts","isMounted","fetchIapProducts","subs","prods","Promise","all","catch","allItems","uniqueItems","from","Map","map","item","productId","values","err","console","warn","allSkus","flatMap","p","displayPlans","mappedPlans","config","targetSkus","iapProduct","find","includes","price","OS","localizedPrice","offer","subscriptionOfferDetails","pricingPhases","pricingPhaseList","formattedPrice","features","featues","interval","sortOrder","sort","a","b","String","localeCompare","plan","selectedPlan","renderTitle","style","text","line1","titleText","children","renderSubtitle","line2","subtitleText","renderFeatures","featuresContainer","feature","index","featureRow","checkIcon","featureText","renderPlans","plansContainer","isSelected","planCard","planCardSelected","onPress","activeOpacity","planTitle","planTitleSelected","planInterval","planIntervalSelected","planPrice","planPriceSelected","renderButton","handlePress","log","isSubscription","offerToken","sku","subscriptionOffers","subErr","purchErr","JSON","stringify","renderFooterLinks","footerLinksContainer","footerLinkText","footerLinkSeparator","mainContainer","headerImageContainer","source","resizeMode","sheetContainer","container","contentContainerStyle","contentContainer","showsVerticalScrollIndicator","bounces","contentWrapper","headerContainer","footerContainer","helperText","create","flex","backgroundColor","bg","secondary","width","marginTop","borderTopLeftRadius","borderTopRightRadius","overflow","paddingBottom","paddingHorizontal","marginBottom","paddingTop","alignItems","fontSize","xxl","lineHeight","textAlign","color","primary","md","fontFamily","fonts","introTitle","fontWeight","introSubtitle","flexDirection","accent","lg","marginRight","gap","justifyContent","padding","minHeight","borderRadius","borderWidth","borderColor","label","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","sm","xs"],"sourceRoot":"../../../../src","sources":["spill-onboarding/components/OnboardingPaywallPanel.tsx"],"mappings":";;AAAA,SAASA,OAAO,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AACpD,SACEC,KAAK,EACLC,UAAU,EACVC,IAAI,EACJC,IAAI,EACJC,gBAAgB,EAChBC,UAAU,EACVC,UAAU,EACVC,QAAQ,QACH,cAAc;AACrB,SACEC,cAAc,EACdC,gBAAgB,EAChBC,WAAW,EACXC,mBAAmB,EACnBC,eAAe,EACfC,aAAa,QAGR,kBAAkB;AACzB,SAASC,QAAQ,QAAQ,6BAA0B;AAEnD,OAAOC,aAAa,MAAM,6BAA0B;AACpD,SAASC,SAAS,EAAEC,WAAW,QAAQ,2BAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGhE,MAAM;EAAEC,MAAM,EAAEC;AAAa,CAAC,GAAGjB,UAAU,CAACkB,GAAG,CAAC,QAAQ,CAAC;AAEzD,SAASC,sBAAsBA,CAAC;EAC9BC,eAAe;EACfC,KAAK;EACLC,QAAQ;EACRC,MAAM;EACNC,KAAK;EACLC,KAAK,GAAG,EAAE;EACVC,QAAQ;EACRC,kBAAkB;EAClBC,iBAAiB;EACjBC,OAAO;EACPC,SAAS;EACTC;AAC2B,CAAC,EAAE;EAC9B,MAAM;IAAEC;EAAM,CAAC,GAAGxB,QAAQ,CAAC,CAAC;EAC5B,MAAMyB,MAAM,GAAG1C,OAAO,CAAC,MAAM2C,YAAY,CAACF,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;;EAE1D;EACA,MAAMG,aAAa,GAAG5C,OAAO,CAAC,MAAM;IAClC,IAAImC,QAAQ,IAAIA,QAAQ,CAACU,MAAM,GAAG,CAAC,EAAE;MACnC;MACA;MACA,MAAMC,YAAY,GAAGX,QAAQ,CAAC,CAAC,CAAC;MAChC,IAAI,CAACW,YAAY,EAAE,OAAO,EAAE;MAC5B,IAAIC,QAAQ,GAAG,EAAE;MACjB,IAAIC,KAAK,CAACC,OAAO,CAACH,YAAY,CAACI,IAAI,CAAC,EAAE;QACpCH,QAAQ,GAAGD,YAAY,CAACI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;MACvC,CAAC,MAAM;QACL,MAAMC,OAAO,GAAGL,YAAY,CAACI,IAAmB;QAChD,MAAME,IAAI,GAAG1C,QAAQ,CAAC2C,MAAM,CAAC;UAC3BC,GAAG,EAAEH,OAAO,CAACG,GAAG;UAChBC,OAAO,EAAEJ,OAAO,CAACI;QACnB,CAAC,CAAC;QACFR,QAAQ,GAAGK,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE;MAC5B;MACA,OAAOL,QAAQ;IACjB;IACA,OAAOb,KAAK,GAAG,CAAC,CAAC,EAAEsB,EAAE,IAAI,EAAE;EAC7B,CAAC,EAAE,CAACrB,QAAQ,EAAED,KAAK,CAAC,CAAC;EAErB,MAAM,CAACuB,cAAc,EAAEC,iBAAiB,CAAC,GAAGzD,QAAQ,CAAS2C,aAAa,CAAC;EAC3E,MAAM,CAACe,WAAW,EAAEC,cAAc,CAAC,GAAG3D,QAAQ,CAC5C,EACF,CAAC;EAEDC,SAAS,CAAC,MAAM;IACd,IAAI2D,SAAS,GAAG,IAAI;IAEpB,MAAMC,gBAAgB,GAAG,MAAOV,IAAc,IAAK;MACjD,IAAI;QACF,MAAMzC,cAAc,CAAC,CAAC;QACtB,IAAI,CAACkD,SAAS,EAAE;;QAEhB;QACA,MAAM,CAACE,IAAI,EAAEC,KAAK,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CACtCtD,gBAAgB,CAAC;UAAEwC;QAAK,CAAC,CAAC,CAACe,KAAK,CAAC,MAAM,EAAoB,CAAC,EAC5DtD,WAAW,CAAC;UAAEuC;QAAK,CAAC,CAAC,CAACe,KAAK,CAAC,MAAM,EAAe,CAAC,CACnD,CAAC;QAEF,IAAIN,SAAS,EAAE;UACb;UACA,MAAMO,QAAQ,GAAG,CAAC,GAAGL,IAAI,EAAE,GAAGC,KAAK,CAAC;UACpC,MAAMK,WAAW,GAAGrB,KAAK,CAACsB,IAAI,CAC5B,IAAIC,GAAG,CAACH,QAAQ,CAACI,GAAG,CAAEC,IAAI,IAAK,CAACA,IAAI,CAACC,SAAS,EAAED,IAAI,CAAC,CAAC,CAAC,CAACE,MAAM,CAAC,CACjE,CAAC;UACDf,cAAc,CAACS,WAAW,CAAC;QAC7B;MACF,CAAC,CAAC,OAAOO,GAAG,EAAE;QACZC,OAAO,CAACC,IAAI,CAAC,YAAY,EAAEF,GAAG,CAAC;MACjC;IACF,CAAC;IAED,IAAIzC,QAAQ,IAAIA,QAAQ,CAACU,MAAM,GAAG,CAAC,EAAE;MACnC;MACA,MAAMkC,OAAO,GAAG5C,QAAQ,CAAC6C,OAAO,CAAEC,CAAC,IAAK;QACtC,IAAIjC,KAAK,CAACC,OAAO,CAACgC,CAAC,CAAC/B,IAAI,CAAC,EAAE;UACzB,OAAO+B,CAAC,CAAC/B,IAAI;QACf;QACA,MAAMC,OAAO,GAAG8B,CAAC,CAAC/B,IAAmB;QACrC,MAAME,IAAI,GAAG1C,QAAQ,CAAC2C,MAAM,CAAC;UAC3BC,GAAG,EAAEH,OAAO,CAACG,GAAG;UAChBC,OAAO,EAAEJ,OAAO,CAACI;QACnB,CAAC,CAAC;QACF,OAAOH,IAAI,IAAI,EAAE;MACnB,CAAC,CAAC;MAEF,IAAI2B,OAAO,CAAClC,MAAM,GAAG,CAAC,EAAE;QACtBiB,gBAAgB,CAACiB,OAAO,CAAC;MAC3B;IACF,CAAC,MAAM,IAAIvC,gBAAgB,EAAE;MAC3B,MAAMY,IAAI,GAAG1C,QAAQ,CAAC2C,MAAM,CAAC;QAC3BC,GAAG,EAAEd,gBAAgB,CAACc,GAAG;QACzBC,OAAO,EAAEf,gBAAgB,CAACe;MAC5B,CAAC,CAAC;MAEF,IAAIH,IAAI,IAAIA,IAAI,CAACP,MAAM,GAAG,CAAC,EAAE;QAC3BiB,gBAAgB,CAACV,IAAI,CAAC;MACxB;IACF;IAEA,OAAO,MAAM;MACXS,SAAS,GAAG,KAAK;MACjB,IAAIrB,gBAAgB,IAAIL,QAAQ,EAAE;QAChCnB,aAAa,CAAC,CAAC;MACjB;IACF,CAAC;EACH,CAAC,EAAE,CAACwB,gBAAgB,EAAEL,QAAQ,CAAC,CAAC;EAEhC,MAAM+C,YAAY,GAAGlF,OAAO,CAAC,MAAM;IACjC;IACA,IAAImC,QAAQ,IAAIA,QAAQ,CAACU,MAAM,GAAG,CAAC,EAAE;MACnC,MAAMsC,WAAW,GAAGhD,QAAQ,CAACqC,GAAG,CAAEY,MAAM,IAAK;QAC3C;QACA,IAAIC,UAAoB,GAAG,EAAE;QAC7B,IAAIrC,KAAK,CAACC,OAAO,CAACmC,MAAM,CAAClC,IAAI,CAAC,EAAE;UAC9BmC,UAAU,GAAGD,MAAM,CAAClC,IAAI;QAC1B,CAAC,MAAM;UACL,MAAMC,OAAO,GAAGiC,MAAM,CAAClC,IAAmB;UAC1CmC,UAAU,GACR3E,QAAQ,CAAC2C,MAAM,CAAC;YACdC,GAAG,EAAEH,OAAO,CAACG,GAAG;YAChBC,OAAO,EAAEJ,OAAO,CAACI;UACnB,CAAC,CAAC,IAAI,EAAE;QACZ;QAEA,MAAM+B,UAAU,GAAG3B,WAAW,CAAC4B,IAAI,CAAEN,CAAC,IACpCI,UAAU,CAACG,QAAQ,CAACP,CAAC,CAACP,SAAS,CACjC,CAAC;QAED,IAAIe,KAAK,GAAG,KAAK,CAAC,CAAC;QACnB,IAAIjC,EAAE,GAAG6B,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;;QAE9B,IAAIC,UAAU,EAAE;UACd9B,EAAE,GAAG8B,UAAU,CAACZ,SAAS;UACzB,IAAIhE,QAAQ,CAACgF,EAAE,KAAK,KAAK,EAAE;YACzBD,KAAK,GAAIH,UAAU,CAASK,cAAc,IAAIF,KAAK;UACrD,CAAC,MAAM,IAAI/E,QAAQ,CAACgF,EAAE,KAAK,SAAS,EAAE;YACpC,MAAME,KAAK,GAAIN,UAAU,CAASO,wBAAwB,GAAG,CAAC,CAAC;YAC/DJ,KAAK,GACHG,KAAK,EAAEE,aAAa,EAAEC,gBAAgB,GAAG,CAAC,CAAC,EAAEC,cAAc,IAC1DV,UAAU,CAASK,cAAc,IAClCF,KAAK;UACT;QACF;QAEA,OAAO;UACLjC,EAAE;UACF1B,KAAK,EAAEsD,MAAM,CAACtD,KAAK;UACnB2D,KAAK;UACL;UACAQ,QAAQ,EAAEb,MAAM,CAACc,OAAO;UACxBC,QAAQ,EAAE,EAAE;UAAE;UACdC,SAAS,EAAEhB,MAAM,CAACgB;QACpB,CAAC;MACH,CAAC,CAAC;;MAEF;MACA,OAAOjB,WAAW,CAACkB,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;QAChC,IACE,OAAOD,CAAC,CAACF,SAAS,KAAK,QAAQ,IAC/B,OAAOG,CAAC,CAACH,SAAS,KAAK,QAAQ,EAC/B;UACA,OAAOE,CAAC,CAACF,SAAS,GAAGG,CAAC,CAACH,SAAS;QAClC;QACA,OAAOI,MAAM,CAACF,CAAC,CAACF,SAAS,CAAC,CAACK,aAAa,CAACD,MAAM,CAACD,CAAC,CAACH,SAAS,CAAC,CAAC;MAC/D,CAAC,CAAC;IACJ;;IAEA;IACA,IAAIzC,WAAW,CAACd,MAAM,KAAK,CAAC,EAAE,OAAOX,KAAK;IAE1C,OAAOA,KAAK,CAACsC,GAAG,CAAEkC,IAAI,IAAK;MACzB,MAAMpB,UAAU,GAAG3B,WAAW,CAAC4B,IAAI,CAAEN,CAAC,IAAKA,CAAC,CAACP,SAAS,KAAKgC,IAAI,CAAClD,EAAE,CAAC;MACnE,IAAI8B,UAAU,EAAE;QACd,IAAIG,KAAK,GAAGiB,IAAI,CAACjB,KAAK;QACtB,IAAI/E,QAAQ,CAACgF,EAAE,KAAK,KAAK,EAAE;UACzBD,KAAK,GAAIH,UAAU,CAASK,cAAc,IAAIe,IAAI,CAACjB,KAAK;QAC1D,CAAC,MAAM,IAAI/E,QAAQ,CAACgF,EAAE,KAAK,SAAS,EAAE;UACpC;UACA,MAAME,KAAK,GAAIN,UAAU,CAASO,wBAAwB,GAAG,CAAC,CAAC;UAC/DJ,KAAK,GACHG,KAAK,EAAEE,aAAa,EAAEC,gBAAgB,GAAG,CAAC,CAAC,EAAEC,cAAc,IAC1DV,UAAU,CAASK,cAAc,IAClCe,IAAI,CAACjB,KAAK;QACd;QACA,OAAO;UACL,GAAGiB,IAAI;UACPjB;QACF,CAAC;MACH;MACA,OAAOiB,IAAI;IACb,CAAC,CAAC;EACJ,CAAC,EAAE,CAACvE,QAAQ,EAAED,KAAK,EAAEyB,WAAW,CAAC,CAAC;EAElC,MAAMgD,YAAY,GAAGzB,YAAY,CAACK,IAAI,CAAEN,CAAC,IAAKA,CAAC,CAACzB,EAAE,KAAKC,cAAc,CAAC;EAEtE,MAAMmD,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAI,CAAC9E,KAAK,EAAE,OAAO,IAAI;IACvB,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,oBACER,IAAA,CAACjB,IAAI;QAACwG,KAAK,EAAE,CAACnE,MAAM,CAACoE,IAAI,EAAEpE,MAAM,CAACqE,KAAK,EAAErE,MAAM,CAACsE,SAAS,CAAE;QAAAC,QAAA,EACxDnF;MAAK,CACF,CAAC;IAEX;IACA,OAAOA,KAAK;EACd,CAAC;EAED,MAAMoF,cAAc,GAAGA,CAAA,KAAM;IAC3B,IAAI,CAACnF,QAAQ,EAAE,OAAO,IAAI;IAC1B,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;MAChC,oBACET,IAAA,CAACjB,IAAI;QAACwG,KAAK,EAAE,CAACnE,MAAM,CAACoE,IAAI,EAAEpE,MAAM,CAACyE,KAAK,EAAEzE,MAAM,CAAC0E,YAAY,CAAE;QAAAH,QAAA,EAC3DlF;MAAQ,CACL,CAAC;IAEX;IACA,OAAOA,QAAQ;EACjB,CAAC;EAED,MAAMsF,cAAc,GAAGA,CAAA,KAAM;IAC3B,IAAI,CAACV,YAAY,EAAEV,QAAQ,IAAIU,YAAY,CAACV,QAAQ,CAACpD,MAAM,KAAK,CAAC,EAC/D,OAAO,IAAI;IAEb,oBACEvB,IAAA,CAAChB,IAAI;MAACuG,KAAK,EAAEnE,MAAM,CAAC4E,iBAAkB;MAAAL,QAAA,EACnCN,YAAY,CAACV,QAAQ,CAACzB,GAAG,CAAC,CAAC+C,OAAO,EAAEC,KAAK,kBACxChG,KAAA,CAAClB,IAAI;QAAauG,KAAK,EAAEnE,MAAM,CAAC+E,UAAW;QAAAR,QAAA,gBACzC3F,IAAA,CAACjB,IAAI;UAACwG,KAAK,EAAEnE,MAAM,CAACgF,SAAU;UAAAT,QAAA,EAAC;QAAC,CAAM,CAAC,eACvC3F,IAAA,CAACjB,IAAI;UAACwG,KAAK,EAAEnE,MAAM,CAACiF,WAAY;UAAAV,QAAA,EAAEM;QAAO,CAAO,CAAC;MAAA,GAFxCC,KAGL,CACP;IAAC,CACE,CAAC;EAEX,CAAC;EAED,MAAMI,WAAW,GAAGA,CAAA,KAAM;IACxB,oBACEtG,IAAA,CAAChB,IAAI;MAACuG,KAAK,EAAEnE,MAAM,CAACmF,cAAe;MAAAZ,QAAA,EAChC/B,YAAY,CAACV,GAAG,CAAEkC,IAAI,IAAK;QAC1B,MAAMoB,UAAU,GAAGpB,IAAI,CAAClD,EAAE,KAAKC,cAAc;QAC7C,oBACEjC,KAAA,CAACjB,gBAAgB;UAEfsG,KAAK,EAAE,CAACnE,MAAM,CAACqF,QAAQ,EAAED,UAAU,IAAIpF,MAAM,CAACsF,gBAAgB,CAAE;UAChEC,OAAO,EAAEA,CAAA,KAAMvE,iBAAiB,CAACgD,IAAI,CAAClD,EAAE,CAAE;UAC1C0E,aAAa,EAAE,GAAI;UAAAjB,QAAA,gBAEnBzF,KAAA,CAAClB,IAAI;YAAA2G,QAAA,gBACH3F,IAAA,CAACjB,IAAI;cACHwG,KAAK,EAAE,CACLnE,MAAM,CAACyF,SAAS,EAChBL,UAAU,IAAIpF,MAAM,CAAC0F,iBAAiB,CACtC;cAAAnB,QAAA,EAEDP,IAAI,CAAC5E;YAAK,CACP,CAAC,EACN4E,IAAI,CAACP,QAAQ,iBACZ7E,IAAA,CAACjB,IAAI;cACHwG,KAAK,EAAE,CACLnE,MAAM,CAAC2F,YAAY,EACnBP,UAAU,IAAIpF,MAAM,CAAC4F,oBAAoB,CACzC;cAAArB,QAAA,EAEDP,IAAI,CAACP;YAAQ,CACV,CACP;UAAA,CACG,CAAC,eACP7E,IAAA,CAACjB,IAAI;YACHwG,KAAK,EAAE,CACLnE,MAAM,CAAC6F,SAAS,EAChBT,UAAU,IAAIpF,MAAM,CAAC8F,iBAAiB,CACtC;YAAAvB,QAAA,EAEDP,IAAI,CAACjB;UAAK,CACP,CAAC;QAAA,GAhCFiB,IAAI,CAAClD,EAiCM,CAAC;MAEvB,CAAC;IAAC,CACE,CAAC;EAEX,CAAC;EAED,MAAMiF,YAAY,GAAGA,CAAA,KAAM;IACzB,MAAMC,WAAW,GAAG,MAAAA,CAAA,KAAY;MAC9B7D,OAAO,CAAC8D,GAAG,CAAC,qCAAqC,EAAE;QAAElF;MAAe,CAAC,CAAC;MACtE,IAAI,CAACjB,gBAAgB,IAAIL,QAAQ,KAAKsB,cAAc,EAAE;QACpD,IAAI;UACF,MAAM6B,UAAU,GAAG3B,WAAW,CAAC4B,IAAI,CAChCN,CAAC,IAAKA,CAAC,CAACP,SAAS,KAAKjB,cACzB,CAAC;UACD,IAAI6B,UAAU,EAAE;YACd;YACA;YACA,MAAMsD,cAAc,GAClB,6BAA6B,IAAItD,UAAU,IAC3C,0BAA0B,IAAIA,UAAU;YAE1CT,OAAO,CAAC8D,GAAG,CAAC,6CAA6C,EAAE;cACzDC,cAAc;cACdlE,SAAS,EAAEY,UAAU,CAACZ;YACxB,CAAC,CAAC;YAEF,IAAIkE,cAAc,EAAE;cAClB;cACA,IAAIC,UAAU;cACd,IAAInI,QAAQ,CAACgF,EAAE,KAAK,SAAS,EAAE;gBAC7BmD,UAAU,GAAIvD,UAAU,CAASO,wBAAwB,GAAG,CAAC,CAAC,EAC1DgD,UAAU;cAChB;cAEAhE,OAAO,CAAC8D,GAAG,CAAC,iDAAiD,EAAE;gBAC7DG,GAAG,EAAErF,cAAc;gBACnBoF;cACF,CAAC,CAAC;cACF,MAAM/H,mBAAmB,CAAC;gBACxBgI,GAAG,EAAErF,cAAc;gBACnB,IAAIoF,UAAU,IAAI;kBAChBE,kBAAkB,EAAE,CAAC;oBAAED,GAAG,EAAErF,cAAc;oBAAEoF;kBAAW,CAAC;gBAC1D,CAAC;cACH,CAAC,CAAC;YACJ,CAAC,MAAM;cACLhE,OAAO,CAAC8D,GAAG,CACT,sDAAsD,EACtD;gBAAEG,GAAG,EAAErF;cAAe,CACxB,CAAC;cACD,MAAM1C,eAAe,CAAC;gBACpB+H,GAAG,EAAErF;cACP,CAAC,CAAC;YACJ;UACF,CAAC,MAAM;YACL;YACA;YACAoB,OAAO,CAAC8D,GAAG,CACT,+EAA+E,EAC/ElF,cACF,CAAC;YACD,IAAI;cACFoB,OAAO,CAAC8D,GAAG,CACT,mEAAmE,EACnElF,cACF,CAAC;cACD,MAAM3C,mBAAmB,CAAC;gBAAEgI,GAAG,EAAErF;cAAe,CAAC,CAAC;YACpD,CAAC,CAAC,OAAOuF,MAAM,EAAE;cACfnE,OAAO,CAACC,IAAI,CACV,6DAA6D,EAC7DkE,MACF,CAAC;cACDnE,OAAO,CAAC8D,GAAG,CACT,+DAA+D,EAC/DlF,cACF,CAAC;cACD,IAAI;gBACF,MAAM1C,eAAe,CAAC;kBAAE+H,GAAG,EAAErF;gBAAe,CAAC,CAAC;cAChD,CAAC,CAAC,OAAOwF,QAAQ,EAAE;gBACjBpE,OAAO,CAACC,IAAI,CACV,yDAAyD,EACzDmE,QACF,CAAC;gBACD,MAAMA,QAAQ;cAChB;YACF;UACF;QACF,CAAC,CAAC,OAAOrE,GAAG,EAAE;UACZC,OAAO,CAACC,IAAI,CAAC,iBAAiB,EAAEF,GAAG,CAAC;UACpC,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;YAC3BC,OAAO,CAACC,IAAI,CACV,yBAAyB,EACzBoE,IAAI,CAACC,SAAS,CAACvE,GAAG,EAAE,IAAI,EAAE,CAAC,CAC7B,CAAC;UACH;UACA;QACF;MACF;MACA/C,eAAe,CAAC4B,cAAc,CAAC;IACjC,CAAC;IAED,IAAI,OAAOzB,MAAM,KAAK,QAAQ,EAAE;MAC9B,oBAAOV,IAAA,CAACJ,aAAa;QAAC4F,IAAI,EAAE9E,MAAO;QAACiG,OAAO,EAAES;MAAY,CAAE,CAAC;IAC9D;IACA,OAAO1G,MAAM,CAAC;MAAEiG,OAAO,EAAES;IAAY,CAAC,CAAC;EACzC,CAAC;EAED,MAAMU,iBAAiB,GAAGA,CAAA,KAAM;IAC9B,IAAI,CAAC/G,iBAAiB,IAAI,CAACC,OAAO,IAAI,CAACC,SAAS,EAAE,OAAO,IAAI;IAE7D,oBACEf,KAAA,CAAClB,IAAI;MAACuG,KAAK,EAAEnE,MAAM,CAAC2G,oBAAqB;MAAApC,QAAA,GACtC5E,iBAAiB,iBAChBf,IAAA,CAACf,gBAAgB;QAAC0H,OAAO,EAAE5F,iBAAiB,CAAC4F,OAAQ;QAAAhB,QAAA,eACnD3F,IAAA,CAACjB,IAAI;UAACwG,KAAK,EAAEnE,MAAM,CAAC4G,cAAe;UAAArC,QAAA,EAAE5E,iBAAiB,CAACyE;QAAI,CAAO;MAAC,CACnD,CACnB,EAEAzE,iBAAiB,KAAKC,OAAO,IAAIC,SAAS,CAAC,iBAC1CjB,IAAA,CAACjB,IAAI;QAACwG,KAAK,EAAEnE,MAAM,CAAC6G,mBAAoB;QAAAtC,QAAA,EAAC;MAAC,CAAM,CACjD,EAEA3E,OAAO,iBACNhB,IAAA,CAACf,gBAAgB;QAAC0H,OAAO,EAAE3F,OAAO,CAAC2F,OAAQ;QAAAhB,QAAA,eACzC3F,IAAA,CAACjB,IAAI;UAACwG,KAAK,EAAEnE,MAAM,CAAC4G,cAAe;UAAArC,QAAA,EAAE3E,OAAO,CAACwE;QAAI,CAAO;MAAC,CACzC,CACnB,EAEAxE,OAAO,IAAIC,SAAS,iBACnBjB,IAAA,CAACjB,IAAI;QAACwG,KAAK,EAAEnE,MAAM,CAAC6G,mBAAoB;QAAAtC,QAAA,EAAC;MAAC,CAAM,CACjD,EAEA1E,SAAS,iBACRjB,IAAA,CAACf,gBAAgB;QAAC0H,OAAO,EAAE1F,SAAS,CAAC0F,OAAQ;QAAAhB,QAAA,eAC3C3F,IAAA,CAACjB,IAAI;UAACwG,KAAK,EAAEnE,MAAM,CAAC4G,cAAe;UAAArC,QAAA,EAAE1E,SAAS,CAACuE;QAAI,CAAO;MAAC,CAC3C,CACnB;IAAA,CACG,CAAC;EAEX,CAAC;EAED,oBACEtF,KAAA,CAAClB,IAAI;IAACuG,KAAK,EAAEnE,MAAM,CAAC8G,aAAc;IAAAvC,QAAA,gBAChC3F,IAAA,CAAChB,IAAI;MAACuG,KAAK,EAAEnE,MAAM,CAAC+G,oBAAqB;MAAAxC,QAAA,EACtC,OAAOhF,KAAK,KAAK,UAAU,GACxBA,KAAK,CAAC,CAAC,GACPA,KAAK,iBACHX,IAAA,CAACnB,KAAK;QAACuJ,MAAM,EAAEzH,KAAM;QAAC4E,KAAK,EAAEnE,MAAM,CAACT,KAAM;QAAC0H,UAAU,EAAC;MAAO,CAAE;IAChE,CACD,CAAC,eAEPnI,KAAA,CAAClB,IAAI;MAACuG,KAAK,EAAEnE,MAAM,CAACkH,cAAe;MAAA3C,QAAA,gBACjC3F,IAAA,CAACd,UAAU;QACTqG,KAAK,EAAEnE,MAAM,CAACmH,SAAU;QACxBC,qBAAqB,EAAEpH,MAAM,CAACqH,gBAAiB;QAC/CC,4BAA4B,EAAE,KAAM;QACpCC,OAAO,EAAE,KAAM;QAAAhD,QAAA,eAEfzF,KAAA,CAAClB,IAAI;UAACuG,KAAK,EAAEnE,MAAM,CAACwH,cAAe;UAAAjD,QAAA,gBACjCzF,KAAA,CAAClB,IAAI;YAACuG,KAAK,EAAEnE,MAAM,CAACyH,eAAgB;YAAAlD,QAAA,GACjCL,WAAW,CAAC,CAAC,EACbM,cAAc,CAAC,CAAC;UAAA,CACb,CAAC,EAENG,cAAc,CAAC,CAAC,EAEhBO,WAAW,CAAC,CAAC,EAEbwB,iBAAiB,CAAC,CAAC;QAAA,CAChB;MAAC,CACG,CAAC,eACb5H,KAAA,CAAClB,IAAI;QAACuG,KAAK,EAAEnE,MAAM,CAAC0H,eAAgB;QAAAnD,QAAA,GACjC7E,kBAAkB,iBACjBd,IAAA,CAACjB,IAAI;UAACwG,KAAK,EAAEnE,MAAM,CAAC2H,UAAW;UAAApD,QAAA,EAAE7E;QAAkB,CAAO,CAC3D,EAEAqG,YAAY,CAAC,CAAC;MAAA,CACX,CAAC;IAAA,CACH,CAAC;EAAA,CACH,CAAC;AAEX;AAEA,eAAe7G,sBAAsB;AAErC,MAAMe,YAAY,GAAIF,KAAY,IAChCrC,UAAU,CAACkK,MAAM,CAAC;EAChBd,aAAa,EAAE;IACbe,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE/H,KAAK,CAACgI,EAAE,CAACC;EAC5B,CAAC;EACDjB,oBAAoB,EAAE;IACpBhI,MAAM,EAAEC,YAAY,GAAG,GAAG;IAC1BiJ,KAAK,EAAE;EACT,CAAC;EACDf,cAAc,EAAE;IACdW,IAAI,EAAE,CAAC;IACPK,SAAS,EAAE,CAAC,EAAE;IACdJ,eAAe,EAAE/H,KAAK,CAACgI,EAAE,CAACC,SAAS;IACnCG,mBAAmB,EAAE,EAAE;IACvBC,oBAAoB,EAAE,EAAE;IACxBC,QAAQ,EAAE;EACZ,CAAC;EACDlB,SAAS,EAAE;IACTU,IAAI,EAAE;EACR,CAAC;EACDR,gBAAgB,EAAE;IAChBiB,aAAa,EAAE;EACjB,CAAC;EACDZ,eAAe,EAAE;IACfa,iBAAiB,EAAE,CAAC;IACpBC,YAAY,EAAE,EAAE;IAChBC,UAAU,EAAE,CAAC;IACbX,eAAe,EAAE/H,KAAK,CAACgI,EAAE,CAACC;EAC5B,CAAC;EACDR,cAAc,EAAE;IACde,iBAAiB,EAAE,EAAE;IACrBE,UAAU,EAAE;EACd,CAAC;EACDlJ,KAAK,EAAE;IACL0I,KAAK,EAAE,MAAM;IACblJ,MAAM,EAAE;EACV,CAAC;EACD0I,eAAe,EAAE;IACfiB,UAAU,EAAE,QAAQ;IACpBF,YAAY,EAAE,EAAE;IAChBN,SAAS,EAAE;EACb,CAAC;EACD9D,IAAI,EAAE;IACJuE,QAAQ,EAAElK,SAAS,CAACmK,GAAG;IACvBC,UAAU,EAAEnK,WAAW,CAACkK,GAAG;IAC3BE,SAAS,EAAE;EACb,CAAC;EACDzE,KAAK,EAAE;IACL0E,KAAK,EAAEhJ,KAAK,CAACqE,IAAI,CAAC4E;EACpB,CAAC;EACDvE,KAAK,EAAE;IACLyD,SAAS,EAAE,CAAC;IACZa,KAAK,EAAEhJ,KAAK,CAACqE,IAAI,CAAC4D,SAAS;IAC3BW,QAAQ,EAAElK,SAAS,CAACwK,EAAE;IACtBJ,UAAU,EAAEnK,WAAW,CAACuK;EAC1B,CAAC;EACD3E,SAAS,EAAE;IACT4E,UAAU,EAAEnJ,KAAK,CAACoJ,KAAK,CAACC,UAAU;IAClCC,UAAU,EAAE;EACd,CAAC;EACD3E,YAAY,EAAE;IACZwE,UAAU,EAAEnJ,KAAK,CAACoJ,KAAK,CAACG;EAC1B,CAAC;EACD1E,iBAAiB,EAAE;IACjB4D,YAAY,EAAE,EAAE;IAChBD,iBAAiB,EAAE;EACrB,CAAC;EACDxD,UAAU,EAAE;IACVwE,aAAa,EAAE,KAAK;IACpBb,UAAU,EAAE,QAAQ;IACpBF,YAAY,EAAE;EAChB,CAAC;EACDxD,SAAS,EAAE;IACT+D,KAAK,EAAEhJ,KAAK,CAACgI,EAAE,CAACyB,MAAM;IACtBb,QAAQ,EAAElK,SAAS,CAACgL,EAAE;IACtBC,WAAW,EAAE,EAAE;IACfL,UAAU,EAAE;EACd,CAAC;EACDpE,WAAW,EAAE;IACX8D,KAAK,EAAEhJ,KAAK,CAACqE,IAAI,CAAC4E,OAAO;IACzBL,QAAQ,EAAElK,SAAS,CAACwK,EAAE;IACtBI,UAAU,EAAE;EACd,CAAC;EACDlE,cAAc,EAAE;IACdwE,GAAG,EAAE,EAAE;IACPnB,YAAY,EAAE;EAChB,CAAC;EACDnD,QAAQ,EAAE;IACRkE,aAAa,EAAE,KAAK;IACpBb,UAAU,EAAE,QAAQ;IACpBkB,cAAc,EAAE,eAAe;IAC/BC,OAAO,EAAE,EAAE;IACXC,SAAS,EAAE,EAAE;IACbC,YAAY,EAAE,EAAE;IAChBjC,eAAe,EAAE/H,KAAK,CAACgI,EAAE,CAACC,SAAS;IACnCgC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAElK,KAAK,CAACgI,EAAE,CAACmC,KAAK;IAC3B;IACAC,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MAAEnC,KAAK,EAAE,CAAC;MAAElJ,MAAM,EAAE;IAAE,CAAC;IACrCsL,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACDjF,gBAAgB,EAAE;IAChB2E,WAAW,EAAElK,KAAK,CAACgI,EAAE,CAACyB,MAAM;IAC5B1B,eAAe,EAAE/H,KAAK,CAACgI,EAAE,CAACmC,KAAK;IAC/BF,WAAW,EAAE;EACf,CAAC;EACDvE,SAAS,EAAE;IACTkD,QAAQ,EAAElK,SAAS,CAACwK,EAAE;IACtBI,UAAU,EAAE,KAAK;IACjBN,KAAK,EAAEhJ,KAAK,CAACqE,IAAI,CAAC4E;EACpB,CAAC;EACDtD,iBAAiB,EAAE;IACjBqD,KAAK,EAAEhJ,KAAK,CAACqE,IAAI,CAAC4E,OAAO;IACzBK,UAAU,EAAE;EACd,CAAC;EACD1D,YAAY,EAAE;IACZgD,QAAQ,EAAElK,SAAS,CAAC+L,EAAE;IACtBzB,KAAK,EAAEhJ,KAAK,CAACqE,IAAI,CAAC4D,SAAS;IAC3BE,SAAS,EAAE;EACb,CAAC;EACDtC,oBAAoB,EAAE;IACpBmD,KAAK,EAAEhJ,KAAK,CAACqE,IAAI,CAAC4D;EACpB,CAAC;EACDnC,SAAS,EAAE;IACT8C,QAAQ,EAAElK,SAAS,CAACgL,EAAE;IACtBJ,UAAU,EAAE,KAAK;IACjBN,KAAK,EAAEhJ,KAAK,CAACqE,IAAI,CAAC4E;EACpB,CAAC;EACDlD,iBAAiB,EAAE;IACjBiD,KAAK,EAAEhJ,KAAK,CAACgI,EAAE,CAACyB;EAClB,CAAC;EACD7B,UAAU,EAAE;IACVmB,SAAS,EAAE,QAAQ;IACnBC,KAAK,EAAEhJ,KAAK,CAACqE,IAAI,CAAC4D,SAAS;IAC3BW,QAAQ,EAAElK,SAAS,CAAC+L,EAAE;IACtBhC,YAAY,EAAE,CAAC;IACfa,UAAU,EAAE;EACd,CAAC;EACD1C,oBAAoB,EAAE;IACpB4C,aAAa,EAAE,KAAK;IACpBK,cAAc,EAAE,QAAQ;IACxBlB,UAAU,EAAE,QAAQ;IACpBR,SAAS,EAAE,CAAC;IACZyB,GAAG,EAAE;EACP,CAAC;EACD/C,cAAc,EAAE;IACd+B,QAAQ,EAAElK,SAAS,CAACwK,EAAE;IACtBF,KAAK,EAAEhJ,KAAK,CAACqE,IAAI,CAAC4D;EACpB,CAAC;EACDnB,mBAAmB,EAAE;IACnB8B,QAAQ,EAAElK,SAAS,CAACgM,EAAE;IACtB1B,KAAK,EAAEhJ,KAAK,CAACqE,IAAI,CAAC4D;EACpB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -150,9 +150,16 @@ function SpillOnboarding({
|
|
|
150
150
|
onPressContinue: onPaywallContinue
|
|
151
151
|
});
|
|
152
152
|
}
|
|
153
|
+
const {
|
|
154
|
+
onPressContinue,
|
|
155
|
+
...otherProps
|
|
156
|
+
} = paywallPanelProps;
|
|
157
|
+
|
|
158
|
+
// Use the provided onPressContinue if available, otherwise use default
|
|
159
|
+
const handleContinue = onPressContinue || onPaywallContinue;
|
|
153
160
|
return /*#__PURE__*/_jsx(OnboardingPaywallPanel, {
|
|
154
|
-
onPressContinue:
|
|
155
|
-
...
|
|
161
|
+
onPressContinue: handleContinue,
|
|
162
|
+
...otherProps
|
|
156
163
|
});
|
|
157
164
|
};
|
|
158
165
|
const renderStepContent = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useState","useEffect","useCallback","View","BackHandler","Platform","StyleSheet","useTheme","OnboardingIntroPanel","OnboardingPaywallPanel","useSharedValue","withTiming","OnboardingStepPanel","OnboardingStepContainer","OnboardingImageContainer","OnboardingModal","useMeasureHeight","trackEvent","jsx","_jsx","jsxs","_jsxs","SpillOnboarding","animationDuration","introPanel","introPanelProps","steps","onComplete","onSkip","onStepChange","onStepChangeProps","showCloseButton","showBackButton","wrapInModalOnWeb","background","skipButton","apiKey","isDev","paywallPanel","paywallPanelProps","theme","styles","createStyles","backgroundSpillProgress","step","setStep","currentStep","undefined","firstStep","isPaywall","length","stepNumber","getStepName","index","s","title","fromStepName","toStepName","console","log","from","to","from_index","to_index","from_step","to_step","backHandler","addEventListener","set","duration","setTimeout","remove","stepPanel","screen","onPressStart","onNextPress","onBackPress","renderIntroPanel","subtitle","button","image","onPaywallContinue","planId","plan_id","renderPaywallPanel","onPressContinue","renderStepContent","component","onNext","onBack","isLast","label","description","buttonLabel","buttonPrimary","currentStepImage","onboardingContent","style","container","ref","children","bottomPanel","position","screenHeight","height","fullScreenPanel","OS","create","flex","backgroundColor","bg","secondary","paddingHorizontal","paddingBottom","insets","bottom","left","right","zIndex"],"sourceRoot":"../../../src","sources":["spill-onboarding/index.tsx"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["useMemo","useState","useEffect","useCallback","View","BackHandler","Platform","StyleSheet","useTheme","OnboardingIntroPanel","OnboardingPaywallPanel","useSharedValue","withTiming","OnboardingStepPanel","OnboardingStepContainer","OnboardingImageContainer","OnboardingModal","useMeasureHeight","trackEvent","jsx","_jsx","jsxs","_jsxs","SpillOnboarding","animationDuration","introPanel","introPanelProps","steps","onComplete","onSkip","onStepChange","onStepChangeProps","showCloseButton","showBackButton","wrapInModalOnWeb","background","skipButton","apiKey","isDev","paywallPanel","paywallPanelProps","theme","styles","createStyles","backgroundSpillProgress","step","setStep","currentStep","undefined","firstStep","isPaywall","length","stepNumber","getStepName","index","s","title","fromStepName","toStepName","console","log","from","to","from_index","to_index","from_step","to_step","backHandler","addEventListener","set","duration","setTimeout","remove","stepPanel","screen","onPressStart","onNextPress","onBackPress","renderIntroPanel","subtitle","button","image","onPaywallContinue","planId","plan_id","renderPaywallPanel","onPressContinue","otherProps","handleContinue","renderStepContent","component","onNext","onBack","isLast","label","description","buttonLabel","buttonPrimary","currentStepImage","onboardingContent","style","container","ref","children","bottomPanel","position","screenHeight","height","fullScreenPanel","OS","create","flex","backgroundColor","bg","secondary","paddingHorizontal","paddingBottom","insets","bottom","left","right","zIndex"],"sourceRoot":"../../../src","sources":["spill-onboarding/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingImageContainer.d.ts","sourceRoot":"","sources":["../../../../../src/spill-onboarding/components/OnboardingImageContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"OnboardingImageContainer.d.ts","sourceRoot":"","sources":["../../../../../src/spill-onboarding/components/OnboardingImageContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,EAEL,KAAK,mBAAmB,EAIzB,MAAM,cAAc,CAAC;AACtB,OAAiB,EAMf,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,UAAU,6BAA6B;IACrC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC;IACxC,gBAAgB,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAClD,QAAQ,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,UAAU,EAAE,GAAG,CAAC;IAChB,SAAS,EAAE,GAAG,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,SAAS,CAAC;CAC9B;AAED,iBAAS,wBAAwB,CAAC,EAChC,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,iBAAiB,EACjB,uBAAuB,EACvB,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,GACX,EAAE,6BAA6B,2CA6G/B;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { OnboardingPaywallPanelProps } from '../types';
|
|
2
|
-
declare function OnboardingPaywallPanel({ onPressContinue, title, subtitle, button, image, plans, helperTextContinue, onRestorePurchase, onTerms, onPrivacy, }: OnboardingPaywallPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
declare function OnboardingPaywallPanel({ onPressContinue, title, subtitle, button, image, plans, products, helperTextContinue, onRestorePurchase, onTerms, onPrivacy, subscriptionSkus, }: OnboardingPaywallPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default OnboardingPaywallPanel;
|
|
4
4
|
//# sourceMappingURL=OnboardingPaywallPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingPaywallPanel.d.ts","sourceRoot":"","sources":["../../../../../src/spill-onboarding/components/OnboardingPaywallPanel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OnboardingPaywallPanel.d.ts","sourceRoot":"","sources":["../../../../../src/spill-onboarding/components/OnboardingPaywallPanel.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,2BAA2B,EAAe,MAAM,UAAU,CAAC;AAIzE,iBAAS,sBAAsB,CAAC,EAC9B,eAAe,EACf,KAAK,EACL,QAAQ,EACR,MAAM,EACN,KAAK,EACL,KAAU,EACV,QAAQ,EACR,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,gBAAgB,GACjB,EAAE,2BAA2B,2CA4b7B;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/spill-onboarding/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAK/C,iBAAS,eAAe,CAAC,EACvB,iBAAuB,EACvB,UAAU,EAAE,eAAe,EAC3B,KAAK,EACL,UAAU,EACV,MAAM,EACN,YAAY,EAAE,iBAAiB,EAC/B,eAAsB,EACtB,cAAqB,EACrB,gBAAuB,EACvB,UAAU,EACV,UAAU,EACV,MAAM,EACN,KAAK,EACL,YAAY,EAAE,iBAAiB,GAChC,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/spill-onboarding/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAK/C,iBAAS,eAAe,CAAC,EACvB,iBAAuB,EACvB,UAAU,EAAE,eAAe,EAC3B,KAAK,EACL,UAAU,EACV,MAAM,EACN,YAAY,EAAE,iBAAiB,EAC/B,eAAsB,EACtB,cAAqB,EACrB,gBAAuB,EACvB,UAAU,EACV,UAAU,EACV,MAAM,EACN,KAAK,EACL,YAAY,EAAE,iBAAiB,GAChC,EAAE,eAAe,2CAkQjB;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -200,6 +200,10 @@ export interface OnboardingProps {
|
|
|
200
200
|
*/
|
|
201
201
|
paywallPanel?: OnboardingPaywallPanelConfig;
|
|
202
202
|
}
|
|
203
|
+
export interface PlatformSku {
|
|
204
|
+
ios?: string[];
|
|
205
|
+
android?: string[];
|
|
206
|
+
}
|
|
203
207
|
export interface PaywallPlan {
|
|
204
208
|
id: string;
|
|
205
209
|
title: string;
|
|
@@ -207,6 +211,19 @@ export interface PaywallPlan {
|
|
|
207
211
|
interval?: string;
|
|
208
212
|
features?: string[];
|
|
209
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* Simplified configuration for a single paywall product/plan.
|
|
216
|
+
*/
|
|
217
|
+
export interface PaywallProductConfig {
|
|
218
|
+
/** SKUs for different platforms. */
|
|
219
|
+
SKus: PlatformSku | string[];
|
|
220
|
+
/** Main product title/name. */
|
|
221
|
+
title: string;
|
|
222
|
+
/** Array of product features. */
|
|
223
|
+
featues: string[];
|
|
224
|
+
/** Numeric or alphanumeric sorting preference. */
|
|
225
|
+
sortOrder: number | string;
|
|
226
|
+
}
|
|
210
227
|
/**
|
|
211
228
|
* Props for the paywall panel.
|
|
212
229
|
*/
|
|
@@ -217,8 +234,16 @@ export interface OnboardingPaywallPanelProps {
|
|
|
217
234
|
title?: string | ReactNode;
|
|
218
235
|
/** Subtitle content. */
|
|
219
236
|
subtitle?: string | ReactNode;
|
|
220
|
-
/**
|
|
221
|
-
|
|
237
|
+
/**
|
|
238
|
+
* List of plans to display.
|
|
239
|
+
* Required if `products` is not provided.
|
|
240
|
+
*/
|
|
241
|
+
plans?: PaywallPlan[];
|
|
242
|
+
/**
|
|
243
|
+
* Simplified configuration for paywall products.
|
|
244
|
+
* If provided, handles fetching and displaying products automatically.
|
|
245
|
+
*/
|
|
246
|
+
products?: PaywallProductConfig[];
|
|
222
247
|
/**
|
|
223
248
|
* Button content. Either a simple string label or a render function.
|
|
224
249
|
*/
|
|
@@ -244,8 +269,14 @@ export interface OnboardingPaywallPanelProps {
|
|
|
244
269
|
text?: string;
|
|
245
270
|
onPress: () => void;
|
|
246
271
|
};
|
|
272
|
+
/**
|
|
273
|
+
* SKUs for In-App Purchases (Subscriptions).
|
|
274
|
+
* If provided, the component will attempt to fetch product details from the store
|
|
275
|
+
* using react-native-iap and handle purchases.
|
|
276
|
+
*/
|
|
277
|
+
subscriptionSkus?: PlatformSku;
|
|
247
278
|
}
|
|
248
|
-
type OnboardingPaywallPanelConfig =
|
|
279
|
+
type OnboardingPaywallPanelConfig = OnboardingPaywallPanelProps | (({ onPressContinue, }: {
|
|
249
280
|
onPressContinue: (planId: string) => void;
|
|
250
281
|
}) => ReactNode);
|
|
251
282
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/spill-onboarding/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/spill-onboarding/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rn-onboarding-analytics",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.1",
|
|
4
4
|
"description": "Onboarding/tutorial flow for React Native with analytics.",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -38,7 +38,8 @@
|
|
|
38
38
|
"prepare": "bob build",
|
|
39
39
|
"prepack": "sed -i '' '1s|.*||' README.md",
|
|
40
40
|
"postpack": "git checkout README.md",
|
|
41
|
-
"release": "release-it --only-version"
|
|
41
|
+
"release": "release-it --only-version",
|
|
42
|
+
"watch:yalc": "nodemon --watch src --ext ts,tsx,js,json --exec 'npm run prepare && yalc push'"
|
|
42
43
|
},
|
|
43
44
|
"keywords": [
|
|
44
45
|
"react-native",
|
|
@@ -77,14 +78,16 @@
|
|
|
77
78
|
"eslint-plugin-prettier": "^5.5.4",
|
|
78
79
|
"expo-image": "^3.0.8",
|
|
79
80
|
"jest": "^29.7.0",
|
|
80
|
-
"
|
|
81
|
+
"nodemon": "^3.1.11",
|
|
82
|
+
"prettier": "^3.7.4",
|
|
81
83
|
"react": "19.1.0",
|
|
82
84
|
"react-native": "0.81.4",
|
|
83
85
|
"react-native-builder-bob": "^0.40.13",
|
|
86
|
+
"react-native-iap": "^12.16.1",
|
|
84
87
|
"react-native-reanimated": "4",
|
|
85
88
|
"react-native-safe-area-context": "^5.6.1",
|
|
86
|
-
"react-native-worklets": "^0.5.1",
|
|
87
89
|
"react-native-svg": "^15.13.0",
|
|
90
|
+
"react-native-worklets": "^0.5.1",
|
|
88
91
|
"release-it": "^19.0.4",
|
|
89
92
|
"typescript": "5.6.3"
|
|
90
93
|
},
|
|
@@ -92,6 +95,7 @@
|
|
|
92
95
|
"expo-image": "*",
|
|
93
96
|
"react": "*",
|
|
94
97
|
"react-native": "*",
|
|
98
|
+
"react-native-iap": "*",
|
|
95
99
|
"react-native-reanimated": "*",
|
|
96
100
|
"react-native-safe-area-context": "*",
|
|
97
101
|
"react-native-svg": "*"
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useMemo, type ReactNode } from 'react';
|
|
2
|
+
import type { ImageProps as ExpoImageProps } from 'expo-image';
|
|
2
3
|
import {
|
|
3
4
|
Image,
|
|
4
5
|
type ImageSourcePropType,
|
|
@@ -134,7 +135,7 @@ function OnboardingImageContainer({
|
|
|
134
135
|
<Animated.View style={[styles.image, imageAnimation]} ref={image.ref}>
|
|
135
136
|
{ExpoImage ? (
|
|
136
137
|
<ExpoImage
|
|
137
|
-
source={currentStepImage}
|
|
138
|
+
source={currentStepImage as ExpoImageProps['source']}
|
|
138
139
|
contentFit="contain"
|
|
139
140
|
transition={0}
|
|
140
141
|
style={styles.imageStyle}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useMemo, useState } from 'react';
|
|
1
|
+
import { useMemo, useState, useEffect } from 'react';
|
|
2
2
|
import {
|
|
3
3
|
Image,
|
|
4
4
|
StyleSheet,
|
|
@@ -7,12 +7,23 @@ import {
|
|
|
7
7
|
TouchableOpacity,
|
|
8
8
|
ScrollView,
|
|
9
9
|
Dimensions,
|
|
10
|
+
Platform,
|
|
10
11
|
} from 'react-native';
|
|
12
|
+
import {
|
|
13
|
+
initConnection,
|
|
14
|
+
getSubscriptions,
|
|
15
|
+
getProducts,
|
|
16
|
+
requestSubscription,
|
|
17
|
+
requestPurchase,
|
|
18
|
+
endConnection,
|
|
19
|
+
type Subscription,
|
|
20
|
+
type Product,
|
|
21
|
+
} from 'react-native-iap';
|
|
11
22
|
import { useTheme } from '../../utils/ThemeContext';
|
|
12
23
|
import type { Theme } from '../../utils/theme';
|
|
13
24
|
import PrimaryButton from '../buttons/PrimaryButton';
|
|
14
25
|
import { fontSizes, lineHeights } from '../../utils/fontStyles';
|
|
15
|
-
import type { OnboardingPaywallPanelProps } from '../types';
|
|
26
|
+
import type { OnboardingPaywallPanelProps, PlatformSku } from '../types';
|
|
16
27
|
|
|
17
28
|
const { height: screenHeight } = Dimensions.get('window');
|
|
18
29
|
|
|
@@ -22,19 +33,195 @@ function OnboardingPaywallPanel({
|
|
|
22
33
|
subtitle,
|
|
23
34
|
button,
|
|
24
35
|
image,
|
|
25
|
-
plans,
|
|
36
|
+
plans = [],
|
|
37
|
+
products,
|
|
26
38
|
helperTextContinue,
|
|
27
39
|
onRestorePurchase,
|
|
28
40
|
onTerms,
|
|
29
41
|
onPrivacy,
|
|
42
|
+
subscriptionSkus,
|
|
30
43
|
}: OnboardingPaywallPanelProps) {
|
|
31
44
|
const { theme } = useTheme();
|
|
32
45
|
const styles = useMemo(() => createStyles(theme), [theme]);
|
|
33
|
-
|
|
34
|
-
|
|
46
|
+
|
|
47
|
+
// Initialize selectedPlanId based on available configuration
|
|
48
|
+
const initialPlanId = useMemo(() => {
|
|
49
|
+
if (products && products.length > 0) {
|
|
50
|
+
// Sort first to pick the first one correctly if needed,
|
|
51
|
+
// but simplistic approach: pick the first product's first SKU for the current platform
|
|
52
|
+
const firstProduct = products[0];
|
|
53
|
+
if (!firstProduct) return '';
|
|
54
|
+
let firstSku = '';
|
|
55
|
+
if (Array.isArray(firstProduct.SKus)) {
|
|
56
|
+
firstSku = firstProduct.SKus[0] || '';
|
|
57
|
+
} else {
|
|
58
|
+
const skusObj = firstProduct.SKus as PlatformSku;
|
|
59
|
+
const skus = Platform.select({
|
|
60
|
+
ios: skusObj.ios,
|
|
61
|
+
android: skusObj.android,
|
|
62
|
+
});
|
|
63
|
+
firstSku = skus?.[0] || '';
|
|
64
|
+
}
|
|
65
|
+
return firstSku;
|
|
66
|
+
}
|
|
67
|
+
return plans?.[0]?.id || '';
|
|
68
|
+
}, [products, plans]);
|
|
69
|
+
|
|
70
|
+
const [selectedPlanId, setSelectedPlanId] = useState<string>(initialPlanId);
|
|
71
|
+
const [iapProducts, setIapProducts] = useState<(Subscription | Product)[]>(
|
|
72
|
+
[]
|
|
35
73
|
);
|
|
36
74
|
|
|
37
|
-
|
|
75
|
+
useEffect(() => {
|
|
76
|
+
let isMounted = true;
|
|
77
|
+
|
|
78
|
+
const fetchIapProducts = async (skus: string[]) => {
|
|
79
|
+
try {
|
|
80
|
+
await initConnection();
|
|
81
|
+
if (!isMounted) return;
|
|
82
|
+
|
|
83
|
+
// Fetch both subscriptions and products to cover all bases
|
|
84
|
+
const [subs, prods] = await Promise.all([
|
|
85
|
+
getSubscriptions({ skus }).catch(() => [] as Subscription[]),
|
|
86
|
+
getProducts({ skus }).catch(() => [] as Product[]),
|
|
87
|
+
]);
|
|
88
|
+
|
|
89
|
+
if (isMounted) {
|
|
90
|
+
// Filter out duplicates if any (unlikely but safe)
|
|
91
|
+
const allItems = [...subs, ...prods];
|
|
92
|
+
const uniqueItems = Array.from(
|
|
93
|
+
new Map(allItems.map((item) => [item.productId, item])).values()
|
|
94
|
+
);
|
|
95
|
+
setIapProducts(uniqueItems);
|
|
96
|
+
}
|
|
97
|
+
} catch (err) {
|
|
98
|
+
console.warn('IAP Error:', err);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
if (products && products.length > 0) {
|
|
103
|
+
// Collect all SKUs from all products for current platform
|
|
104
|
+
const allSkus = products.flatMap((p) => {
|
|
105
|
+
if (Array.isArray(p.SKus)) {
|
|
106
|
+
return p.SKus;
|
|
107
|
+
}
|
|
108
|
+
const skusObj = p.SKus as PlatformSku;
|
|
109
|
+
const skus = Platform.select({
|
|
110
|
+
ios: skusObj.ios,
|
|
111
|
+
android: skusObj.android,
|
|
112
|
+
});
|
|
113
|
+
return skus || [];
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
if (allSkus.length > 0) {
|
|
117
|
+
fetchIapProducts(allSkus);
|
|
118
|
+
}
|
|
119
|
+
} else if (subscriptionSkus) {
|
|
120
|
+
const skus = Platform.select({
|
|
121
|
+
ios: subscriptionSkus.ios,
|
|
122
|
+
android: subscriptionSkus.android,
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
if (skus && skus.length > 0) {
|
|
126
|
+
fetchIapProducts(skus);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return () => {
|
|
131
|
+
isMounted = false;
|
|
132
|
+
if (subscriptionSkus || products) {
|
|
133
|
+
endConnection();
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
}, [subscriptionSkus, products]);
|
|
137
|
+
|
|
138
|
+
const displayPlans = useMemo(() => {
|
|
139
|
+
// New Configuration Mode
|
|
140
|
+
if (products && products.length > 0) {
|
|
141
|
+
const mappedPlans = products.map((config) => {
|
|
142
|
+
// Find if any of the product's SKUs matches a fetched IAP product
|
|
143
|
+
let targetSkus: string[] = [];
|
|
144
|
+
if (Array.isArray(config.SKus)) {
|
|
145
|
+
targetSkus = config.SKus;
|
|
146
|
+
} else {
|
|
147
|
+
const skusObj = config.SKus as PlatformSku;
|
|
148
|
+
targetSkus =
|
|
149
|
+
Platform.select({
|
|
150
|
+
ios: skusObj.ios,
|
|
151
|
+
android: skusObj.android,
|
|
152
|
+
}) || [];
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
const iapProduct = iapProducts.find((p) =>
|
|
156
|
+
targetSkus.includes(p.productId)
|
|
157
|
+
);
|
|
158
|
+
|
|
159
|
+
let price = '...'; // Default loading state
|
|
160
|
+
let id = targetSkus[0] || ''; // Default ID to first SKU
|
|
161
|
+
|
|
162
|
+
if (iapProduct) {
|
|
163
|
+
id = iapProduct.productId;
|
|
164
|
+
if (Platform.OS === 'ios') {
|
|
165
|
+
price = (iapProduct as any).localizedPrice || price;
|
|
166
|
+
} else if (Platform.OS === 'android') {
|
|
167
|
+
const offer = (iapProduct as any).subscriptionOfferDetails?.[0];
|
|
168
|
+
price =
|
|
169
|
+
offer?.pricingPhases?.pricingPhaseList?.[0]?.formattedPrice ||
|
|
170
|
+
(iapProduct as any).localizedPrice ||
|
|
171
|
+
price;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
return {
|
|
176
|
+
id,
|
|
177
|
+
title: config.title,
|
|
178
|
+
price,
|
|
179
|
+
// features with typo 'featues' mapped to correct prop 'features'
|
|
180
|
+
features: config.featues,
|
|
181
|
+
interval: '', // Could be inferred from IAP if needed
|
|
182
|
+
sortOrder: config.sortOrder,
|
|
183
|
+
};
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
// Sort based on sortOrder
|
|
187
|
+
return mappedPlans.sort((a, b) => {
|
|
188
|
+
if (
|
|
189
|
+
typeof a.sortOrder === 'number' &&
|
|
190
|
+
typeof b.sortOrder === 'number'
|
|
191
|
+
) {
|
|
192
|
+
return a.sortOrder - b.sortOrder;
|
|
193
|
+
}
|
|
194
|
+
return String(a.sortOrder).localeCompare(String(b.sortOrder));
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
// Legacy Mode
|
|
199
|
+
if (iapProducts.length === 0) return plans;
|
|
200
|
+
|
|
201
|
+
return plans.map((plan) => {
|
|
202
|
+
const iapProduct = iapProducts.find((p) => p.productId === plan.id);
|
|
203
|
+
if (iapProduct) {
|
|
204
|
+
let price = plan.price;
|
|
205
|
+
if (Platform.OS === 'ios') {
|
|
206
|
+
price = (iapProduct as any).localizedPrice || plan.price;
|
|
207
|
+
} else if (Platform.OS === 'android') {
|
|
208
|
+
// Android specific logic for RNIap v12+
|
|
209
|
+
const offer = (iapProduct as any).subscriptionOfferDetails?.[0];
|
|
210
|
+
price =
|
|
211
|
+
offer?.pricingPhases?.pricingPhaseList?.[0]?.formattedPrice ||
|
|
212
|
+
(iapProduct as any).localizedPrice ||
|
|
213
|
+
plan.price;
|
|
214
|
+
}
|
|
215
|
+
return {
|
|
216
|
+
...plan,
|
|
217
|
+
price,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
return plan;
|
|
221
|
+
});
|
|
222
|
+
}, [products, plans, iapProducts]);
|
|
223
|
+
|
|
224
|
+
const selectedPlan = displayPlans.find((p) => p.id === selectedPlanId);
|
|
38
225
|
|
|
39
226
|
const renderTitle = () => {
|
|
40
227
|
if (!title) return null;
|
|
@@ -79,7 +266,7 @@ function OnboardingPaywallPanel({
|
|
|
79
266
|
const renderPlans = () => {
|
|
80
267
|
return (
|
|
81
268
|
<View style={styles.plansContainer}>
|
|
82
|
-
{
|
|
269
|
+
{displayPlans.map((plan) => {
|
|
83
270
|
const isSelected = plan.id === selectedPlanId;
|
|
84
271
|
return (
|
|
85
272
|
<TouchableOpacity
|
|
@@ -124,7 +311,98 @@ function OnboardingPaywallPanel({
|
|
|
124
311
|
};
|
|
125
312
|
|
|
126
313
|
const renderButton = () => {
|
|
127
|
-
const handlePress = () =>
|
|
314
|
+
const handlePress = async () => {
|
|
315
|
+
console.log('OnboardingPaywallPanel: handlePress', { selectedPlanId });
|
|
316
|
+
if ((subscriptionSkus || products) && selectedPlanId) {
|
|
317
|
+
try {
|
|
318
|
+
const iapProduct = iapProducts.find(
|
|
319
|
+
(p) => p.productId === selectedPlanId
|
|
320
|
+
);
|
|
321
|
+
if (iapProduct) {
|
|
322
|
+
// Determine if it's a subscription or one-time purchase
|
|
323
|
+
// Subscriptions usually have 'subscriptionPeriodNumberIOS' or 'subscriptionOfferDetails'
|
|
324
|
+
const isSubscription =
|
|
325
|
+
'subscriptionPeriodNumberIOS' in iapProduct ||
|
|
326
|
+
'subscriptionOfferDetails' in iapProduct;
|
|
327
|
+
|
|
328
|
+
console.log('OnboardingPaywallPanel: Processing purchase', {
|
|
329
|
+
isSubscription,
|
|
330
|
+
productId: iapProduct.productId,
|
|
331
|
+
});
|
|
332
|
+
|
|
333
|
+
if (isSubscription) {
|
|
334
|
+
// For Android, we might need offerToken if available
|
|
335
|
+
let offerToken;
|
|
336
|
+
if (Platform.OS === 'android') {
|
|
337
|
+
offerToken = (iapProduct as any).subscriptionOfferDetails?.[0]
|
|
338
|
+
?.offerToken;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
console.log('OnboardingPaywallPanel: Requesting subscription', {
|
|
342
|
+
sku: selectedPlanId,
|
|
343
|
+
offerToken,
|
|
344
|
+
});
|
|
345
|
+
await requestSubscription({
|
|
346
|
+
sku: selectedPlanId,
|
|
347
|
+
...(offerToken && {
|
|
348
|
+
subscriptionOffers: [{ sku: selectedPlanId, offerToken }],
|
|
349
|
+
}),
|
|
350
|
+
});
|
|
351
|
+
} else {
|
|
352
|
+
console.log(
|
|
353
|
+
'OnboardingPaywallPanel: Requesting one-time purchase',
|
|
354
|
+
{ sku: selectedPlanId }
|
|
355
|
+
);
|
|
356
|
+
await requestPurchase({
|
|
357
|
+
sku: selectedPlanId,
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
} else {
|
|
361
|
+
// Fallback if product not found in fetched list but ID exists
|
|
362
|
+
// Try subscription first as default legacy behavior
|
|
363
|
+
console.log(
|
|
364
|
+
'OnboardingPaywallPanel: Product not in IAP list, attempting fallback purchase',
|
|
365
|
+
selectedPlanId
|
|
366
|
+
);
|
|
367
|
+
try {
|
|
368
|
+
console.log(
|
|
369
|
+
'OnboardingPaywallPanel: Fallback - attempting requestSubscription',
|
|
370
|
+
selectedPlanId
|
|
371
|
+
);
|
|
372
|
+
await requestSubscription({ sku: selectedPlanId });
|
|
373
|
+
} catch (subErr) {
|
|
374
|
+
console.warn(
|
|
375
|
+
'OnboardingPaywallPanel: Fallback requestSubscription failed',
|
|
376
|
+
subErr
|
|
377
|
+
);
|
|
378
|
+
console.log(
|
|
379
|
+
'OnboardingPaywallPanel: Fallback - attempting requestPurchase',
|
|
380
|
+
selectedPlanId
|
|
381
|
+
);
|
|
382
|
+
try {
|
|
383
|
+
await requestPurchase({ sku: selectedPlanId });
|
|
384
|
+
} catch (purchErr) {
|
|
385
|
+
console.warn(
|
|
386
|
+
'OnboardingPaywallPanel: Fallback requestPurchase failed',
|
|
387
|
+
purchErr
|
|
388
|
+
);
|
|
389
|
+
throw purchErr;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
} catch (err) {
|
|
394
|
+
console.warn('Purchase Error:', err);
|
|
395
|
+
if (typeof err === 'object') {
|
|
396
|
+
console.warn(
|
|
397
|
+
'Purchase Error Details:',
|
|
398
|
+
JSON.stringify(err, null, 2)
|
|
399
|
+
);
|
|
400
|
+
}
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
onPressContinue(selectedPlanId);
|
|
405
|
+
};
|
|
128
406
|
|
|
129
407
|
if (typeof button === 'string') {
|
|
130
408
|
return <PrimaryButton text={button} onPress={handlePress} />;
|
|
@@ -222,22 +500,22 @@ const createStyles = (theme: Theme) =>
|
|
|
222
500
|
},
|
|
223
501
|
sheetContainer: {
|
|
224
502
|
flex: 1,
|
|
225
|
-
marginTop: -
|
|
503
|
+
marginTop: -24,
|
|
226
504
|
backgroundColor: theme.bg.secondary,
|
|
227
|
-
borderTopLeftRadius:
|
|
228
|
-
borderTopRightRadius:
|
|
229
|
-
overflow: '
|
|
505
|
+
borderTopLeftRadius: 30,
|
|
506
|
+
borderTopRightRadius: 30,
|
|
507
|
+
overflow: 'scroll',
|
|
230
508
|
},
|
|
231
509
|
container: {
|
|
232
510
|
flex: 1,
|
|
233
511
|
},
|
|
234
512
|
contentContainer: {
|
|
235
|
-
paddingBottom:
|
|
513
|
+
paddingBottom: 24,
|
|
236
514
|
},
|
|
237
515
|
footerContainer: {
|
|
238
|
-
paddingHorizontal:
|
|
239
|
-
|
|
240
|
-
paddingTop:
|
|
516
|
+
paddingHorizontal: 8,
|
|
517
|
+
marginBottom: 40,
|
|
518
|
+
paddingTop: 4,
|
|
241
519
|
backgroundColor: theme.bg.secondary,
|
|
242
520
|
},
|
|
243
521
|
contentWrapper: {
|
|
@@ -191,10 +191,15 @@ function SpillOnboarding({
|
|
|
191
191
|
return paywallPanelProps({ onPressContinue: onPaywallContinue });
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
+
const { onPressContinue, ...otherProps } = paywallPanelProps;
|
|
195
|
+
|
|
196
|
+
// Use the provided onPressContinue if available, otherwise use default
|
|
197
|
+
const handleContinue = onPressContinue || onPaywallContinue;
|
|
198
|
+
|
|
194
199
|
return (
|
|
195
200
|
<OnboardingPaywallPanel
|
|
196
|
-
onPressContinue={
|
|
197
|
-
{...
|
|
201
|
+
onPressContinue={handleContinue}
|
|
202
|
+
{...otherProps}
|
|
198
203
|
/>
|
|
199
204
|
);
|
|
200
205
|
};
|
|
@@ -257,6 +257,11 @@ export interface OnboardingProps {
|
|
|
257
257
|
paywallPanel?: OnboardingPaywallPanelConfig;
|
|
258
258
|
}
|
|
259
259
|
|
|
260
|
+
export interface PlatformSku {
|
|
261
|
+
ios?: string[];
|
|
262
|
+
android?: string[];
|
|
263
|
+
}
|
|
264
|
+
|
|
260
265
|
export interface PaywallPlan {
|
|
261
266
|
id: string;
|
|
262
267
|
title: string;
|
|
@@ -265,6 +270,23 @@ export interface PaywallPlan {
|
|
|
265
270
|
features?: string[];
|
|
266
271
|
}
|
|
267
272
|
|
|
273
|
+
/**
|
|
274
|
+
* Simplified configuration for a single paywall product/plan.
|
|
275
|
+
*/
|
|
276
|
+
export interface PaywallProductConfig {
|
|
277
|
+
/** SKUs for different platforms. */
|
|
278
|
+
SKus: PlatformSku | string[];
|
|
279
|
+
|
|
280
|
+
/** Main product title/name. */
|
|
281
|
+
title: string;
|
|
282
|
+
|
|
283
|
+
/** Array of product features. */
|
|
284
|
+
featues: string[];
|
|
285
|
+
|
|
286
|
+
/** Numeric or alphanumeric sorting preference. */
|
|
287
|
+
sortOrder: number | string;
|
|
288
|
+
}
|
|
289
|
+
|
|
268
290
|
/**
|
|
269
291
|
* Props for the paywall panel.
|
|
270
292
|
*/
|
|
@@ -278,8 +300,17 @@ export interface OnboardingPaywallPanelProps {
|
|
|
278
300
|
/** Subtitle content. */
|
|
279
301
|
subtitle?: string | ReactNode;
|
|
280
302
|
|
|
281
|
-
/**
|
|
282
|
-
|
|
303
|
+
/**
|
|
304
|
+
* List of plans to display.
|
|
305
|
+
* Required if `products` is not provided.
|
|
306
|
+
*/
|
|
307
|
+
plans?: PaywallPlan[];
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Simplified configuration for paywall products.
|
|
311
|
+
* If provided, handles fetching and displaying products automatically.
|
|
312
|
+
*/
|
|
313
|
+
products?: PaywallProductConfig[];
|
|
283
314
|
|
|
284
315
|
/**
|
|
285
316
|
* Button content. Either a simple string label or a render function.
|
|
@@ -300,10 +331,17 @@ export interface OnboardingPaywallPanelProps {
|
|
|
300
331
|
|
|
301
332
|
/** Link for privacy policy action. */
|
|
302
333
|
onPrivacy?: { text?: string; onPress: () => void };
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* SKUs for In-App Purchases (Subscriptions).
|
|
337
|
+
* If provided, the component will attempt to fetch product details from the store
|
|
338
|
+
* using react-native-iap and handle purchases.
|
|
339
|
+
*/
|
|
340
|
+
subscriptionSkus?: PlatformSku;
|
|
303
341
|
}
|
|
304
342
|
|
|
305
343
|
type OnboardingPaywallPanelConfig =
|
|
306
|
-
|
|
|
344
|
+
| OnboardingPaywallPanelProps
|
|
307
345
|
| (({
|
|
308
346
|
onPressContinue,
|
|
309
347
|
}: {
|