react-native-iap 9.0.2 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/amazon/java/com/dooboolab/RNIap/RNIapAmazonModule.kt +6 -2
- package/lib/commonjs/eventEmitter.js +54 -0
- package/lib/commonjs/eventEmitter.js.map +1 -0
- package/lib/commonjs/hooks/useIAP.js +33 -15
- package/lib/commonjs/hooks/useIAP.js.map +1 -1
- package/lib/commonjs/hooks/withIAPContext.js +9 -7
- package/lib/commonjs/hooks/withIAPContext.js.map +1 -1
- package/lib/commonjs/iap.js +131 -197
- package/lib/commonjs/iap.js.map +1 -1
- package/lib/commonjs/index.js +28 -15
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/internal/enhancedFetch.js +30 -0
- package/lib/commonjs/internal/enhancedFetch.js.map +1 -0
- package/lib/commonjs/internal/fillProductsWithAdditionalData.js +47 -0
- package/lib/commonjs/internal/fillProductsWithAdditionalData.js.map +1 -0
- package/lib/commonjs/internal/index.js +45 -0
- package/lib/commonjs/internal/index.js.map +1 -0
- package/lib/commonjs/internal/platform.js +19 -0
- package/lib/commonjs/internal/platform.js.map +1 -0
- package/lib/commonjs/purchaseError.js +47 -0
- package/lib/commonjs/purchaseError.js.map +1 -0
- package/lib/commonjs/types/index.js +1 -23
- package/lib/commonjs/types/index.js.map +1 -1
- package/lib/module/eventEmitter.js +36 -0
- package/lib/module/eventEmitter.js.map +1 -0
- package/lib/module/hooks/useIAP.js +34 -16
- package/lib/module/hooks/useIAP.js.map +1 -1
- package/lib/module/hooks/withIAPContext.js +6 -5
- package/lib/module/hooks/withIAPContext.js.map +1 -1
- package/lib/module/iap.js +123 -186
- package/lib/module/iap.js.map +1 -1
- package/lib/module/index.js +2 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/internal/enhancedFetch.js +21 -0
- package/lib/module/internal/enhancedFetch.js.map +1 -0
- package/lib/module/internal/fillProductsWithAdditionalData.js +37 -0
- package/lib/module/internal/fillProductsWithAdditionalData.js.map +1 -0
- package/lib/module/internal/index.js +4 -0
- package/lib/module/internal/index.js.map +1 -0
- package/lib/module/internal/platform.js +8 -0
- package/lib/module/internal/platform.js.map +1 -0
- package/lib/module/purchaseError.js +38 -0
- package/lib/module/purchaseError.js.map +1 -0
- package/lib/module/types/index.js +0 -21
- package/lib/module/types/index.js.map +1 -1
- package/lib/typescript/eventEmitter.d.ts +17 -0
- package/lib/typescript/hooks/useIAP.d.ts +15 -9
- package/lib/typescript/hooks/withIAPContext.d.ts +4 -3
- package/lib/typescript/iap.d.ts +80 -41
- package/lib/typescript/index.d.ts +2 -2
- package/lib/typescript/internal/enhancedFetch.d.ts +6 -0
- package/lib/typescript/internal/fillProductsWithAdditionalData.d.ts +5 -0
- package/lib/typescript/internal/index.d.ts +3 -0
- package/lib/typescript/internal/platform.d.ts +3 -0
- package/lib/typescript/purchaseError.d.ts +26 -0
- package/lib/typescript/types/index.d.ts +1 -48
- package/package.json +1 -1
- package/src/eventEmitter.ts +49 -0
- package/src/hooks/useIAP.ts +38 -35
- package/src/hooks/withIAPContext.tsx +12 -13
- package/src/iap.ts +165 -242
- package/src/index.ts +2 -4
- package/src/internal/enhancedFetch.ts +25 -0
- package/src/internal/fillProductsWithAdditionalData.ts +43 -0
- package/src/internal/index.ts +3 -0
- package/src/internal/platform.ts +7 -0
- package/src/purchaseError.ts +35 -0
- package/src/types/index.ts +1 -59
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useCallback } from 'react';
|
|
2
|
-
import { finishTransaction as iapFinishTransaction, getAvailablePurchases as iapGetAvailablePurchases, getProducts as iapGetProducts, getPurchaseHistory
|
|
2
|
+
import { finishTransaction as iapFinishTransaction, getAvailablePurchases as iapGetAvailablePurchases, getProducts as iapGetProducts, getPurchaseHistory as iapGetPurchaseHistory, getSubscriptions as iapGetSubscriptions } from '../iap';
|
|
3
3
|
import { useIAPContext } from './withIAPContext';
|
|
4
4
|
export function useIAP() {
|
|
5
5
|
const {
|
|
@@ -7,7 +7,7 @@ export function useIAP() {
|
|
|
7
7
|
products,
|
|
8
8
|
promotedProductsIOS,
|
|
9
9
|
subscriptions,
|
|
10
|
-
|
|
10
|
+
purchaseHistory,
|
|
11
11
|
availablePurchases,
|
|
12
12
|
currentPurchase,
|
|
13
13
|
currentPurchaseError,
|
|
@@ -15,25 +15,45 @@ export function useIAP() {
|
|
|
15
15
|
setProducts,
|
|
16
16
|
setSubscriptions,
|
|
17
17
|
setAvailablePurchases,
|
|
18
|
-
|
|
18
|
+
setPurchaseHistory,
|
|
19
19
|
setCurrentPurchase,
|
|
20
20
|
setCurrentPurchaseError
|
|
21
21
|
} = useIAPContext();
|
|
22
|
-
const getProducts = useCallback(async
|
|
23
|
-
|
|
22
|
+
const getProducts = useCallback(async _ref => {
|
|
23
|
+
let {
|
|
24
|
+
skus
|
|
25
|
+
} = _ref;
|
|
26
|
+
setProducts(await iapGetProducts({
|
|
27
|
+
skus
|
|
28
|
+
}));
|
|
24
29
|
}, [setProducts]);
|
|
25
|
-
const getSubscriptions = useCallback(async
|
|
26
|
-
|
|
30
|
+
const getSubscriptions = useCallback(async _ref2 => {
|
|
31
|
+
let {
|
|
32
|
+
skus
|
|
33
|
+
} = _ref2;
|
|
34
|
+
setSubscriptions(await iapGetSubscriptions({
|
|
35
|
+
skus
|
|
36
|
+
}));
|
|
27
37
|
}, [setSubscriptions]);
|
|
28
38
|
const getAvailablePurchases = useCallback(async () => {
|
|
29
39
|
setAvailablePurchases(await iapGetAvailablePurchases());
|
|
30
40
|
}, [setAvailablePurchases]);
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
}, [
|
|
34
|
-
const finishTransaction = useCallback(async
|
|
41
|
+
const getPurchaseHistory = useCallback(async () => {
|
|
42
|
+
setPurchaseHistory(await iapGetPurchaseHistory());
|
|
43
|
+
}, [setPurchaseHistory]);
|
|
44
|
+
const finishTransaction = useCallback(async _ref3 => {
|
|
45
|
+
let {
|
|
46
|
+
purchase,
|
|
47
|
+
isConsumable,
|
|
48
|
+
developerPayloadAndroid
|
|
49
|
+
} = _ref3;
|
|
50
|
+
|
|
35
51
|
try {
|
|
36
|
-
return await iapFinishTransaction(
|
|
52
|
+
return await iapFinishTransaction({
|
|
53
|
+
purchase,
|
|
54
|
+
isConsumable,
|
|
55
|
+
developerPayloadAndroid
|
|
56
|
+
});
|
|
37
57
|
} catch (err) {
|
|
38
58
|
throw err;
|
|
39
59
|
} finally {
|
|
@@ -51,7 +71,7 @@ export function useIAP() {
|
|
|
51
71
|
products,
|
|
52
72
|
promotedProductsIOS,
|
|
53
73
|
subscriptions,
|
|
54
|
-
|
|
74
|
+
purchaseHistory,
|
|
55
75
|
availablePurchases,
|
|
56
76
|
currentPurchase,
|
|
57
77
|
currentPurchaseError,
|
|
@@ -60,9 +80,7 @@ export function useIAP() {
|
|
|
60
80
|
getProducts,
|
|
61
81
|
getSubscriptions,
|
|
62
82
|
getAvailablePurchases,
|
|
63
|
-
|
|
64
|
-
requestPurchase: iapRequestPurchase,
|
|
65
|
-
requestSubscription: iapRequestSubscription
|
|
83
|
+
getPurchaseHistory
|
|
66
84
|
};
|
|
67
85
|
}
|
|
68
86
|
//# sourceMappingURL=useIAP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","finishTransaction","iapFinishTransaction","getAvailablePurchases","iapGetAvailablePurchases","getProducts","iapGetProducts","getPurchaseHistory","
|
|
1
|
+
{"version":3,"names":["useCallback","finishTransaction","iapFinishTransaction","getAvailablePurchases","iapGetAvailablePurchases","getProducts","iapGetProducts","getPurchaseHistory","iapGetPurchaseHistory","getSubscriptions","iapGetSubscriptions","useIAPContext","useIAP","connected","products","promotedProductsIOS","subscriptions","purchaseHistory","availablePurchases","currentPurchase","currentPurchaseError","initConnectionError","setProducts","setSubscriptions","setAvailablePurchases","setPurchaseHistory","setCurrentPurchase","setCurrentPurchaseError","skus","purchase","isConsumable","developerPayloadAndroid","err","productId","undefined"],"sources":["useIAP.ts"],"sourcesContent":["import {useCallback} from 'react';\n\nimport {\n finishTransaction as iapFinishTransaction,\n getAvailablePurchases as iapGetAvailablePurchases,\n getProducts as iapGetProducts,\n getPurchaseHistory as iapGetPurchaseHistory,\n getSubscriptions as iapGetSubscriptions,\n} from '../iap';\nimport type {PurchaseError} from '../purchaseError';\nimport type {Product, Purchase, Subscription} from '../types';\n\nimport {useIAPContext} from './withIAPContext';\n\ntype IAP_STATUS = {\n connected: boolean;\n products: Product[];\n promotedProductsIOS: Product[];\n subscriptions: Subscription[];\n purchaseHistory: Purchase[];\n availablePurchases: Purchase[];\n currentPurchase?: Purchase;\n currentPurchaseError?: PurchaseError;\n initConnectionError?: Error;\n finishTransaction: ({\n purchase,\n isConsumable,\n developerPayloadAndroid,\n }: {\n purchase: Purchase;\n isConsumable?: boolean;\n developerPayloadAndroid?: string;\n }) => Promise<string | void>;\n getAvailablePurchases: () => Promise<void>;\n getPurchaseHistory: () => Promise<void>;\n getProducts: ({skus}: {skus: string[]}) => Promise<void>;\n getSubscriptions: ({skus}: {skus: string[]}) => Promise<void>;\n};\n\nexport function useIAP(): IAP_STATUS {\n const {\n connected,\n products,\n promotedProductsIOS,\n subscriptions,\n purchaseHistory,\n availablePurchases,\n currentPurchase,\n currentPurchaseError,\n initConnectionError,\n setProducts,\n setSubscriptions,\n setAvailablePurchases,\n setPurchaseHistory,\n setCurrentPurchase,\n setCurrentPurchaseError,\n } = useIAPContext();\n\n const getProducts = useCallback(\n async ({skus}: {skus: string[]}): Promise<void> => {\n setProducts(await iapGetProducts({skus}));\n },\n [setProducts],\n );\n\n const getSubscriptions = useCallback(\n async ({skus}: {skus: string[]}): Promise<void> => {\n setSubscriptions(await iapGetSubscriptions({skus}));\n },\n [setSubscriptions],\n );\n\n const getAvailablePurchases = useCallback(async (): Promise<void> => {\n setAvailablePurchases(await iapGetAvailablePurchases());\n }, [setAvailablePurchases]);\n\n const getPurchaseHistory = useCallback(async (): Promise<void> => {\n setPurchaseHistory(await iapGetPurchaseHistory());\n }, [setPurchaseHistory]);\n\n const finishTransaction = useCallback(\n async ({\n purchase,\n isConsumable,\n developerPayloadAndroid,\n }: {\n purchase: Purchase;\n isConsumable?: boolean;\n developerPayloadAndroid?: string;\n }): Promise<string | void> => {\n try {\n return await iapFinishTransaction({\n purchase,\n isConsumable,\n developerPayloadAndroid,\n });\n } catch (err) {\n throw err;\n } finally {\n if (purchase.productId === currentPurchase?.productId) {\n setCurrentPurchase(undefined);\n }\n\n if (purchase.productId === currentPurchaseError?.productId) {\n setCurrentPurchaseError(undefined);\n }\n }\n },\n [\n currentPurchase?.productId,\n currentPurchaseError?.productId,\n setCurrentPurchase,\n setCurrentPurchaseError,\n ],\n );\n\n return {\n connected,\n products,\n promotedProductsIOS,\n subscriptions,\n purchaseHistory,\n availablePurchases,\n currentPurchase,\n currentPurchaseError,\n initConnectionError,\n finishTransaction,\n getProducts,\n getSubscriptions,\n getAvailablePurchases,\n getPurchaseHistory,\n };\n}\n"],"mappings":"AAAA,SAAQA,WAAR,QAA0B,OAA1B;AAEA,SACEC,iBAAiB,IAAIC,oBADvB,EAEEC,qBAAqB,IAAIC,wBAF3B,EAGEC,WAAW,IAAIC,cAHjB,EAIEC,kBAAkB,IAAIC,qBAJxB,EAKEC,gBAAgB,IAAIC,mBALtB,QAMO,QANP;AAUA,SAAQC,aAAR,QAA4B,kBAA5B;AA2BA,OAAO,SAASC,MAAT,GAA8B;EACnC,MAAM;IACJC,SADI;IAEJC,QAFI;IAGJC,mBAHI;IAIJC,aAJI;IAKJC,eALI;IAMJC,kBANI;IAOJC,eAPI;IAQJC,oBARI;IASJC,mBATI;IAUJC,WAVI;IAWJC,gBAXI;IAYJC,qBAZI;IAaJC,kBAbI;IAcJC,kBAdI;IAeJC;EAfI,IAgBFhB,aAAa,EAhBjB;EAkBA,MAAMN,WAAW,GAAGL,WAAW,CAC7B,cAAmD;IAAA,IAA5C;MAAC4B;IAAD,CAA4C;IACjDN,WAAW,CAAC,MAAMhB,cAAc,CAAC;MAACsB;IAAD,CAAD,CAArB,CAAX;EACD,CAH4B,EAI7B,CAACN,WAAD,CAJ6B,CAA/B;EAOA,MAAMb,gBAAgB,GAAGT,WAAW,CAClC,eAAmD;IAAA,IAA5C;MAAC4B;IAAD,CAA4C;IACjDL,gBAAgB,CAAC,MAAMb,mBAAmB,CAAC;MAACkB;IAAD,CAAD,CAA1B,CAAhB;EACD,CAHiC,EAIlC,CAACL,gBAAD,CAJkC,CAApC;EAOA,MAAMpB,qBAAqB,GAAGH,WAAW,CAAC,YAA2B;IACnEwB,qBAAqB,CAAC,MAAMpB,wBAAwB,EAA/B,CAArB;EACD,CAFwC,EAEtC,CAACoB,qBAAD,CAFsC,CAAzC;EAIA,MAAMjB,kBAAkB,GAAGP,WAAW,CAAC,YAA2B;IAChEyB,kBAAkB,CAAC,MAAMjB,qBAAqB,EAA5B,CAAlB;EACD,CAFqC,EAEnC,CAACiB,kBAAD,CAFmC,CAAtC;EAIA,MAAMxB,iBAAiB,GAAGD,WAAW,CACnC,eAQ8B;IAAA,IARvB;MACL6B,QADK;MAELC,YAFK;MAGLC;IAHK,CAQuB;;IAC5B,IAAI;MACF,OAAO,MAAM7B,oBAAoB,CAAC;QAChC2B,QADgC;QAEhCC,YAFgC;QAGhCC;MAHgC,CAAD,CAAjC;IAKD,CAND,CAME,OAAOC,GAAP,EAAY;MACZ,MAAMA,GAAN;IACD,CARD,SAQU;MACR,IAAIH,QAAQ,CAACI,SAAT,MAAuBd,eAAvB,aAAuBA,eAAvB,uBAAuBA,eAAe,CAAEc,SAAxC,CAAJ,EAAuD;QACrDP,kBAAkB,CAACQ,SAAD,CAAlB;MACD;;MAED,IAAIL,QAAQ,CAACI,SAAT,MAAuBb,oBAAvB,aAAuBA,oBAAvB,uBAAuBA,oBAAoB,CAAEa,SAA7C,CAAJ,EAA4D;QAC1DN,uBAAuB,CAACO,SAAD,CAAvB;MACD;IACF;EACF,CA3BkC,EA4BnC,CACEf,eADF,aACEA,eADF,uBACEA,eAAe,CAAEc,SADnB,EAEEb,oBAFF,aAEEA,oBAFF,uBAEEA,oBAAoB,CAAEa,SAFxB,EAGEP,kBAHF,EAIEC,uBAJF,CA5BmC,CAArC;EAoCA,OAAO;IACLd,SADK;IAELC,QAFK;IAGLC,mBAHK;IAILC,aAJK;IAKLC,eALK;IAMLC,kBANK;IAOLC,eAPK;IAQLC,oBARK;IASLC,mBATK;IAULpB,iBAVK;IAWLI,WAXK;IAYLI,gBAZK;IAaLN,qBAbK;IAcLI;EAdK,CAAP;AAgBD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { useContext, useEffect, useMemo, useState } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { promotedProductListener, purchaseErrorListener, purchaseUpdatedListener } from '../eventEmitter';
|
|
3
|
+
import { getPromotedProductIOS, initConnection } from '../iap';
|
|
3
4
|
// @ts-ignore
|
|
4
5
|
const IAPContext = /*#__PURE__*/React.createContext(null);
|
|
5
6
|
export function useIAPContext() {
|
|
@@ -17,7 +18,7 @@ export function withIAPContext(Component) {
|
|
|
17
18
|
const [products, setProducts] = useState([]);
|
|
18
19
|
const [promotedProductsIOS, setPromotedProductsIOS] = useState([]);
|
|
19
20
|
const [subscriptions, setSubscriptions] = useState([]);
|
|
20
|
-
const [
|
|
21
|
+
const [purchaseHistory, setPurchaseHistory] = useState([]);
|
|
21
22
|
const [availablePurchases, setAvailablePurchases] = useState([]);
|
|
22
23
|
const [currentPurchase, setCurrentPurchase] = useState();
|
|
23
24
|
const [currentPurchaseError, setCurrentPurchaseError] = useState();
|
|
@@ -27,18 +28,18 @@ export function withIAPContext(Component) {
|
|
|
27
28
|
products,
|
|
28
29
|
subscriptions,
|
|
29
30
|
promotedProductsIOS,
|
|
30
|
-
|
|
31
|
+
purchaseHistory,
|
|
31
32
|
availablePurchases,
|
|
32
33
|
currentPurchase,
|
|
33
34
|
currentPurchaseError,
|
|
34
35
|
initConnectionError,
|
|
35
36
|
setProducts,
|
|
36
37
|
setSubscriptions,
|
|
37
|
-
|
|
38
|
+
setPurchaseHistory,
|
|
38
39
|
setAvailablePurchases,
|
|
39
40
|
setCurrentPurchase,
|
|
40
41
|
setCurrentPurchaseError
|
|
41
|
-
}), [connected, products, subscriptions, promotedProductsIOS,
|
|
42
|
+
}), [connected, products, subscriptions, promotedProductsIOS, purchaseHistory, availablePurchases, currentPurchase, currentPurchaseError, initConnectionError, setProducts, setSubscriptions, setPurchaseHistory, setAvailablePurchases, setCurrentPurchase, setCurrentPurchaseError]);
|
|
42
43
|
useEffect(() => {
|
|
43
44
|
initConnection().then(value => {
|
|
44
45
|
setInitConnectionError(undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useContext","useEffect","useMemo","useState","
|
|
1
|
+
{"version":3,"names":["React","useContext","useEffect","useMemo","useState","promotedProductListener","purchaseErrorListener","purchaseUpdatedListener","getPromotedProductIOS","initConnection","IAPContext","createContext","useIAPContext","ctx","Error","withIAPContext","Component","WrapperComponent","props","connected","setConnected","products","setProducts","promotedProductsIOS","setPromotedProductsIOS","subscriptions","setSubscriptions","purchaseHistory","setPurchaseHistory","availablePurchases","setAvailablePurchases","currentPurchase","setCurrentPurchase","currentPurchaseError","setCurrentPurchaseError","initConnectionError","setInitConnectionError","context","then","value","undefined","catch","purchaseUpdateSubscription","purchase","purchaseErrorSubscription","error","promotedProductSubscription","product","prevProducts","remove"],"sources":["withIAPContext.tsx"],"sourcesContent":["import React, {useContext, useEffect, useMemo, useState} from 'react';\n\nimport {\n promotedProductListener,\n purchaseErrorListener,\n purchaseUpdatedListener,\n} from '../eventEmitter';\nimport {getPromotedProductIOS, initConnection} from '../iap';\nimport type {PurchaseError} from '../purchaseError';\nimport type {\n Product,\n ProductPurchase,\n Purchase,\n Subscription,\n SubscriptionPurchase,\n} from '../types';\n\ntype IAPContextType = {\n connected: boolean;\n products: Product[];\n promotedProductsIOS: Product[];\n subscriptions: Subscription[];\n purchaseHistory: Purchase[];\n availablePurchases: Purchase[];\n currentPurchase?: Purchase;\n currentPurchaseError?: PurchaseError;\n initConnectionError?: Error;\n setProducts: (products: Product[]) => void;\n setSubscriptions: (subscriptions: Subscription[]) => void;\n setPurchaseHistory: (purchaseHistory: Purchase[]) => void;\n setAvailablePurchases: (availablePurchases: Purchase[]) => void;\n setCurrentPurchase: (currentPurchase: Purchase | undefined) => void;\n setCurrentPurchaseError: (\n currentPurchaseError: PurchaseError | undefined,\n ) => void;\n};\n\n// @ts-ignore\nconst IAPContext = React.createContext<IAPContextType>(null);\n\nexport function useIAPContext(): IAPContextType {\n const ctx = useContext(IAPContext);\n\n if (!ctx) {\n throw new Error('You need wrap your app with withIAPContext HOC');\n }\n\n return ctx;\n}\n\nexport function withIAPContext<T>(Component: React.ComponentType<T>) {\n return function WrapperComponent(props: T) {\n const [connected, setConnected] = useState(false);\n const [products, setProducts] = useState<Product[]>([]);\n\n const [promotedProductsIOS, setPromotedProductsIOS] = useState<Product[]>(\n [],\n );\n const [subscriptions, setSubscriptions] = useState<Subscription[]>([]);\n const [purchaseHistory, setPurchaseHistory] = useState<Purchase[]>([]);\n\n const [availablePurchases, setAvailablePurchases] = useState<Purchase[]>(\n [],\n );\n const [currentPurchase, setCurrentPurchase] = useState<Purchase>();\n\n const [currentPurchaseError, setCurrentPurchaseError] =\n useState<PurchaseError>();\n\n const [initConnectionError, setInitConnectionError] = useState<Error>();\n\n const context = useMemo(\n () => ({\n connected,\n products,\n subscriptions,\n promotedProductsIOS,\n purchaseHistory,\n availablePurchases,\n currentPurchase,\n currentPurchaseError,\n initConnectionError,\n setProducts,\n setSubscriptions,\n setPurchaseHistory,\n setAvailablePurchases,\n setCurrentPurchase,\n setCurrentPurchaseError,\n }),\n [\n connected,\n products,\n subscriptions,\n promotedProductsIOS,\n purchaseHistory,\n availablePurchases,\n currentPurchase,\n currentPurchaseError,\n initConnectionError,\n setProducts,\n setSubscriptions,\n setPurchaseHistory,\n setAvailablePurchases,\n setCurrentPurchase,\n setCurrentPurchaseError,\n ],\n );\n\n useEffect(() => {\n initConnection()\n .then((value) => {\n setInitConnectionError(undefined);\n setConnected(value);\n })\n .catch(setInitConnectionError);\n }, []);\n\n useEffect(() => {\n if (!connected) {\n return;\n }\n\n const purchaseUpdateSubscription = purchaseUpdatedListener(\n async (purchase: ProductPurchase | SubscriptionPurchase) => {\n setCurrentPurchaseError(undefined);\n setCurrentPurchase(purchase);\n },\n );\n\n const purchaseErrorSubscription = purchaseErrorListener(\n (error: PurchaseError) => {\n setCurrentPurchase(undefined);\n setCurrentPurchaseError(error);\n },\n );\n\n const promotedProductSubscription = promotedProductListener(async () => {\n const product = await getPromotedProductIOS();\n\n setPromotedProductsIOS((prevProducts) => [\n ...prevProducts,\n ...(product ? [product] : []),\n ]);\n });\n\n return () => {\n purchaseUpdateSubscription.remove();\n purchaseErrorSubscription.remove();\n promotedProductSubscription?.remove();\n };\n }, [connected]);\n\n return (\n <IAPContext.Provider value={context}>\n <Component {...props} />\n </IAPContext.Provider>\n );\n };\n}\n"],"mappings":"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"}
|