@tryheliumai/paywall-sdk-react-native 0.1.15 → 0.1.18
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/ios/HeliumSwiftInterface.swift +8 -2
- package/ios/RCTHeliumBridge.m +4 -0
- package/lib/commonjs/native-interface.js +34 -14
- package/lib/commonjs/native-interface.js.map +1 -1
- package/lib/module/native-interface.js +32 -12
- package/lib/module/native-interface.js.map +1 -1
- package/lib/typescript/commonjs/src/native-interface.d.ts +5 -1
- package/lib/typescript/commonjs/src/native-interface.d.ts.map +1 -1
- package/lib/typescript/module/src/native-interface.d.ts +5 -1
- package/lib/typescript/module/src/native-interface.d.ts.map +1 -1
- package/package.json +5 -2
- package/src/native-interface.tsx +36 -12
|
@@ -188,7 +188,7 @@ class HeliumBridge: RCTEventEmitter {
|
|
|
188
188
|
let triggers = config["triggers"] as? [String]
|
|
189
189
|
let customUserId = config["customUserId"] as? String
|
|
190
190
|
let customAPIEndpoint = config["customAPIEndpoint"] as? String
|
|
191
|
-
let customUserTraits = config["customUserTraits"] as? [String:
|
|
191
|
+
let customUserTraits = config["customUserTraits"] as? [String: Any]
|
|
192
192
|
let fallbackPaywallPerTriggerTags = config["fallbackPaywallPerTrigger"] as? [String: NSNumber]
|
|
193
193
|
|
|
194
194
|
self.bridgingDelegate = BridgingPaywallDelegate(
|
|
@@ -253,7 +253,13 @@ class HeliumBridge: RCTEventEmitter {
|
|
|
253
253
|
public func handleRestoreResponse(_ response: NSDictionary) {
|
|
254
254
|
bridgingDelegate?.handleRestoreResponse(response)
|
|
255
255
|
}
|
|
256
|
-
|
|
256
|
+
|
|
257
|
+
@objc
|
|
258
|
+
public func getFetchedTriggerNames(_ callback: RCTResponseSenderBlock) {
|
|
259
|
+
let triggerNames = HeliumFetchedConfigManager.shared.getFetchedTriggerNames();
|
|
260
|
+
callback([triggerNames])
|
|
261
|
+
}
|
|
262
|
+
|
|
257
263
|
@objc
|
|
258
264
|
public func upsellViewForTrigger(
|
|
259
265
|
_ trigger: String,
|
package/ios/RCTHeliumBridge.m
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.useHelium = exports.presentUpsell = exports.initialize = exports.hideUpsell = exports.UpsellView = exports.NativeHeliumUpsellView = exports.HeliumProvider = exports.HELIUM_CTA_NAMES = void 0;
|
|
6
|
+
exports.useHelium = exports.presentUpsell = exports.initialize = exports.hideUpsell = exports.getDownloadStatus = exports.UpsellView = exports.NativeHeliumUpsellView = exports.HeliumProvider = exports.HELIUM_CTA_NAMES = void 0;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -31,12 +31,20 @@ providerMountedPromise = new Promise(resolve => {
|
|
|
31
31
|
}
|
|
32
32
|
});
|
|
33
33
|
|
|
34
|
-
//
|
|
34
|
+
// Add module-level download status tracking
|
|
35
|
+
let globalDownloadStatus = 'notStarted';
|
|
36
|
+
const getDownloadStatus = () => globalDownloadStatus;
|
|
35
37
|
|
|
38
|
+
// Create a context for the download status
|
|
39
|
+
exports.getDownloadStatus = getDownloadStatus;
|
|
36
40
|
const HeliumContext = /*#__PURE__*/(0, _react.createContext)(undefined);
|
|
37
41
|
|
|
38
|
-
//
|
|
42
|
+
// Update the setter ref to also update global status
|
|
39
43
|
let setDownloadStatusRef = null;
|
|
44
|
+
const updateDownloadStatus = status => {
|
|
45
|
+
globalDownloadStatus = status;
|
|
46
|
+
setDownloadStatusRef?.(status);
|
|
47
|
+
};
|
|
40
48
|
|
|
41
49
|
// Hook to use the Helium context
|
|
42
50
|
const useHelium = () => {
|
|
@@ -104,17 +112,15 @@ const initialize = async (heliumCallbacks, config = {}) => {
|
|
|
104
112
|
}
|
|
105
113
|
|
|
106
114
|
// Update download status to inProgress
|
|
107
|
-
|
|
108
|
-
setDownloadStatusRef('inProgress');
|
|
109
|
-
}
|
|
115
|
+
updateDownloadStatus('inProgress');
|
|
110
116
|
|
|
111
117
|
// Set up event listeners
|
|
112
118
|
heliumEventEmitter.addListener('helium_paywall_event', event => {
|
|
113
119
|
// Handle download status events
|
|
114
|
-
if (event.type === 'paywallsDownloadSuccess'
|
|
115
|
-
|
|
116
|
-
} else if (event.type === 'paywallsDownloadError'
|
|
117
|
-
|
|
120
|
+
if (event.type === 'paywallsDownloadSuccess') {
|
|
121
|
+
updateDownloadStatus('success');
|
|
122
|
+
} else if (event.type === 'paywallsDownloadError') {
|
|
123
|
+
updateDownloadStatus('failed');
|
|
118
124
|
}
|
|
119
125
|
// Handle fallback view visibility
|
|
120
126
|
else if (event.type === 'paywallOpen' && event.paywallTemplateName === 'Fallback') {
|
|
@@ -164,16 +170,30 @@ const initialize = async (heliumCallbacks, config = {}) => {
|
|
|
164
170
|
triggers: config.triggers || [],
|
|
165
171
|
customUserId: config.customUserId || null,
|
|
166
172
|
customAPIEndpoint: config.customAPIEndpoint || null,
|
|
167
|
-
customUserTraits: config.customUserTraits
|
|
173
|
+
customUserTraits: config.customUserTraits == null ? {
|
|
168
174
|
"exampleUserTrait": "test_value"
|
|
169
|
-
}
|
|
175
|
+
} : config.customUserTraits
|
|
170
176
|
}, {});
|
|
171
177
|
};
|
|
172
178
|
|
|
173
179
|
// Update the other methods to be synchronous
|
|
174
180
|
exports.initialize = initialize;
|
|
175
|
-
const presentUpsell =
|
|
176
|
-
|
|
181
|
+
const presentUpsell = ({
|
|
182
|
+
triggerName,
|
|
183
|
+
onFallback
|
|
184
|
+
}) => {
|
|
185
|
+
const downloadStatus = getDownloadStatus();
|
|
186
|
+
HeliumBridge.getFetchedTriggerNames(triggerNames => {
|
|
187
|
+
if (!triggerNames.includes(triggerName) || downloadStatus !== 'success') {
|
|
188
|
+
onFallback?.();
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
try {
|
|
192
|
+
HeliumBridge.presentUpsell(triggerName);
|
|
193
|
+
} catch (error) {
|
|
194
|
+
onFallback?.();
|
|
195
|
+
}
|
|
196
|
+
});
|
|
177
197
|
};
|
|
178
198
|
exports.presentUpsell = presentUpsell;
|
|
179
199
|
const hideUpsell = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_react","_interopRequireWildcard","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","HeliumBridge","NativeModules","heliumEventEmitter","NativeEventEmitter","NativeHeliumUpsellView","exports","requireNativeComponent","isProviderMounted","providerMountedPromise","resolveProviderMounted","Promise","resolve","HeliumContext","createContext","undefined","setDownloadStatusRef","useHelium","context","useContext","Error","fallbackRef","createRef","FallbackViewComponent","HeliumProvider","children","fallbackView","FallbackView","downloadStatus","setDownloadStatus","useState","useEffect","jsxs","Provider","value","jsx","View","ref","collapsable","style","display","initialize","heliumCallbacks","config","viewTag","findNodeHandle","current","addListener","event","type","paywallTemplateName","setNativeProps","onHeliumPaywallEvent","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_react","_interopRequireWildcard","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","HeliumBridge","NativeModules","heliumEventEmitter","NativeEventEmitter","NativeHeliumUpsellView","exports","requireNativeComponent","isProviderMounted","providerMountedPromise","resolveProviderMounted","Promise","resolve","globalDownloadStatus","getDownloadStatus","HeliumContext","createContext","undefined","setDownloadStatusRef","updateDownloadStatus","status","useHelium","context","useContext","Error","fallbackRef","createRef","FallbackViewComponent","HeliumProvider","children","fallbackView","FallbackView","downloadStatus","setDownloadStatus","useState","useEffect","jsxs","Provider","value","jsx","View","ref","collapsable","style","display","initialize","heliumCallbacks","config","viewTag","findNodeHandle","current","addListener","event","type","paywallTemplateName","setNativeProps","onHeliumPaywallEvent","makePurchase","productId","handlePurchaseResponse","transactionId","success","restorePurchases","handleRestoreResponse","apiKey","fallbackPaywall","triggers","customUserId","customAPIEndpoint","customUserTraits","presentUpsell","triggerName","onFallback","getFetchedTriggerNames","triggerNames","includes","error","hideUpsell","UpsellView","trigger","fallbackViewProps","fallbackViewWrapperStyles","HELIUM_CTA_NAMES","SCHEDULE_CALL","SUBSCRIBE_BUTTON"],"sourceRoot":"../../src","sources":["native-interface.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,12 +25,20 @@ providerMountedPromise = new Promise(resolve => {
|
|
|
25
25
|
}
|
|
26
26
|
});
|
|
27
27
|
|
|
28
|
+
// Add module-level download status tracking
|
|
29
|
+
let globalDownloadStatus = 'notStarted';
|
|
30
|
+
export const getDownloadStatus = () => globalDownloadStatus;
|
|
31
|
+
|
|
28
32
|
// Create a context for the download status
|
|
29
33
|
|
|
30
34
|
const HeliumContext = /*#__PURE__*/createContext(undefined);
|
|
31
35
|
|
|
32
|
-
//
|
|
36
|
+
// Update the setter ref to also update global status
|
|
33
37
|
let setDownloadStatusRef = null;
|
|
38
|
+
const updateDownloadStatus = status => {
|
|
39
|
+
globalDownloadStatus = status;
|
|
40
|
+
setDownloadStatusRef?.(status);
|
|
41
|
+
};
|
|
34
42
|
|
|
35
43
|
// Hook to use the Helium context
|
|
36
44
|
export const useHelium = () => {
|
|
@@ -96,17 +104,15 @@ export const initialize = async (heliumCallbacks, config = {}) => {
|
|
|
96
104
|
}
|
|
97
105
|
|
|
98
106
|
// Update download status to inProgress
|
|
99
|
-
|
|
100
|
-
setDownloadStatusRef('inProgress');
|
|
101
|
-
}
|
|
107
|
+
updateDownloadStatus('inProgress');
|
|
102
108
|
|
|
103
109
|
// Set up event listeners
|
|
104
110
|
heliumEventEmitter.addListener('helium_paywall_event', event => {
|
|
105
111
|
// Handle download status events
|
|
106
|
-
if (event.type === 'paywallsDownloadSuccess'
|
|
107
|
-
|
|
108
|
-
} else if (event.type === 'paywallsDownloadError'
|
|
109
|
-
|
|
112
|
+
if (event.type === 'paywallsDownloadSuccess') {
|
|
113
|
+
updateDownloadStatus('success');
|
|
114
|
+
} else if (event.type === 'paywallsDownloadError') {
|
|
115
|
+
updateDownloadStatus('failed');
|
|
110
116
|
}
|
|
111
117
|
// Handle fallback view visibility
|
|
112
118
|
else if (event.type === 'paywallOpen' && event.paywallTemplateName === 'Fallback') {
|
|
@@ -156,15 +162,29 @@ export const initialize = async (heliumCallbacks, config = {}) => {
|
|
|
156
162
|
triggers: config.triggers || [],
|
|
157
163
|
customUserId: config.customUserId || null,
|
|
158
164
|
customAPIEndpoint: config.customAPIEndpoint || null,
|
|
159
|
-
customUserTraits: config.customUserTraits
|
|
165
|
+
customUserTraits: config.customUserTraits == null ? {
|
|
160
166
|
"exampleUserTrait": "test_value"
|
|
161
|
-
}
|
|
167
|
+
} : config.customUserTraits
|
|
162
168
|
}, {});
|
|
163
169
|
};
|
|
164
170
|
|
|
165
171
|
// Update the other methods to be synchronous
|
|
166
|
-
export const presentUpsell =
|
|
167
|
-
|
|
172
|
+
export const presentUpsell = ({
|
|
173
|
+
triggerName,
|
|
174
|
+
onFallback
|
|
175
|
+
}) => {
|
|
176
|
+
const downloadStatus = getDownloadStatus();
|
|
177
|
+
HeliumBridge.getFetchedTriggerNames(triggerNames => {
|
|
178
|
+
if (!triggerNames.includes(triggerName) || downloadStatus !== 'success') {
|
|
179
|
+
onFallback?.();
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
try {
|
|
183
|
+
HeliumBridge.presentUpsell(triggerName);
|
|
184
|
+
} catch (error) {
|
|
185
|
+
onFallback?.();
|
|
186
|
+
}
|
|
187
|
+
});
|
|
168
188
|
};
|
|
169
189
|
export const hideUpsell = () => {
|
|
170
190
|
HeliumBridge.hideUpsell();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["findNodeHandle","NativeModules","View","NativeEventEmitter","requireNativeComponent","React","createRef","useEffect","useState","createContext","useContext","jsx","_jsx","jsxs","_jsxs","HeliumBridge","heliumEventEmitter","NativeHeliumUpsellView","isProviderMounted","providerMountedPromise","resolveProviderMounted","Promise","resolve","HeliumContext","undefined","setDownloadStatusRef","useHelium","context","Error","fallbackRef","FallbackViewComponent","HeliumProvider","children","fallbackView","FallbackView","downloadStatus","setDownloadStatus","Provider","value","ref","collapsable","style","display","initialize","heliumCallbacks","config","viewTag","current","addListener","event","type","paywallTemplateName","setNativeProps","onHeliumPaywallEvent","
|
|
1
|
+
{"version":3,"names":["findNodeHandle","NativeModules","View","NativeEventEmitter","requireNativeComponent","React","createRef","useEffect","useState","createContext","useContext","jsx","_jsx","jsxs","_jsxs","HeliumBridge","heliumEventEmitter","NativeHeliumUpsellView","isProviderMounted","providerMountedPromise","resolveProviderMounted","Promise","resolve","globalDownloadStatus","getDownloadStatus","HeliumContext","undefined","setDownloadStatusRef","updateDownloadStatus","status","useHelium","context","Error","fallbackRef","FallbackViewComponent","HeliumProvider","children","fallbackView","FallbackView","downloadStatus","setDownloadStatus","Provider","value","ref","collapsable","style","display","initialize","heliumCallbacks","config","viewTag","current","addListener","event","type","paywallTemplateName","setNativeProps","onHeliumPaywallEvent","makePurchase","productId","handlePurchaseResponse","transactionId","success","restorePurchases","handleRestoreResponse","apiKey","fallbackPaywall","triggers","customUserId","customAPIEndpoint","customUserTraits","presentUpsell","triggerName","onFallback","getFetchedTriggerNames","triggerNames","includes","error","hideUpsell","UpsellView","trigger","fallbackViewProps","fallbackViewWrapperStyles","HELIUM_CTA_NAMES","SCHEDULE_CALL","SUBSCRIBE_BUTTON"],"sourceRoot":"../../src","sources":["native-interface.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { HeliumCallbacks, HeliumConfig, HeliumUpsellViewProps, HeliumDownloadStatus } from './types';
|
|
3
3
|
export declare const NativeHeliumUpsellView: import("react-native").HostComponent<HeliumUpsellViewProps>;
|
|
4
|
+
export declare const getDownloadStatus: () => HeliumDownloadStatus;
|
|
4
5
|
interface HeliumContextType {
|
|
5
6
|
downloadStatus: HeliumDownloadStatus;
|
|
6
7
|
setDownloadStatus: (status: HeliumDownloadStatus) => void;
|
|
@@ -12,7 +13,10 @@ interface HeliumProviderProps {
|
|
|
12
13
|
}
|
|
13
14
|
export declare const HeliumProvider: ({ children, fallbackView: FallbackView }: HeliumProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
15
|
export declare const initialize: (heliumCallbacks: HeliumCallbacks, config?: Partial<HeliumConfig>) => Promise<void>;
|
|
15
|
-
export declare const presentUpsell: (triggerName
|
|
16
|
+
export declare const presentUpsell: ({ triggerName, onFallback }: {
|
|
17
|
+
triggerName: string;
|
|
18
|
+
onFallback?: () => void;
|
|
19
|
+
}) => void;
|
|
16
20
|
export declare const hideUpsell: () => void;
|
|
17
21
|
export declare const UpsellView: React.FC<HeliumUpsellViewProps & {
|
|
18
22
|
fallbackViewProps?: Record<string, any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-interface.d.ts","sourceRoot":"","sources":["../../../../src/native-interface.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoE,MAAM,OAAO,CAAC;AACzF,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAO1G,eAAO,MAAM,sBAAsB,6DAAoE,CAAC;
|
|
1
|
+
{"version":3,"file":"native-interface.d.ts","sourceRoot":"","sources":["../../../../src/native-interface.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoE,MAAM,OAAO,CAAC;AACzF,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAO1G,eAAO,MAAM,sBAAsB,6DAAoE,CAAC;AAkBxG,eAAO,MAAM,iBAAiB,4BAA6B,CAAC;AAG5D,UAAU,iBAAiB;IACzB,cAAc,EAAE,oBAAoB,CAAC;IACrC,iBAAiB,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC3D;AAYD,eAAO,MAAM,SAAS,yBAMrB,CAAC;AAEF,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC;CACnC;AAQD,eAAO,MAAM,cAAc,6CAA8C,mBAAmB,4CAmC3F,CAAC;AAGF,eAAO,MAAM,UAAU,oBAA2B,eAAe,WAAU,OAAO,CAAC,YAAY,CAAC,kBAkF/F,CAAC;AAGF,eAAO,MAAM,aAAa,gCAGvB;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,SAcA,CAAC;AAEF,eAAO,MAAM,UAAU,YAEtB,CAAC;AAGF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,GAAG;IACxD,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjD,CAoBA,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;CAG5B,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { HeliumCallbacks, HeliumConfig, HeliumUpsellViewProps, HeliumDownloadStatus } from './types';
|
|
3
3
|
export declare const NativeHeliumUpsellView: import("react-native").HostComponent<HeliumUpsellViewProps>;
|
|
4
|
+
export declare const getDownloadStatus: () => HeliumDownloadStatus;
|
|
4
5
|
interface HeliumContextType {
|
|
5
6
|
downloadStatus: HeliumDownloadStatus;
|
|
6
7
|
setDownloadStatus: (status: HeliumDownloadStatus) => void;
|
|
@@ -12,7 +13,10 @@ interface HeliumProviderProps {
|
|
|
12
13
|
}
|
|
13
14
|
export declare const HeliumProvider: ({ children, fallbackView: FallbackView }: HeliumProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
15
|
export declare const initialize: (heliumCallbacks: HeliumCallbacks, config?: Partial<HeliumConfig>) => Promise<void>;
|
|
15
|
-
export declare const presentUpsell: (triggerName
|
|
16
|
+
export declare const presentUpsell: ({ triggerName, onFallback }: {
|
|
17
|
+
triggerName: string;
|
|
18
|
+
onFallback?: () => void;
|
|
19
|
+
}) => void;
|
|
16
20
|
export declare const hideUpsell: () => void;
|
|
17
21
|
export declare const UpsellView: React.FC<HeliumUpsellViewProps & {
|
|
18
22
|
fallbackViewProps?: Record<string, any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-interface.d.ts","sourceRoot":"","sources":["../../../../src/native-interface.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoE,MAAM,OAAO,CAAC;AACzF,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAO1G,eAAO,MAAM,sBAAsB,6DAAoE,CAAC;
|
|
1
|
+
{"version":3,"file":"native-interface.d.ts","sourceRoot":"","sources":["../../../../src/native-interface.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoE,MAAM,OAAO,CAAC;AACzF,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAO1G,eAAO,MAAM,sBAAsB,6DAAoE,CAAC;AAkBxG,eAAO,MAAM,iBAAiB,4BAA6B,CAAC;AAG5D,UAAU,iBAAiB;IACzB,cAAc,EAAE,oBAAoB,CAAC;IACrC,iBAAiB,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC3D;AAYD,eAAO,MAAM,SAAS,yBAMrB,CAAC;AAEF,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC;CACnC;AAQD,eAAO,MAAM,cAAc,6CAA8C,mBAAmB,4CAmC3F,CAAC;AAGF,eAAO,MAAM,UAAU,oBAA2B,eAAe,WAAU,OAAO,CAAC,YAAY,CAAC,kBAkF/F,CAAC;AAGF,eAAO,MAAM,aAAa,gCAGvB;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,SAcA,CAAC;AAEF,eAAO,MAAM,UAAU,YAEtB,CAAC;AAGF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,GAAG;IACxD,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjD,CAoBA,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;CAG5B,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tryheliumai/paywall-sdk-react-native",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.18",
|
|
4
4
|
"description": "Paywall SDK Helium",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"main": "./lib/commonjs/index.js",
|
|
@@ -185,7 +185,10 @@
|
|
|
185
185
|
{
|
|
186
186
|
"project": "tsconfig.build.json",
|
|
187
187
|
"esm": true,
|
|
188
|
-
"tscOptions": [
|
|
188
|
+
"tscOptions": [
|
|
189
|
+
"--declaration",
|
|
190
|
+
"--emitDeclarationOnly"
|
|
191
|
+
]
|
|
189
192
|
}
|
|
190
193
|
]
|
|
191
194
|
]
|
package/src/native-interface.tsx
CHANGED
|
@@ -23,6 +23,10 @@ providerMountedPromise = new Promise<void>((resolve) => {
|
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
25
|
|
|
26
|
+
// Add module-level download status tracking
|
|
27
|
+
let globalDownloadStatus: HeliumDownloadStatus = 'notStarted';
|
|
28
|
+
export const getDownloadStatus = () => globalDownloadStatus;
|
|
29
|
+
|
|
26
30
|
// Create a context for the download status
|
|
27
31
|
interface HeliumContextType {
|
|
28
32
|
downloadStatus: HeliumDownloadStatus;
|
|
@@ -31,8 +35,12 @@ interface HeliumContextType {
|
|
|
31
35
|
|
|
32
36
|
const HeliumContext = createContext<HeliumContextType | undefined>(undefined);
|
|
33
37
|
|
|
34
|
-
//
|
|
38
|
+
// Update the setter ref to also update global status
|
|
35
39
|
let setDownloadStatusRef: ((status: HeliumDownloadStatus) => void) | null = null;
|
|
40
|
+
const updateDownloadStatus = (status: HeliumDownloadStatus) => {
|
|
41
|
+
globalDownloadStatus = status;
|
|
42
|
+
setDownloadStatusRef?.(status);
|
|
43
|
+
};
|
|
36
44
|
|
|
37
45
|
// Hook to use the Helium context
|
|
38
46
|
export const useHelium = () => {
|
|
@@ -104,19 +112,17 @@ export const initialize = async (heliumCallbacks: HeliumCallbacks, config: Parti
|
|
|
104
112
|
}
|
|
105
113
|
|
|
106
114
|
// Update download status to inProgress
|
|
107
|
-
|
|
108
|
-
setDownloadStatusRef('inProgress');
|
|
109
|
-
}
|
|
115
|
+
updateDownloadStatus('inProgress');
|
|
110
116
|
|
|
111
117
|
// Set up event listeners
|
|
112
118
|
heliumEventEmitter.addListener(
|
|
113
119
|
'helium_paywall_event',
|
|
114
120
|
(event: any) => {
|
|
115
121
|
// Handle download status events
|
|
116
|
-
if (event.type === 'paywallsDownloadSuccess'
|
|
117
|
-
|
|
118
|
-
} else if (event.type === 'paywallsDownloadError'
|
|
119
|
-
|
|
122
|
+
if (event.type === 'paywallsDownloadSuccess') {
|
|
123
|
+
updateDownloadStatus('success');
|
|
124
|
+
} else if (event.type === 'paywallsDownloadError') {
|
|
125
|
+
updateDownloadStatus('failed');
|
|
120
126
|
}
|
|
121
127
|
// Handle fallback view visibility
|
|
122
128
|
else if (event.type === 'paywallOpen' && event.paywallTemplateName === 'Fallback') {
|
|
@@ -170,17 +176,35 @@ export const initialize = async (heliumCallbacks: HeliumCallbacks, config: Parti
|
|
|
170
176
|
triggers: config.triggers || [],
|
|
171
177
|
customUserId: config.customUserId || null,
|
|
172
178
|
customAPIEndpoint: config.customAPIEndpoint || null,
|
|
173
|
-
customUserTraits: config.customUserTraits
|
|
179
|
+
customUserTraits: config.customUserTraits == null ? {
|
|
174
180
|
"exampleUserTrait": "test_value"
|
|
175
|
-
}
|
|
181
|
+
} : config.customUserTraits
|
|
176
182
|
},
|
|
177
183
|
{}
|
|
178
184
|
);
|
|
179
185
|
};
|
|
180
186
|
|
|
181
187
|
// Update the other methods to be synchronous
|
|
182
|
-
export const presentUpsell = (
|
|
183
|
-
|
|
188
|
+
export const presentUpsell = ({
|
|
189
|
+
triggerName,
|
|
190
|
+
onFallback
|
|
191
|
+
}: {
|
|
192
|
+
triggerName: string;
|
|
193
|
+
onFallback?: () => void;
|
|
194
|
+
}) => {
|
|
195
|
+
const downloadStatus = getDownloadStatus();
|
|
196
|
+
HeliumBridge.getFetchedTriggerNames((triggerNames: string[]) => {
|
|
197
|
+
if (!triggerNames.includes(triggerName) || downloadStatus !== 'success') {
|
|
198
|
+
onFallback?.();
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
try {
|
|
203
|
+
HeliumBridge.presentUpsell(triggerName);
|
|
204
|
+
} catch (error) {
|
|
205
|
+
onFallback?.();
|
|
206
|
+
}
|
|
207
|
+
});
|
|
184
208
|
};
|
|
185
209
|
|
|
186
210
|
export const hideUpsell = () => {
|