react-native-iap 9.0.4 → 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/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 +127 -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 +118 -185
- 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 +151 -232
- 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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"}
|