cloudx-react-native 2.0.0-beta.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/LICENSE +57 -0
- package/README.md +1258 -0
- package/android/build.gradle +78 -0
- package/android/gradle.properties +7 -0
- package/android/src/main/AndroidManifest.xml +7 -0
- package/android/src/main/java/com/cloudxreactnative/CloudXAdViewEvent.kt +15 -0
- package/android/src/main/java/com/cloudxreactnative/CloudXBannerViewManagerImpl.kt +472 -0
- package/android/src/main/java/com/cloudxreactnative/CloudXReactNativeModuleImpl.kt +861 -0
- package/android/src/newarch/com/cloudxreactnative/CloudXBannerViewManager.kt +90 -0
- package/android/src/newarch/com/cloudxreactnative/CloudXReactNativeModule.kt +73 -0
- package/android/src/newarch/com/cloudxreactnative/CloudXReactNativePackage.kt +37 -0
- package/android/src/oldarch/com/cloudxreactnative/CloudXBannerViewManager.kt +76 -0
- package/android/src/oldarch/com/cloudxreactnative/CloudXReactNativeModule.kt +73 -0
- package/android/src/oldarch/com/cloudxreactnative/CloudXReactNativePackage.kt +16 -0
- package/cloudx-react-native.podspec +46 -0
- package/ios/AppTrackingTransparency.h +13 -0
- package/ios/AppTrackingTransparency.mm +59 -0
- package/ios/RNCloudXBannerView.h +51 -0
- package/ios/RNCloudXBannerView.mm +633 -0
- package/ios/RNCloudXBannerViewManager.h +11 -0
- package/ios/RNCloudXBannerViewManager.mm +60 -0
- package/ios/RNCloudXModule.h +30 -0
- package/ios/RNCloudXModule.mm +1088 -0
- package/lib/commonjs/AdView.js +151 -0
- package/lib/commonjs/AdView.js.map +1 -0
- package/lib/commonjs/AppTrackingTransparency.js +62 -0
- package/lib/commonjs/AppTrackingTransparency.js.map +1 -0
- package/lib/commonjs/BannerAd.js +117 -0
- package/lib/commonjs/BannerAd.js.map +1 -0
- package/lib/commonjs/CloudX.js +49 -0
- package/lib/commonjs/CloudX.js.map +1 -0
- package/lib/commonjs/ErrorCode.js +116 -0
- package/lib/commonjs/ErrorCode.js.map +1 -0
- package/lib/commonjs/EventEmitter.js +44 -0
- package/lib/commonjs/EventEmitter.js.map +1 -0
- package/lib/commonjs/InterstitialAd.js +94 -0
- package/lib/commonjs/InterstitialAd.js.map +1 -0
- package/lib/commonjs/MRecAd.js +117 -0
- package/lib/commonjs/MRecAd.js.map +1 -0
- package/lib/commonjs/RewardedAd.js +103 -0
- package/lib/commonjs/RewardedAd.js.map +1 -0
- package/lib/commonjs/hooks.js +239 -0
- package/lib/commonjs/hooks.js.map +1 -0
- package/lib/commonjs/index.js +144 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/specs/CloudXAdViewNativeComponent.js +26 -0
- package/lib/commonjs/specs/CloudXAdViewNativeComponent.js.map +1 -0
- package/lib/commonjs/specs/NativeCloudXModule.js +18 -0
- package/lib/commonjs/specs/NativeCloudXModule.js.map +1 -0
- package/lib/commonjs/types/AdEvent.js +6 -0
- package/lib/commonjs/types/AdEvent.js.map +1 -0
- package/lib/commonjs/types/AdInfo.js +6 -0
- package/lib/commonjs/types/AdInfo.js.map +1 -0
- package/lib/commonjs/types/BannerAd.js +6 -0
- package/lib/commonjs/types/BannerAd.js.map +1 -0
- package/lib/commonjs/types/CloudX.js +6 -0
- package/lib/commonjs/types/CloudX.js.map +1 -0
- package/lib/commonjs/types/Configuration.js +2 -0
- package/lib/commonjs/types/Configuration.js.map +1 -0
- package/lib/commonjs/types/FullscreenAd.js +6 -0
- package/lib/commonjs/types/FullscreenAd.js.map +1 -0
- package/lib/commonjs/types/RewardedAd.js +6 -0
- package/lib/commonjs/types/RewardedAd.js.map +1 -0
- package/lib/commonjs/types/index.js +2 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/module/AdView.js +144 -0
- package/lib/module/AdView.js.map +1 -0
- package/lib/module/AppTrackingTransparency.js +55 -0
- package/lib/module/AppTrackingTransparency.js.map +1 -0
- package/lib/module/BannerAd.js +110 -0
- package/lib/module/BannerAd.js.map +1 -0
- package/lib/module/CloudX.js +42 -0
- package/lib/module/CloudX.js.map +1 -0
- package/lib/module/ErrorCode.js +110 -0
- package/lib/module/ErrorCode.js.map +1 -0
- package/lib/module/EventEmitter.js +35 -0
- package/lib/module/EventEmitter.js.map +1 -0
- package/lib/module/InterstitialAd.js +87 -0
- package/lib/module/InterstitialAd.js.map +1 -0
- package/lib/module/MRecAd.js +110 -0
- package/lib/module/MRecAd.js.map +1 -0
- package/lib/module/RewardedAd.js +96 -0
- package/lib/module/RewardedAd.js.map +1 -0
- package/lib/module/hooks.js +230 -0
- package/lib/module/hooks.js.map +1 -0
- package/lib/module/index.js +33 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/specs/CloudXAdViewNativeComponent.js +20 -0
- package/lib/module/specs/CloudXAdViewNativeComponent.js.map +1 -0
- package/lib/module/specs/NativeCloudXModule.js +14 -0
- package/lib/module/specs/NativeCloudXModule.js.map +1 -0
- package/lib/module/types/AdEvent.js +2 -0
- package/lib/module/types/AdEvent.js.map +1 -0
- package/lib/module/types/AdInfo.js +2 -0
- package/lib/module/types/AdInfo.js.map +1 -0
- package/lib/module/types/BannerAd.js +2 -0
- package/lib/module/types/BannerAd.js.map +1 -0
- package/lib/module/types/CloudX.js +2 -0
- package/lib/module/types/CloudX.js.map +1 -0
- package/lib/module/types/Configuration.js +2 -0
- package/lib/module/types/Configuration.js.map +1 -0
- package/lib/module/types/FullscreenAd.js +2 -0
- package/lib/module/types/FullscreenAd.js.map +1 -0
- package/lib/module/types/RewardedAd.js +2 -0
- package/lib/module/types/RewardedAd.js.map +1 -0
- package/lib/module/types/index.js +2 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/typescript/src/AdView.d.ts +69 -0
- package/lib/typescript/src/AdView.d.ts.map +1 -0
- package/lib/typescript/src/AppTrackingTransparency.d.ts +28 -0
- package/lib/typescript/src/AppTrackingTransparency.d.ts.map +1 -0
- package/lib/typescript/src/BannerAd.d.ts +4 -0
- package/lib/typescript/src/BannerAd.d.ts.map +1 -0
- package/lib/typescript/src/CloudX.d.ts +4 -0
- package/lib/typescript/src/CloudX.d.ts.map +1 -0
- package/lib/typescript/src/ErrorCode.d.ts +102 -0
- package/lib/typescript/src/ErrorCode.d.ts.map +1 -0
- package/lib/typescript/src/EventEmitter.d.ts +16 -0
- package/lib/typescript/src/EventEmitter.d.ts.map +1 -0
- package/lib/typescript/src/InterstitialAd.d.ts +4 -0
- package/lib/typescript/src/InterstitialAd.d.ts.map +1 -0
- package/lib/typescript/src/MRecAd.d.ts +4 -0
- package/lib/typescript/src/MRecAd.d.ts.map +1 -0
- package/lib/typescript/src/RewardedAd.d.ts +4 -0
- package/lib/typescript/src/RewardedAd.d.ts.map +1 -0
- package/lib/typescript/src/hooks.d.ts +50 -0
- package/lib/typescript/src/hooks.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +23 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/specs/CloudXAdViewNativeComponent.d.ts +61 -0
- package/lib/typescript/src/specs/CloudXAdViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativeCloudXModule.d.ts +106 -0
- package/lib/typescript/src/specs/NativeCloudXModule.d.ts.map +1 -0
- package/lib/typescript/src/types/AdEvent.d.ts +10 -0
- package/lib/typescript/src/types/AdEvent.d.ts.map +1 -0
- package/lib/typescript/src/types/AdInfo.d.ts +48 -0
- package/lib/typescript/src/types/AdInfo.d.ts.map +1 -0
- package/lib/typescript/src/types/BannerAd.d.ts +39 -0
- package/lib/typescript/src/types/BannerAd.d.ts.map +1 -0
- package/lib/typescript/src/types/CloudX.d.ts +25 -0
- package/lib/typescript/src/types/CloudX.d.ts.map +1 -0
- package/lib/typescript/src/types/Configuration.d.ts +10 -0
- package/lib/typescript/src/types/Configuration.d.ts.map +1 -0
- package/lib/typescript/src/types/FullscreenAd.d.ts +29 -0
- package/lib/typescript/src/types/FullscreenAd.d.ts.map +1 -0
- package/lib/typescript/src/types/RewardedAd.d.ts +10 -0
- package/lib/typescript/src/types/RewardedAd.d.ts.map +1 -0
- package/lib/typescript/src/types/index.d.ts +8 -0
- package/lib/typescript/src/types/index.d.ts.map +1 -0
- package/package.json +78 -0
- package/src/AdView.tsx +213 -0
- package/src/AppTrackingTransparency.ts +56 -0
- package/src/BannerAd.ts +133 -0
- package/src/CloudX.ts +55 -0
- package/src/ErrorCode.ts +157 -0
- package/src/EventEmitter.ts +38 -0
- package/src/InterstitialAd.ts +103 -0
- package/src/MRecAd.ts +133 -0
- package/src/RewardedAd.ts +113 -0
- package/src/hooks.ts +292 -0
- package/src/index.ts +50 -0
- package/src/specs/CloudXAdViewNativeComponent.ts +82 -0
- package/src/specs/NativeCloudXModule.ts +162 -0
- package/src/types/AdEvent.ts +11 -0
- package/src/types/AdInfo.ts +60 -0
- package/src/types/BannerAd.ts +59 -0
- package/src/types/CloudX.ts +33 -0
- package/src/types/Configuration.ts +10 -0
- package/src/types/FullscreenAd.ts +39 -0
- package/src/types/RewardedAd.ts +10 -0
- package/src/types/index.ts +7 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { addEventListener, removeEventListener } from './EventEmitter';
|
|
2
|
+
import type { AdDisplayFailedInfo, AdInfo, AdLoadFailedInfo } from './types/AdInfo';
|
|
3
|
+
import type { FullscreenAdType } from './types/FullscreenAd';
|
|
4
|
+
import NativeCloudXModule from './specs/NativeCloudXModule';
|
|
5
|
+
|
|
6
|
+
const {
|
|
7
|
+
ON_INTERSTITIAL_LOADED_EVENT,
|
|
8
|
+
ON_INTERSTITIAL_LOAD_FAILED_EVENT,
|
|
9
|
+
ON_INTERSTITIAL_CLICKED_EVENT,
|
|
10
|
+
ON_INTERSTITIAL_DISPLAYED_EVENT,
|
|
11
|
+
ON_INTERSTITIAL_DISPLAY_FAILED_EVENT,
|
|
12
|
+
ON_INTERSTITIAL_HIDDEN_EVENT,
|
|
13
|
+
ON_INTERSTITIAL_AD_REVENUE_PAID,
|
|
14
|
+
} = NativeCloudXModule.getConstants();
|
|
15
|
+
|
|
16
|
+
const isAdReady = (adUnitId: string): Promise<boolean> => {
|
|
17
|
+
return NativeCloudXModule.isInterstitialReady(adUnitId);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const loadAd = (adUnitId: string): void => {
|
|
21
|
+
NativeCloudXModule.loadInterstitial(adUnitId);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const showAd = (adUnitId: string, placement?: string | null, customData?: string | null): void => {
|
|
25
|
+
NativeCloudXModule.showInterstitial(adUnitId, placement ?? undefined, customData ?? undefined);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const destroyAd = (adUnitId: string): void => {
|
|
29
|
+
NativeCloudXModule.destroyInterstitial(adUnitId);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
33
|
+
addEventListener(ON_INTERSTITIAL_LOADED_EVENT, listener);
|
|
34
|
+
};
|
|
35
|
+
const removeAdLoadedEventListener = (): void => {
|
|
36
|
+
removeEventListener(ON_INTERSTITIAL_LOADED_EVENT);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void): void => {
|
|
40
|
+
addEventListener(ON_INTERSTITIAL_LOAD_FAILED_EVENT, listener);
|
|
41
|
+
};
|
|
42
|
+
const removeAdLoadFailedEventListener = (): void => {
|
|
43
|
+
removeEventListener(ON_INTERSTITIAL_LOAD_FAILED_EVENT);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
47
|
+
addEventListener(ON_INTERSTITIAL_CLICKED_EVENT, listener);
|
|
48
|
+
};
|
|
49
|
+
const removeAdClickedEventListener = (): void => {
|
|
50
|
+
removeEventListener(ON_INTERSTITIAL_CLICKED_EVENT);
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const addAdDisplayedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
54
|
+
addEventListener(ON_INTERSTITIAL_DISPLAYED_EVENT, listener);
|
|
55
|
+
};
|
|
56
|
+
const removeAdDisplayedEventListener = (): void => {
|
|
57
|
+
removeEventListener(ON_INTERSTITIAL_DISPLAYED_EVENT);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const addAdFailedToDisplayEventListener = (listener: (errorInfo: AdDisplayFailedInfo) => void): void => {
|
|
61
|
+
addEventListener(ON_INTERSTITIAL_DISPLAY_FAILED_EVENT, listener);
|
|
62
|
+
};
|
|
63
|
+
const removeAdFailedToDisplayEventListener = (): void => {
|
|
64
|
+
removeEventListener(ON_INTERSTITIAL_DISPLAY_FAILED_EVENT);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const addAdHiddenEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
68
|
+
addEventListener(ON_INTERSTITIAL_HIDDEN_EVENT, listener);
|
|
69
|
+
};
|
|
70
|
+
const removeAdHiddenEventListener = (): void => {
|
|
71
|
+
removeEventListener(ON_INTERSTITIAL_HIDDEN_EVENT);
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const addAdRevenuePaidListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
75
|
+
addEventListener(ON_INTERSTITIAL_AD_REVENUE_PAID, listener);
|
|
76
|
+
};
|
|
77
|
+
const removeAdRevenuePaidListener = (): void => {
|
|
78
|
+
removeEventListener(ON_INTERSTITIAL_AD_REVENUE_PAID);
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const InterstitialAd: FullscreenAdType = {
|
|
82
|
+
isAdReady,
|
|
83
|
+
loadAd,
|
|
84
|
+
showAd,
|
|
85
|
+
destroyAd,
|
|
86
|
+
|
|
87
|
+
addAdLoadedEventListener,
|
|
88
|
+
removeAdLoadedEventListener,
|
|
89
|
+
addAdLoadFailedEventListener,
|
|
90
|
+
removeAdLoadFailedEventListener,
|
|
91
|
+
addAdClickedEventListener,
|
|
92
|
+
removeAdClickedEventListener,
|
|
93
|
+
addAdDisplayedEventListener,
|
|
94
|
+
removeAdDisplayedEventListener,
|
|
95
|
+
addAdFailedToDisplayEventListener,
|
|
96
|
+
removeAdFailedToDisplayEventListener,
|
|
97
|
+
addAdHiddenEventListener,
|
|
98
|
+
removeAdHiddenEventListener,
|
|
99
|
+
addAdRevenuePaidListener,
|
|
100
|
+
removeAdRevenuePaidListener,
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
export default InterstitialAd;
|
package/src/MRecAd.ts
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { addEventListener, removeEventListener } from './EventEmitter';
|
|
2
|
+
import type { AdInfo, AdLoadFailedInfo } from './types/AdInfo';
|
|
3
|
+
import type { MRecAdType, AdViewPositionType } from './types/BannerAd';
|
|
4
|
+
import NativeCloudXModule from './specs/NativeCloudXModule';
|
|
5
|
+
|
|
6
|
+
const {
|
|
7
|
+
ON_MREC_AD_LOADED_EVENT,
|
|
8
|
+
ON_MREC_AD_LOAD_FAILED_EVENT,
|
|
9
|
+
ON_MREC_AD_CLICKED_EVENT,
|
|
10
|
+
ON_MREC_AD_EXPANDED_EVENT,
|
|
11
|
+
ON_MREC_AD_COLLAPSED_EVENT,
|
|
12
|
+
ON_MREC_AD_REVENUE_PAID,
|
|
13
|
+
} = NativeCloudXModule.getConstants();
|
|
14
|
+
|
|
15
|
+
const createAd = (adUnitId: string, position: AdViewPositionType): void => {
|
|
16
|
+
NativeCloudXModule.createMRec(adUnitId, position);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const createAdWithOffsets = (adUnitId: string, position: AdViewPositionType, xOffset: number, yOffset: number): void => {
|
|
20
|
+
NativeCloudXModule.createMRecWithOffsets(adUnitId, position, xOffset, yOffset);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const destroyAd = (adUnitId: string): void => {
|
|
24
|
+
NativeCloudXModule.destroyMRec(adUnitId);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const showAd = (adUnitId: string): void => {
|
|
28
|
+
NativeCloudXModule.showMRec(adUnitId);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const hideAd = (adUnitId: string): void => {
|
|
32
|
+
NativeCloudXModule.hideMRec(adUnitId);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const setPlacement = (adUnitId: string, placement: string | null): void => {
|
|
36
|
+
NativeCloudXModule.setMRecPlacement(adUnitId, placement);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const setCustomData = (adUnitId: string, customData: string | null): void => {
|
|
40
|
+
NativeCloudXModule.setMRecCustomData(adUnitId, customData);
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const startAutoRefresh = (adUnitId: string): void => {
|
|
44
|
+
NativeCloudXModule.startMRecAutoRefresh(adUnitId);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const stopAutoRefresh = (adUnitId: string): void => {
|
|
48
|
+
NativeCloudXModule.stopMRecAutoRefresh(adUnitId);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const updatePosition = (adUnitId: string, position: AdViewPositionType): void => {
|
|
52
|
+
NativeCloudXModule.updateMRecPosition(adUnitId, position);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const updateOffsets = (adUnitId: string, xOffset: number, yOffset: number): void => {
|
|
56
|
+
NativeCloudXModule.updateMRecOffsets(adUnitId, xOffset, yOffset);
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const setBackgroundColor = (adUnitId: string, hexColorString: string): void => {
|
|
60
|
+
NativeCloudXModule.setMRecBackgroundColor(adUnitId, hexColorString);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
64
|
+
addEventListener(ON_MREC_AD_LOADED_EVENT, listener);
|
|
65
|
+
};
|
|
66
|
+
const removeAdLoadedEventListener = (): void => {
|
|
67
|
+
removeEventListener(ON_MREC_AD_LOADED_EVENT);
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void): void => {
|
|
71
|
+
addEventListener(ON_MREC_AD_LOAD_FAILED_EVENT, listener);
|
|
72
|
+
};
|
|
73
|
+
const removeAdLoadFailedEventListener = (): void => {
|
|
74
|
+
removeEventListener(ON_MREC_AD_LOAD_FAILED_EVENT);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
78
|
+
addEventListener(ON_MREC_AD_CLICKED_EVENT, listener);
|
|
79
|
+
};
|
|
80
|
+
const removeAdClickedEventListener = (): void => {
|
|
81
|
+
removeEventListener(ON_MREC_AD_CLICKED_EVENT);
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
const addAdExpandedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
85
|
+
addEventListener(ON_MREC_AD_EXPANDED_EVENT, listener);
|
|
86
|
+
};
|
|
87
|
+
const removeAdExpandedEventListener = (): void => {
|
|
88
|
+
removeEventListener(ON_MREC_AD_EXPANDED_EVENT);
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
const addAdCollapsedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
92
|
+
addEventListener(ON_MREC_AD_COLLAPSED_EVENT, listener);
|
|
93
|
+
};
|
|
94
|
+
const removeAdCollapsedEventListener = (): void => {
|
|
95
|
+
removeEventListener(ON_MREC_AD_COLLAPSED_EVENT);
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
const addAdRevenuePaidListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
99
|
+
addEventListener(ON_MREC_AD_REVENUE_PAID, listener);
|
|
100
|
+
};
|
|
101
|
+
const removeAdRevenuePaidListener = (): void => {
|
|
102
|
+
removeEventListener(ON_MREC_AD_REVENUE_PAID);
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
export const MRecAd: MRecAdType = {
|
|
106
|
+
createAd,
|
|
107
|
+
createAdWithOffsets,
|
|
108
|
+
destroyAd,
|
|
109
|
+
showAd,
|
|
110
|
+
hideAd,
|
|
111
|
+
updatePosition,
|
|
112
|
+
updateOffsets,
|
|
113
|
+
setBackgroundColor,
|
|
114
|
+
setPlacement,
|
|
115
|
+
setCustomData,
|
|
116
|
+
startAutoRefresh,
|
|
117
|
+
stopAutoRefresh,
|
|
118
|
+
|
|
119
|
+
addAdLoadedEventListener,
|
|
120
|
+
removeAdLoadedEventListener,
|
|
121
|
+
addAdLoadFailedEventListener,
|
|
122
|
+
removeAdLoadFailedEventListener,
|
|
123
|
+
addAdClickedEventListener,
|
|
124
|
+
removeAdClickedEventListener,
|
|
125
|
+
addAdExpandedEventListener,
|
|
126
|
+
removeAdExpandedEventListener,
|
|
127
|
+
addAdCollapsedEventListener,
|
|
128
|
+
removeAdCollapsedEventListener,
|
|
129
|
+
addAdRevenuePaidListener,
|
|
130
|
+
removeAdRevenuePaidListener,
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export default MRecAd;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { addEventListener, removeEventListener } from './EventEmitter';
|
|
2
|
+
import type { AdDisplayFailedInfo, AdInfo, AdLoadFailedInfo, AdRewardInfo } from './types/AdInfo';
|
|
3
|
+
import type { RewardedAdType } from './types/RewardedAd';
|
|
4
|
+
import NativeCloudXModule from './specs/NativeCloudXModule';
|
|
5
|
+
|
|
6
|
+
const {
|
|
7
|
+
ON_REWARDED_AD_LOADED_EVENT,
|
|
8
|
+
ON_REWARDED_AD_LOAD_FAILED_EVENT,
|
|
9
|
+
ON_REWARDED_AD_CLICKED_EVENT,
|
|
10
|
+
ON_REWARDED_AD_DISPLAYED_EVENT,
|
|
11
|
+
ON_REWARDED_AD_DISPLAY_FAILED_EVENT,
|
|
12
|
+
ON_REWARDED_AD_HIDDEN_EVENT,
|
|
13
|
+
ON_REWARDED_AD_RECEIVED_REWARD_EVENT,
|
|
14
|
+
ON_REWARDED_AD_REVENUE_PAID,
|
|
15
|
+
} = NativeCloudXModule.getConstants();
|
|
16
|
+
|
|
17
|
+
const isAdReady = (adUnitId: string): Promise<boolean> => {
|
|
18
|
+
return NativeCloudXModule.isRewardedReady(adUnitId);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const loadAd = (adUnitId: string): void => {
|
|
22
|
+
NativeCloudXModule.loadRewarded(adUnitId);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const showAd = (adUnitId: string, placement?: string | null, customData?: string | null): void => {
|
|
26
|
+
NativeCloudXModule.showRewarded(adUnitId, placement ?? undefined, customData ?? undefined);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const destroyAd = (adUnitId: string): void => {
|
|
30
|
+
NativeCloudXModule.destroyRewarded(adUnitId);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
34
|
+
addEventListener(ON_REWARDED_AD_LOADED_EVENT, listener);
|
|
35
|
+
};
|
|
36
|
+
const removeAdLoadedEventListener = (): void => {
|
|
37
|
+
removeEventListener(ON_REWARDED_AD_LOADED_EVENT);
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void): void => {
|
|
41
|
+
addEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT, listener);
|
|
42
|
+
};
|
|
43
|
+
const removeAdLoadFailedEventListener = (): void => {
|
|
44
|
+
removeEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
48
|
+
addEventListener(ON_REWARDED_AD_CLICKED_EVENT, listener);
|
|
49
|
+
};
|
|
50
|
+
const removeAdClickedEventListener = (): void => {
|
|
51
|
+
removeEventListener(ON_REWARDED_AD_CLICKED_EVENT);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
const addAdDisplayedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
55
|
+
addEventListener(ON_REWARDED_AD_DISPLAYED_EVENT, listener);
|
|
56
|
+
};
|
|
57
|
+
const removeAdDisplayedEventListener = (): void => {
|
|
58
|
+
removeEventListener(ON_REWARDED_AD_DISPLAYED_EVENT);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const addAdFailedToDisplayEventListener = (listener: (errorInfo: AdDisplayFailedInfo) => void): void => {
|
|
62
|
+
addEventListener(ON_REWARDED_AD_DISPLAY_FAILED_EVENT, listener);
|
|
63
|
+
};
|
|
64
|
+
const removeAdFailedToDisplayEventListener = (): void => {
|
|
65
|
+
removeEventListener(ON_REWARDED_AD_DISPLAY_FAILED_EVENT);
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const addAdHiddenEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
69
|
+
addEventListener(ON_REWARDED_AD_HIDDEN_EVENT, listener);
|
|
70
|
+
};
|
|
71
|
+
const removeAdHiddenEventListener = (): void => {
|
|
72
|
+
removeEventListener(ON_REWARDED_AD_HIDDEN_EVENT);
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const addAdReceivedRewardEventListener = (listener: (rewardInfo: AdRewardInfo) => void): void => {
|
|
76
|
+
addEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT, listener);
|
|
77
|
+
};
|
|
78
|
+
const removeAdReceivedRewardEventListener = (): void => {
|
|
79
|
+
removeEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT);
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const addAdRevenuePaidListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
83
|
+
addEventListener(ON_REWARDED_AD_REVENUE_PAID, listener);
|
|
84
|
+
};
|
|
85
|
+
const removeAdRevenuePaidListener = (): void => {
|
|
86
|
+
removeEventListener(ON_REWARDED_AD_REVENUE_PAID);
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
export const RewardedAd: RewardedAdType = {
|
|
90
|
+
isAdReady,
|
|
91
|
+
loadAd,
|
|
92
|
+
showAd,
|
|
93
|
+
destroyAd,
|
|
94
|
+
|
|
95
|
+
addAdLoadedEventListener,
|
|
96
|
+
removeAdLoadedEventListener,
|
|
97
|
+
addAdLoadFailedEventListener,
|
|
98
|
+
removeAdLoadFailedEventListener,
|
|
99
|
+
addAdClickedEventListener,
|
|
100
|
+
removeAdClickedEventListener,
|
|
101
|
+
addAdDisplayedEventListener,
|
|
102
|
+
removeAdDisplayedEventListener,
|
|
103
|
+
addAdFailedToDisplayEventListener,
|
|
104
|
+
removeAdFailedToDisplayEventListener,
|
|
105
|
+
addAdHiddenEventListener,
|
|
106
|
+
removeAdHiddenEventListener,
|
|
107
|
+
addAdReceivedRewardEventListener,
|
|
108
|
+
removeAdReceivedRewardEventListener,
|
|
109
|
+
addAdRevenuePaidListener,
|
|
110
|
+
removeAdRevenuePaidListener,
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
export default RewardedAd;
|
package/src/hooks.ts
ADDED
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React Hooks for CloudX SDK.
|
|
3
|
+
*
|
|
4
|
+
* Provides declarative hooks for managing fullscreen and banner ad lifecycles.
|
|
5
|
+
* These are a CloudX-specific convenience layer on top of the static module APIs.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { useEffect, useState, useCallback, useRef } from 'react';
|
|
9
|
+
import { NativeEventEmitter } from 'react-native';
|
|
10
|
+
import type { EventSubscription } from 'react-native';
|
|
11
|
+
import NativeCloudXModule from './specs/NativeCloudXModule';
|
|
12
|
+
|
|
13
|
+
const emitter = new NativeEventEmitter(NativeCloudXModule);
|
|
14
|
+
|
|
15
|
+
const {
|
|
16
|
+
ON_INTERSTITIAL_LOADED_EVENT,
|
|
17
|
+
ON_INTERSTITIAL_LOAD_FAILED_EVENT,
|
|
18
|
+
ON_INTERSTITIAL_DISPLAY_FAILED_EVENT,
|
|
19
|
+
ON_INTERSTITIAL_HIDDEN_EVENT,
|
|
20
|
+
ON_REWARDED_AD_LOADED_EVENT,
|
|
21
|
+
ON_REWARDED_AD_LOAD_FAILED_EVENT,
|
|
22
|
+
ON_REWARDED_AD_DISPLAY_FAILED_EVENT,
|
|
23
|
+
ON_REWARDED_AD_HIDDEN_EVENT,
|
|
24
|
+
ON_REWARDED_AD_RECEIVED_REWARD_EVENT,
|
|
25
|
+
ON_BANNER_AD_LOADED_EVENT,
|
|
26
|
+
ON_BANNER_AD_LOAD_FAILED_EVENT,
|
|
27
|
+
} = NativeCloudXModule.getConstants();
|
|
28
|
+
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// useCloudXInterstitial
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
|
|
33
|
+
export type InterstitialHookResult = {
|
|
34
|
+
isLoaded: boolean;
|
|
35
|
+
isLoading: boolean;
|
|
36
|
+
error: string | null;
|
|
37
|
+
load: () => void;
|
|
38
|
+
show: (placement?: string | null, customData?: string | null) => void;
|
|
39
|
+
destroy: () => void;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Hook for managing an interstitial ad lifecycle.
|
|
44
|
+
*
|
|
45
|
+
* @param adUnitId - The ad unit identifier.
|
|
46
|
+
*/
|
|
47
|
+
export function useCloudXInterstitial(adUnitId: string): InterstitialHookResult {
|
|
48
|
+
const [isLoaded, setIsLoaded] = useState(false);
|
|
49
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
50
|
+
const [error, setError] = useState<string | null>(null);
|
|
51
|
+
const mountedRef = useRef(true);
|
|
52
|
+
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
mountedRef.current = true;
|
|
55
|
+
const subs: EventSubscription[] = [];
|
|
56
|
+
|
|
57
|
+
subs.push(
|
|
58
|
+
emitter.addListener(ON_INTERSTITIAL_LOADED_EVENT, (event: { adUnitId: string }) => {
|
|
59
|
+
if (event.adUnitId === adUnitId && mountedRef.current) {
|
|
60
|
+
setIsLoaded(true);
|
|
61
|
+
setIsLoading(false);
|
|
62
|
+
setError(null);
|
|
63
|
+
}
|
|
64
|
+
}),
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
subs.push(
|
|
68
|
+
emitter.addListener(ON_INTERSTITIAL_LOAD_FAILED_EVENT, (event: { adUnitId: string; message?: string }) => {
|
|
69
|
+
if (event.adUnitId === adUnitId && mountedRef.current) {
|
|
70
|
+
setIsLoaded(false);
|
|
71
|
+
setIsLoading(false);
|
|
72
|
+
setError(event.message ?? 'Failed to load');
|
|
73
|
+
}
|
|
74
|
+
}),
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
subs.push(
|
|
78
|
+
emitter.addListener(ON_INTERSTITIAL_DISPLAY_FAILED_EVENT, (event: { adUnitId: string; message?: string }) => {
|
|
79
|
+
if (event.adUnitId === adUnitId && mountedRef.current) {
|
|
80
|
+
setIsLoaded(false);
|
|
81
|
+
setError(event.message ?? 'Display failed');
|
|
82
|
+
}
|
|
83
|
+
}),
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
subs.push(
|
|
87
|
+
emitter.addListener(ON_INTERSTITIAL_HIDDEN_EVENT, (event: { adUnitId: string }) => {
|
|
88
|
+
if (event.adUnitId === adUnitId && mountedRef.current) {
|
|
89
|
+
setIsLoaded(false);
|
|
90
|
+
}
|
|
91
|
+
}),
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
return () => {
|
|
95
|
+
mountedRef.current = false;
|
|
96
|
+
subs.forEach((s) => s.remove());
|
|
97
|
+
NativeCloudXModule.destroyInterstitial(adUnitId);
|
|
98
|
+
};
|
|
99
|
+
}, [adUnitId]);
|
|
100
|
+
|
|
101
|
+
const load = useCallback(() => {
|
|
102
|
+
setIsLoading(true);
|
|
103
|
+
setError(null);
|
|
104
|
+
NativeCloudXModule.loadInterstitial(adUnitId);
|
|
105
|
+
}, [adUnitId]);
|
|
106
|
+
|
|
107
|
+
const show = useCallback(
|
|
108
|
+
(placement?: string | null, customData?: string | null) => {
|
|
109
|
+
if (!isLoaded) {
|
|
110
|
+
setError('Ad not loaded');
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
NativeCloudXModule.showInterstitial(adUnitId, placement ?? undefined, customData ?? undefined);
|
|
114
|
+
},
|
|
115
|
+
[adUnitId, isLoaded],
|
|
116
|
+
);
|
|
117
|
+
|
|
118
|
+
const destroy = useCallback(() => {
|
|
119
|
+
NativeCloudXModule.destroyInterstitial(adUnitId);
|
|
120
|
+
setIsLoaded(false);
|
|
121
|
+
setIsLoading(false);
|
|
122
|
+
setError(null);
|
|
123
|
+
}, [adUnitId]);
|
|
124
|
+
|
|
125
|
+
return { isLoaded, isLoading, error, load, show, destroy };
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// ---------------------------------------------------------------------------
|
|
129
|
+
// useCloudXRewarded
|
|
130
|
+
// ---------------------------------------------------------------------------
|
|
131
|
+
|
|
132
|
+
export type RewardedHookResult = {
|
|
133
|
+
isLoaded: boolean;
|
|
134
|
+
isLoading: boolean;
|
|
135
|
+
error: string | null;
|
|
136
|
+
rewardEarned: boolean;
|
|
137
|
+
load: () => void;
|
|
138
|
+
show: (placement?: string | null, customData?: string | null) => void;
|
|
139
|
+
destroy: () => void;
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Hook for managing a rewarded ad lifecycle.
|
|
144
|
+
*
|
|
145
|
+
* @param adUnitId - The ad unit identifier.
|
|
146
|
+
*/
|
|
147
|
+
export function useCloudXRewarded(adUnitId: string): RewardedHookResult {
|
|
148
|
+
const [isLoaded, setIsLoaded] = useState(false);
|
|
149
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
150
|
+
const [error, setError] = useState<string | null>(null);
|
|
151
|
+
const [rewardEarned, setRewardEarned] = useState(false);
|
|
152
|
+
const mountedRef = useRef(true);
|
|
153
|
+
|
|
154
|
+
useEffect(() => {
|
|
155
|
+
mountedRef.current = true;
|
|
156
|
+
const subs: EventSubscription[] = [];
|
|
157
|
+
|
|
158
|
+
subs.push(
|
|
159
|
+
emitter.addListener(ON_REWARDED_AD_LOADED_EVENT, (event: { adUnitId: string }) => {
|
|
160
|
+
if (event.adUnitId === adUnitId && mountedRef.current) {
|
|
161
|
+
setIsLoaded(true);
|
|
162
|
+
setIsLoading(false);
|
|
163
|
+
setError(null);
|
|
164
|
+
}
|
|
165
|
+
}),
|
|
166
|
+
);
|
|
167
|
+
|
|
168
|
+
subs.push(
|
|
169
|
+
emitter.addListener(ON_REWARDED_AD_LOAD_FAILED_EVENT, (event: { adUnitId: string; message?: string }) => {
|
|
170
|
+
if (event.adUnitId === adUnitId && mountedRef.current) {
|
|
171
|
+
setIsLoaded(false);
|
|
172
|
+
setIsLoading(false);
|
|
173
|
+
setError(event.message ?? 'Failed to load');
|
|
174
|
+
}
|
|
175
|
+
}),
|
|
176
|
+
);
|
|
177
|
+
|
|
178
|
+
subs.push(
|
|
179
|
+
emitter.addListener(ON_REWARDED_AD_DISPLAY_FAILED_EVENT, (event: { adUnitId: string; message?: string }) => {
|
|
180
|
+
if (event.adUnitId === adUnitId && mountedRef.current) {
|
|
181
|
+
setIsLoaded(false);
|
|
182
|
+
setError(event.message ?? 'Display failed');
|
|
183
|
+
}
|
|
184
|
+
}),
|
|
185
|
+
);
|
|
186
|
+
|
|
187
|
+
subs.push(
|
|
188
|
+
emitter.addListener(ON_REWARDED_AD_HIDDEN_EVENT, (event: { adUnitId: string }) => {
|
|
189
|
+
if (event.adUnitId === adUnitId && mountedRef.current) {
|
|
190
|
+
setIsLoaded(false);
|
|
191
|
+
}
|
|
192
|
+
}),
|
|
193
|
+
);
|
|
194
|
+
|
|
195
|
+
subs.push(
|
|
196
|
+
emitter.addListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT, (event: { adUnitId: string }) => {
|
|
197
|
+
if (event.adUnitId === adUnitId && mountedRef.current) {
|
|
198
|
+
setRewardEarned(true);
|
|
199
|
+
}
|
|
200
|
+
}),
|
|
201
|
+
);
|
|
202
|
+
|
|
203
|
+
return () => {
|
|
204
|
+
mountedRef.current = false;
|
|
205
|
+
subs.forEach((s) => s.remove());
|
|
206
|
+
NativeCloudXModule.destroyRewarded(adUnitId);
|
|
207
|
+
};
|
|
208
|
+
}, [adUnitId]);
|
|
209
|
+
|
|
210
|
+
const load = useCallback(() => {
|
|
211
|
+
setIsLoading(true);
|
|
212
|
+
setError(null);
|
|
213
|
+
setRewardEarned(false);
|
|
214
|
+
NativeCloudXModule.loadRewarded(adUnitId);
|
|
215
|
+
}, [adUnitId]);
|
|
216
|
+
|
|
217
|
+
const show = useCallback(
|
|
218
|
+
(placement?: string | null, customData?: string | null) => {
|
|
219
|
+
if (!isLoaded) {
|
|
220
|
+
setError('Ad not loaded');
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
NativeCloudXModule.showRewarded(adUnitId, placement ?? undefined, customData ?? undefined);
|
|
224
|
+
},
|
|
225
|
+
[adUnitId, isLoaded],
|
|
226
|
+
);
|
|
227
|
+
|
|
228
|
+
const destroy = useCallback(() => {
|
|
229
|
+
NativeCloudXModule.destroyRewarded(adUnitId);
|
|
230
|
+
setIsLoaded(false);
|
|
231
|
+
setIsLoading(false);
|
|
232
|
+
setError(null);
|
|
233
|
+
setRewardEarned(false);
|
|
234
|
+
}, [adUnitId]);
|
|
235
|
+
|
|
236
|
+
return { isLoaded, isLoading, error, rewardEarned, load, show, destroy };
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// ---------------------------------------------------------------------------
|
|
240
|
+
// useCloudXBanner
|
|
241
|
+
// ---------------------------------------------------------------------------
|
|
242
|
+
|
|
243
|
+
export type BannerHookResult = {
|
|
244
|
+
isLoaded: boolean;
|
|
245
|
+
error: string | null;
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Hook for listening to programmatic banner ad state.
|
|
250
|
+
*
|
|
251
|
+
* Subscribes to module-level banner events for a given adUnitId.
|
|
252
|
+
* Use with the programmatic BannerAd.createAd() API.
|
|
253
|
+
* For the <AdView> component, use its callback props (onAdLoaded, etc.) directly.
|
|
254
|
+
*
|
|
255
|
+
* @param adUnitId - The ad unit identifier.
|
|
256
|
+
*/
|
|
257
|
+
export function useCloudXBanner(adUnitId: string): BannerHookResult {
|
|
258
|
+
const [isLoaded, setIsLoaded] = useState(false);
|
|
259
|
+
const [error, setError] = useState<string | null>(null);
|
|
260
|
+
const mountedRef = useRef(true);
|
|
261
|
+
|
|
262
|
+
useEffect(() => {
|
|
263
|
+
mountedRef.current = true;
|
|
264
|
+
const subs: EventSubscription[] = [];
|
|
265
|
+
|
|
266
|
+
subs.push(
|
|
267
|
+
emitter.addListener(ON_BANNER_AD_LOADED_EVENT, (event: { adUnitId: string }) => {
|
|
268
|
+
if (event.adUnitId === adUnitId && mountedRef.current) {
|
|
269
|
+
setIsLoaded(true);
|
|
270
|
+
setError(null);
|
|
271
|
+
}
|
|
272
|
+
}),
|
|
273
|
+
);
|
|
274
|
+
|
|
275
|
+
subs.push(
|
|
276
|
+
emitter.addListener(ON_BANNER_AD_LOAD_FAILED_EVENT, (event: { adUnitId: string; message?: string }) => {
|
|
277
|
+
if (event.adUnitId === adUnitId && mountedRef.current) {
|
|
278
|
+
setIsLoaded(false);
|
|
279
|
+
setError(event.message ?? 'Failed to load');
|
|
280
|
+
}
|
|
281
|
+
}),
|
|
282
|
+
);
|
|
283
|
+
|
|
284
|
+
return () => {
|
|
285
|
+
mountedRef.current = false;
|
|
286
|
+
subs.forEach((s) => s.remove());
|
|
287
|
+
NativeCloudXModule.destroyBanner(adUnitId);
|
|
288
|
+
};
|
|
289
|
+
}, [adUnitId]);
|
|
290
|
+
|
|
291
|
+
return { isLoaded, error };
|
|
292
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// Core SDK
|
|
2
|
+
export { default, CloudX } from './CloudX';
|
|
3
|
+
export { default as NativeCloudXModule } from './specs/NativeCloudXModule';
|
|
4
|
+
|
|
5
|
+
// Ad Modules
|
|
6
|
+
export { InterstitialAd } from './InterstitialAd';
|
|
7
|
+
export { RewardedAd } from './RewardedAd';
|
|
8
|
+
export { BannerAd } from './BannerAd';
|
|
9
|
+
export { MRecAd } from './MRecAd';
|
|
10
|
+
|
|
11
|
+
// AdView Component
|
|
12
|
+
export { AdView, AdFormat, AdViewPosition } from './AdView';
|
|
13
|
+
export type { AdViewProps, AdViewHandler } from './AdView';
|
|
14
|
+
|
|
15
|
+
// Error Codes
|
|
16
|
+
export { ErrorCode } from './ErrorCode';
|
|
17
|
+
|
|
18
|
+
// App Tracking Transparency (iOS)
|
|
19
|
+
export { requestTrackingAuthorization, getTrackingAuthorizationStatus, ATTStatus } from './AppTrackingTransparency';
|
|
20
|
+
|
|
21
|
+
// Hooks
|
|
22
|
+
export { useCloudXInterstitial, useCloudXRewarded, useCloudXBanner } from './hooks';
|
|
23
|
+
export type { InterstitialHookResult, RewardedHookResult, BannerHookResult } from './hooks';
|
|
24
|
+
|
|
25
|
+
// Types
|
|
26
|
+
export type {
|
|
27
|
+
AdInfo,
|
|
28
|
+
AdLoadFailedInfo,
|
|
29
|
+
AdDisplayFailedInfo,
|
|
30
|
+
AdRewardInfo,
|
|
31
|
+
Configuration,
|
|
32
|
+
CloudXType,
|
|
33
|
+
FullscreenAdType,
|
|
34
|
+
RewardedAdType,
|
|
35
|
+
BannerAdType,
|
|
36
|
+
MRecAdType,
|
|
37
|
+
AdViewPositionType,
|
|
38
|
+
} from './types';
|
|
39
|
+
|
|
40
|
+
// Log level constants
|
|
41
|
+
export const LogLevel = {
|
|
42
|
+
VERBOSE: 'verbose',
|
|
43
|
+
DEBUG: 'debug',
|
|
44
|
+
INFO: 'info',
|
|
45
|
+
WARN: 'warn',
|
|
46
|
+
ERROR: 'error',
|
|
47
|
+
NONE: 'none',
|
|
48
|
+
} as const;
|
|
49
|
+
|
|
50
|
+
export type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];
|