Skip to content

Commit 8ee984f

Browse files
committed
chore: migrate to [email protected]
1 parent 54e6800 commit 8ee984f

File tree

6 files changed

+135
-118
lines changed

6 files changed

+135
-118
lines changed

app.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ export default ({config}: ConfigContext): ExpoConfig => ({
5858
],
5959
},
6060
],
61+
'expo-iap',
6162
[
6263
'expo-notifications',
6364
{

app/(home)/settings/points.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import {
2626
} from '../../../src/apis/purchaseQueries';
2727
import {useRecoilValue} from 'recoil';
2828
import {authRecoilState} from '../../../src/recoil/atoms';
29-
import {Button, Icon, Typography, useDooboo} from 'dooboo-ui';
29+
import {Button, Icon, Typography, useCPK} from 'cpk-ui';
3030
import {showAlert} from '../../../src/utils/alert';
3131

3232
const productSkus = [
@@ -54,7 +54,7 @@ export default function App() {
5454
const [products, setProducts] = useState<Product[]>([]);
5555
const [userPoints, setUserPoints] = useState(0);
5656
const {authId} = useRecoilValue(authRecoilState);
57-
const {theme} = useDooboo();
57+
const {theme} = useCPK();
5858

5959
useEffect(() => {
6060
const getUserPoints = async () => {
@@ -81,7 +81,7 @@ export default function App() {
8181
}
8282

8383
if (isProductIos(a) && isProductIos(b)) {
84-
return a.price - b.price;
84+
return a.price || 0 - (b.price || 0);
8585
}
8686

8787
return 0;
@@ -112,8 +112,8 @@ export default function App() {
112112
if (receipt) {
113113
const result = await fetchCreatePurchase({
114114
authId: authId!,
115-
points: parseInt(purchase?.productId.split('.').pop() || '0'),
116-
productId: purchase?.productId || '',
115+
points: parseInt(purchase?.id.split('.').pop() || '0'),
116+
productId: purchase?.id || '',
117117
receipt,
118118
});
119119

@@ -199,7 +199,7 @@ export default function App() {
199199
<Button
200200
text={item.oneTimePurchaseOfferDetails?.formattedPrice}
201201
onPress={() => {
202-
requestPurchase({skus: [item.productId]});
202+
requestPurchase({skus: [item.id]});
203203
}}
204204
/>
205205
</View>

app/(home)/settings/sponsors.tsx

Lines changed: 45 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,6 @@ import {
1212
requestPurchase,
1313
requestSubscription,
1414
} from 'expo-iap';
15-
import type {
16-
Product,
17-
ProductPurchase,
18-
PurchaseError,
19-
SubscriptionProduct,
20-
} from 'expo-iap/build/ExpoIap.types';
21-
import type {RequestSubscriptionAndroidProps} from 'expo-iap/build/types/ExpoIapAndroid.types';
2215
import {Stack} from 'expo-router';
2316
import {useEffect, useState} from 'react';
2417
import {
@@ -33,6 +26,14 @@ import {
3326
View,
3427
} from 'react-native';
3528
import {t} from '../../../src/STRINGS';
29+
import {
30+
Product,
31+
ProductPurchase,
32+
PurchaseError,
33+
SubscriptionProduct,
34+
} from 'expo-iap/src/ExpoIap.types';
35+
import {RequestSubscriptionAndroidProps} from 'expo-iap/src/types/ExpoIapAndroid.types';
36+
import {ProductIos} from 'expo-iap/src/types/ExpoIapIos.types';
3637

3738
const productSkus = [
3839
'cpk.points.200',
@@ -53,7 +54,8 @@ const operations = [
5354
'getProducts',
5455
'getSubscriptions',
5556
'endConnection',
56-
];
57+
] as const;
58+
5759
type Operation = (typeof operations)[number];
5860

5961
export default function App() {
@@ -70,23 +72,24 @@ export default function App() {
7072
case 'endConnection':
7173
if (await endConnection()) {
7274
setProducts([]);
75+
setSubscriptions([]);
7376
setIsConnected(false);
7477
}
7578
break;
7679

7780
case 'getProducts':
7881
try {
79-
const products = await getProducts(productSkus);
80-
setProducts(products);
82+
const fetchedProducts = await getProducts(productSkus);
83+
setProducts(fetchedProducts);
8184
} catch (error) {
8285
console.error(error);
8386
}
8487
break;
8588

8689
case 'getSubscriptions':
8790
try {
88-
const subscriptions = await getSubscriptions(subscriptionSkus);
89-
setSubscriptions(subscriptions);
91+
const fetchedSubscriptions = await getSubscriptions(subscriptionSkus);
92+
setSubscriptions(fetchedSubscriptions);
9093
} catch (error) {
9194
console.error(error);
9295
}
@@ -143,52 +146,59 @@ export default function App() {
143146
) : (
144147
<View style={{gap: 12}}>
145148
<Text style={{fontSize: 20}}>Products</Text>
146-
{products.map((item) => {
147-
if (isProductAndroid(item)) {
149+
{products.map((product) => {
150+
if (isProductIos(product)) {
151+
const iosProduct: ProductIos = product;
152+
148153
return (
149-
<View key={item.title} style={{gap: 12}}>
154+
<View key={iosProduct.id} style={{gap: 12}}>
150155
<Text>
151-
{item.title} -{' '}
152-
{item.oneTimePurchaseOfferDetails?.formattedPrice}
156+
{iosProduct.displayName} - {iosProduct.displayPrice}
153157
</Text>
154158
<Button
155159
title="Buy"
156160
onPress={() => {
157161
requestPurchase({
158-
skus: [item.id],
162+
sku: product.id,
159163
});
160164
}}
161165
/>
162166
</View>
163167
);
164168
}
165169

166-
if (isProductIos(item)) {
170+
if (isProductAndroid(product)) {
167171
return (
168-
<View key={item.id} style={{gap: 12}}>
172+
<View key={product.title} style={{gap: 12}}>
169173
<Text>
170-
{item.displayName} - {item.displayPrice}
174+
{product.title} -{' '}
175+
{product.oneTimePurchaseOfferDetails?.formattedPrice}
171176
</Text>
172177
<Button
173178
title="Buy"
174179
onPress={() => {
175180
requestPurchase({
176-
sku: item.id,
181+
skus: [product.id],
177182
});
178183
}}
179184
/>
180185
</View>
181186
);
182187
}
188+
189+
return null;
183190
})}
184191

185192
<Text style={{fontSize: 20}}>Subscriptions</Text>
186-
{subscriptions.map((item) => {
187-
if (isSubscriptionProductAndroid(item)) {
188-
return item.subscriptionOfferDetails?.map((offer) => (
189-
<View key={offer.offerId} style={{gap: 12}}>
193+
{subscriptions.map((subscription) => {
194+
if (isSubscriptionProductAndroid(subscription)) {
195+
return subscription.subscriptionOfferDetails?.map((offer) => (
196+
<View
197+
key={offer.offerId ?? subscription.id}
198+
style={{gap: 12}}
199+
>
190200
<Text>
191-
{item.title} -{' '}
201+
{subscription.title} -{' '}
192202
{offer.pricingPhases.pricingPhaseList
193203
.map((ppl) => ppl.billingPeriod)
194204
.join(',')}
@@ -197,11 +207,11 @@ export default function App() {
197207
title="Subscribe"
198208
onPress={() => {
199209
requestSubscription({
200-
skus: [item.id],
210+
skus: [subscription.id],
201211
...(offer.offerToken && {
202212
subscriptionOffers: [
203213
{
204-
sku: item.id,
214+
sku: subscription.id,
205215
offerToken: offer.offerToken,
206216
},
207217
],
@@ -213,21 +223,23 @@ export default function App() {
213223
));
214224
}
215225

216-
if (isSubscriptionProductIos(item)) {
226+
if (isSubscriptionProductIos(subscription)) {
217227
return (
218-
<View key={item.id} style={{gap: 12}}>
228+
<View key={subscription.id} style={{gap: 12}}>
219229
<Text>
220-
{item.displayName} - {item.displayPrice}
230+
{subscription.displayName} - {subscription.displayPrice}
221231
</Text>
222232
<Button
223233
title="Subscribe"
224234
onPress={() => {
225-
requestSubscription({sku: item.id});
235+
requestSubscription({sku: subscription.id});
226236
}}
227237
/>
228238
</View>
229239
);
230240
}
241+
242+
return null;
231243
})}
232244
</View>
233245
)}
@@ -252,7 +264,6 @@ const styles = StyleSheet.create({
252264
},
253265
buttonsWrapper: {
254266
padding: 24,
255-
256267
gap: 8,
257268
},
258269
buttonView: {

bun.lockb

445 Bytes
Binary file not shown.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@
6161
"expo-device": "~7.0.2",
6262
"expo-file-system": "~18.0.11",
6363
"expo-font": "~13.0.4",
64+
"expo-iap": "^2.2.0-rc.3",
6465
"expo-image": "~2.0.6",
65-
"expo-iap": "^2.1.0",
6666
"expo-image-picker": "~16.0.6",
6767
"expo-linear-gradient": "~14.0.2",
6868
"expo-linking": "~7.0.5",

0 commit comments

Comments
 (0)