react-native-applovin-max 8.0.0 → 8.0.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.
Files changed (69) hide show
  1. package/android/build.gradle +2 -2
  2. package/lib/commonjs/AdView.js +86 -98
  3. package/lib/commonjs/AdView.js.map +1 -1
  4. package/lib/commonjs/AppLovinMAX.js +1 -1
  5. package/lib/commonjs/AppOpenAd.js +7 -7
  6. package/lib/commonjs/AppOpenAd.js.map +1 -1
  7. package/lib/commonjs/BannerAd.js +8 -8
  8. package/lib/commonjs/BannerAd.js.map +1 -1
  9. package/lib/commonjs/EventEmitter.js.map +1 -1
  10. package/lib/commonjs/InterstitialAd.js +7 -7
  11. package/lib/commonjs/InterstitialAd.js.map +1 -1
  12. package/lib/commonjs/MRecAd.js +6 -6
  13. package/lib/commonjs/MRecAd.js.map +1 -1
  14. package/lib/commonjs/RewardedAd.js +8 -8
  15. package/lib/commonjs/RewardedAd.js.map +1 -1
  16. package/lib/commonjs/nativeAd/NativeAdView.js +26 -29
  17. package/lib/commonjs/nativeAd/NativeAdView.js.map +1 -1
  18. package/lib/commonjs/nativeAd/NativeAdViewComponents.js +69 -102
  19. package/lib/commonjs/nativeAd/NativeAdViewComponents.js.map +1 -1
  20. package/lib/commonjs/nativeAd/NativeAdViewProvider.js +13 -13
  21. package/lib/commonjs/nativeAd/NativeAdViewProvider.js.map +1 -1
  22. package/lib/module/AdView.js +87 -99
  23. package/lib/module/AdView.js.map +1 -1
  24. package/lib/module/AppLovinMAX.js +1 -1
  25. package/lib/module/AppOpenAd.js +7 -7
  26. package/lib/module/AppOpenAd.js.map +1 -1
  27. package/lib/module/BannerAd.js +8 -8
  28. package/lib/module/BannerAd.js.map +1 -1
  29. package/lib/module/EventEmitter.js.map +1 -1
  30. package/lib/module/InterstitialAd.js +7 -7
  31. package/lib/module/InterstitialAd.js.map +1 -1
  32. package/lib/module/MRecAd.js +6 -6
  33. package/lib/module/MRecAd.js.map +1 -1
  34. package/lib/module/RewardedAd.js +8 -8
  35. package/lib/module/RewardedAd.js.map +1 -1
  36. package/lib/module/nativeAd/NativeAdView.js +27 -30
  37. package/lib/module/nativeAd/NativeAdView.js.map +1 -1
  38. package/lib/module/nativeAd/NativeAdViewComponents.js +71 -104
  39. package/lib/module/nativeAd/NativeAdViewComponents.js.map +1 -1
  40. package/lib/module/nativeAd/NativeAdViewProvider.js +13 -13
  41. package/lib/module/nativeAd/NativeAdViewProvider.js.map +1 -1
  42. package/lib/typescript/src/AdView.d.ts +2 -2
  43. package/lib/typescript/src/AdView.d.ts.map +1 -1
  44. package/lib/typescript/src/EventEmitter.d.ts.map +1 -1
  45. package/lib/typescript/src/nativeAd/NativeAdView.d.ts.map +1 -1
  46. package/lib/typescript/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -1
  47. package/lib/typescript/src/nativeAd/NativeAdViewProvider.d.ts +3 -2
  48. package/lib/typescript/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -1
  49. package/lib/typescript/src/types/AdInfo.d.ts +2 -2
  50. package/lib/typescript/src/types/NativeAd.d.ts +3 -3
  51. package/lib/typescript/src/types/NativeAd.d.ts.map +1 -1
  52. package/lib/typescript/src/types/Privacy.d.ts +0 -2
  53. package/lib/typescript/src/types/Privacy.d.ts.map +1 -1
  54. package/package.json +1 -1
  55. package/react-native-applovin-max.podspec +1 -1
  56. package/src/AdView.tsx +103 -92
  57. package/src/AppLovinMAX.ts +1 -1
  58. package/src/AppOpenAd.ts +21 -21
  59. package/src/BannerAd.ts +20 -20
  60. package/src/EventEmitter.ts +2 -2
  61. package/src/InterstitialAd.ts +21 -21
  62. package/src/MRecAd.ts +18 -18
  63. package/src/RewardedAd.ts +24 -24
  64. package/src/nativeAd/NativeAdView.tsx +41 -29
  65. package/src/nativeAd/NativeAdViewComponents.tsx +72 -98
  66. package/src/nativeAd/NativeAdViewProvider.tsx +21 -15
  67. package/src/types/AdInfo.ts +2 -2
  68. package/src/types/NativeAd.ts +3 -3
  69. package/src/types/Privacy.ts +0 -4
package/src/BannerAd.ts CHANGED
@@ -16,8 +16,8 @@ const {
16
16
  ON_BANNER_AD_REVENUE_PAID,
17
17
  } = AppLovinMAX.getConstants();
18
18
 
19
- const createAd = (adUnitId: string, position: AdViewPosition, xOffset?: number, yOffset?: number): void => {
20
- AppLovinMAX.createBannerWithOffsets(adUnitId, position, xOffset ?? 0, yOffset ?? 0);
19
+ const createAd = (adUnitId: string, position: AdViewPosition, xOffset: number = 0, yOffset: number = 0): void => {
20
+ AppLovinMAX.createBannerWithOffsets(adUnitId, position, xOffset, yOffset);
21
21
  AppLovinMAX.setBannerExtraParameter(adUnitId, 'adaptive_banner', 'true');
22
22
  };
23
23
 
@@ -61,51 +61,51 @@ const stopAutoRefresh = (adUnitId: string): void => {
61
61
  AppLovinMAX.stopBannerAutoRefresh(adUnitId);
62
62
  };
63
63
 
64
- const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void) => {
65
- addEventListener(ON_BANNER_AD_LOADED_EVENT, (adInfo: AdInfo) => listener(adInfo));
64
+ const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void): void => {
65
+ addEventListener(ON_BANNER_AD_LOADED_EVENT, listener);
66
66
  };
67
67
 
68
- const removeAdLoadedEventListener = () => {
68
+ const removeAdLoadedEventListener = (): void => {
69
69
  removeEventListener(ON_BANNER_AD_LOADED_EVENT);
70
70
  };
71
71
 
72
- const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void) => {
73
- addEventListener(ON_BANNER_AD_LOAD_FAILED_EVENT, (errorInfo: AdLoadFailedInfo) => listener(errorInfo));
72
+ const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void): void => {
73
+ addEventListener(ON_BANNER_AD_LOAD_FAILED_EVENT, listener);
74
74
  };
75
75
 
76
- const removeAdLoadFailedEventListener = () => {
76
+ const removeAdLoadFailedEventListener = (): void => {
77
77
  removeEventListener(ON_BANNER_AD_LOAD_FAILED_EVENT);
78
78
  };
79
79
 
80
- const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void) => {
81
- addEventListener(ON_BANNER_AD_CLICKED_EVENT, (adInfo: AdInfo) => listener(adInfo));
80
+ const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void): void => {
81
+ addEventListener(ON_BANNER_AD_CLICKED_EVENT, listener);
82
82
  };
83
83
 
84
- const removeAdClickedEventListener = () => {
84
+ const removeAdClickedEventListener = (): void => {
85
85
  removeEventListener(ON_BANNER_AD_CLICKED_EVENT);
86
86
  };
87
87
 
88
- const addAdCollapsedEventListener = (listener: (adInfo: AdInfo) => void) => {
89
- addEventListener(ON_BANNER_AD_COLLAPSED_EVENT, (adInfo: AdInfo) => listener(adInfo));
88
+ const addAdCollapsedEventListener = (listener: (adInfo: AdInfo) => void): void => {
89
+ addEventListener(ON_BANNER_AD_COLLAPSED_EVENT, listener);
90
90
  };
91
91
 
92
- const removeAdCollapsedEventListener = () => {
92
+ const removeAdCollapsedEventListener = (): void => {
93
93
  removeEventListener(ON_BANNER_AD_COLLAPSED_EVENT);
94
94
  };
95
95
 
96
- const addAdExpandedEventListener = (listener: (adInfo: AdInfo) => void) => {
97
- addEventListener(ON_BANNER_AD_EXPANDED_EVENT, (adInfo: AdInfo) => listener(adInfo));
96
+ const addAdExpandedEventListener = (listener: (adInfo: AdInfo) => void): void => {
97
+ addEventListener(ON_BANNER_AD_EXPANDED_EVENT, listener);
98
98
  };
99
99
 
100
- const removeAdExpandedEventListener = () => {
100
+ const removeAdExpandedEventListener = (): void => {
101
101
  removeEventListener(ON_BANNER_AD_EXPANDED_EVENT);
102
102
  };
103
103
 
104
- const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void) => {
105
- addEventListener(ON_BANNER_AD_REVENUE_PAID, (adInfo: AdRevenueInfo) => listener(adInfo));
104
+ const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void): void => {
105
+ addEventListener(ON_BANNER_AD_REVENUE_PAID, listener);
106
106
  };
107
107
 
108
- const removeAdRevenuePaidListener = () => {
108
+ const removeAdRevenuePaidListener = (): void => {
109
109
  removeEventListener(ON_BANNER_AD_REVENUE_PAID);
110
110
  };
111
111
 
@@ -9,7 +9,7 @@ const emitter = new NativeEventEmitter(AppLovinMAX);
9
9
 
10
10
  const subscriptions: Record<string, EventSubscription> = {};
11
11
 
12
- export const addEventListener = <T extends AdEventObject>(event: string, handler: AdEventListener<T>) => {
12
+ export const addEventListener = <T extends AdEventObject>(event: string, handler: AdEventListener<T>): void => {
13
13
  const subscription: EventSubscription = emitter.addListener(event, handler);
14
14
  const currentSubscription = subscriptions[event];
15
15
  if (currentSubscription) {
@@ -18,7 +18,7 @@ export const addEventListener = <T extends AdEventObject>(event: string, handler
18
18
  subscriptions[event] = subscription;
19
19
  };
20
20
 
21
- export const removeEventListener = (event: string) => {
21
+ export const removeEventListener = (event: string): void => {
22
22
  const currentSubscription = subscriptions[event];
23
23
  if (currentSubscription) {
24
24
  currentSubscription.remove();
@@ -36,59 +36,59 @@ const setLocalExtraParameter = (adUnitId: string, key: string, value: LocalExtra
36
36
  AppLovinMAX.setInterstitialLocalExtraParameter(adUnitId, { [key]: value });
37
37
  };
38
38
 
39
- const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void) => {
40
- addEventListener(ON_INTERSTITIAL_LOADED_EVENT, (adInfo: AdInfo) => listener(adInfo));
39
+ const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void): void => {
40
+ addEventListener(ON_INTERSTITIAL_LOADED_EVENT, listener);
41
41
  };
42
42
 
43
- const removeAdLoadedEventListener = () => {
43
+ const removeAdLoadedEventListener = (): void => {
44
44
  removeEventListener(ON_INTERSTITIAL_LOADED_EVENT);
45
45
  };
46
46
 
47
- const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void) => {
48
- addEventListener(ON_INTERSTITIAL_LOAD_FAILED_EVENT, (errorInfo: AdLoadFailedInfo) => listener(errorInfo));
47
+ const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void): void => {
48
+ addEventListener(ON_INTERSTITIAL_LOAD_FAILED_EVENT, listener);
49
49
  };
50
50
 
51
- const removeAdLoadFailedEventListener = () => {
51
+ const removeAdLoadFailedEventListener = (): void => {
52
52
  removeEventListener(ON_INTERSTITIAL_LOAD_FAILED_EVENT);
53
53
  };
54
54
 
55
- const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void) => {
56
- addEventListener(ON_INTERSTITIAL_CLICKED_EVENT, (adInfo: AdInfo) => listener(adInfo));
55
+ const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void): void => {
56
+ addEventListener(ON_INTERSTITIAL_CLICKED_EVENT, listener);
57
57
  };
58
58
 
59
- const removeAdClickedEventListener = () => {
59
+ const removeAdClickedEventListener = (): void => {
60
60
  removeEventListener(ON_INTERSTITIAL_CLICKED_EVENT);
61
61
  };
62
62
 
63
- const addAdDisplayedEventListener = (listener: (adInfo: AdInfo) => void) => {
64
- addEventListener(ON_INTERSTITIAL_DISPLAYED_EVENT, (adInfo: AdInfo) => listener(adInfo));
63
+ const addAdDisplayedEventListener = (listener: (adInfo: AdInfo) => void): void => {
64
+ addEventListener(ON_INTERSTITIAL_DISPLAYED_EVENT, listener);
65
65
  };
66
66
 
67
- const removeAdDisplayedEventListener = () => {
67
+ const removeAdDisplayedEventListener = (): void => {
68
68
  removeEventListener(ON_INTERSTITIAL_DISPLAYED_EVENT);
69
69
  };
70
70
 
71
- const addAdFailedToDisplayEventListener = (listener: (errorInfo: AdDisplayFailedInfo) => void) => {
72
- addEventListener(ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT, (errorInfo: AdDisplayFailedInfo) => listener(errorInfo));
71
+ const addAdFailedToDisplayEventListener = (listener: (errorInfo: AdDisplayFailedInfo) => void): void => {
72
+ addEventListener(ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT, listener);
73
73
  };
74
74
 
75
- const removeAdFailedToDisplayEventListener = () => {
75
+ const removeAdFailedToDisplayEventListener = (): void => {
76
76
  removeEventListener(ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT);
77
77
  };
78
78
 
79
- const addAdHiddenEventListener = (listener: (adInfo: AdInfo) => void) => {
80
- addEventListener(ON_INTERSTITIAL_HIDDEN_EVENT, (adInfo: AdInfo) => listener(adInfo));
79
+ const addAdHiddenEventListener = (listener: (adInfo: AdInfo) => void): void => {
80
+ addEventListener(ON_INTERSTITIAL_HIDDEN_EVENT, listener);
81
81
  };
82
82
 
83
- const removeAdHiddenEventListener = () => {
83
+ const removeAdHiddenEventListener = (): void => {
84
84
  removeEventListener(ON_INTERSTITIAL_HIDDEN_EVENT);
85
85
  };
86
86
 
87
- const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void) => {
88
- addEventListener(ON_INTERSTITIAL_AD_REVENUE_PAID, (adInfo: AdRevenueInfo) => listener(adInfo));
87
+ const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void): void => {
88
+ addEventListener(ON_INTERSTITIAL_AD_REVENUE_PAID, listener);
89
89
  };
90
90
 
91
- const removeAdRevenuePaidListener = () => {
91
+ const removeAdRevenuePaidListener = (): void => {
92
92
  removeEventListener(ON_INTERSTITIAL_AD_REVENUE_PAID);
93
93
  };
94
94
 
package/src/MRecAd.ts CHANGED
@@ -54,51 +54,51 @@ const stopAutoRefresh = (adUnitId: string): void => {
54
54
  AppLovinMAX.stopMRecAutoRefresh(adUnitId);
55
55
  };
56
56
 
57
- const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void) => {
58
- addEventListener(ON_MREC_AD_LOADED_EVENT, (adInfo: AdInfo) => listener(adInfo));
57
+ const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void): void => {
58
+ addEventListener(ON_MREC_AD_LOADED_EVENT, listener);
59
59
  };
60
60
 
61
- const removeAdLoadedEventListener = () => {
61
+ const removeAdLoadedEventListener = (): void => {
62
62
  removeEventListener(ON_MREC_AD_LOADED_EVENT);
63
63
  };
64
64
 
65
- const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void) => {
66
- addEventListener(ON_MREC_AD_LOAD_FAILED_EVENT, (errorInfo: AdLoadFailedInfo) => listener(errorInfo));
65
+ const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void): void => {
66
+ addEventListener(ON_MREC_AD_LOAD_FAILED_EVENT, listener);
67
67
  };
68
68
 
69
- const removeAdLoadFailedEventListener = () => {
69
+ const removeAdLoadFailedEventListener = (): void => {
70
70
  removeEventListener(ON_MREC_AD_LOAD_FAILED_EVENT);
71
71
  };
72
72
 
73
- const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void) => {
74
- addEventListener(ON_MREC_AD_CLICKED_EVENT, (adInfo: AdInfo) => listener(adInfo));
73
+ const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void): void => {
74
+ addEventListener(ON_MREC_AD_CLICKED_EVENT, listener);
75
75
  };
76
76
 
77
- const removeAdClickedEventListener = () => {
77
+ const removeAdClickedEventListener = (): void => {
78
78
  removeEventListener(ON_MREC_AD_CLICKED_EVENT);
79
79
  };
80
80
 
81
- const addAdCollapsedEventListener = (listener: (adInfo: AdInfo) => void) => {
82
- addEventListener(ON_MREC_AD_COLLAPSED_EVENT, (adInfo: AdInfo) => listener(adInfo));
81
+ const addAdCollapsedEventListener = (listener: (adInfo: AdInfo) => void): void => {
82
+ addEventListener(ON_MREC_AD_COLLAPSED_EVENT, listener);
83
83
  };
84
84
 
85
- const removeAdCollapsedEventListener = () => {
85
+ const removeAdCollapsedEventListener = (): void => {
86
86
  removeEventListener(ON_MREC_AD_COLLAPSED_EVENT);
87
87
  };
88
88
 
89
- const addAdExpandedEventListener = (listener: (adInfo: AdInfo) => void) => {
90
- addEventListener(ON_MREC_AD_EXPANDED_EVENT, (adInfo: AdInfo) => listener(adInfo));
89
+ const addAdExpandedEventListener = (listener: (adInfo: AdInfo) => void): void => {
90
+ addEventListener(ON_MREC_AD_EXPANDED_EVENT, listener);
91
91
  };
92
92
 
93
- const removeAdExpandedEventListener = () => {
93
+ const removeAdExpandedEventListener = (): void => {
94
94
  removeEventListener(ON_MREC_AD_EXPANDED_EVENT);
95
95
  };
96
96
 
97
- const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void) => {
98
- addEventListener(ON_MREC_AD_REVENUE_PAID, (adInfo: AdRevenueInfo) => listener(adInfo));
97
+ const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void): void => {
98
+ addEventListener(ON_MREC_AD_REVENUE_PAID, listener);
99
99
  };
100
100
 
101
- const removeAdRevenuePaidListener = () => {
101
+ const removeAdRevenuePaidListener = (): void => {
102
102
  removeEventListener(ON_MREC_AD_REVENUE_PAID);
103
103
  };
104
104
 
package/src/RewardedAd.ts CHANGED
@@ -37,69 +37,69 @@ const setLocalExtraParameter = (adUnitId: string, key: string, value: LocalExtra
37
37
  AppLovinMAX.setRewardedAdLocalExtraParameter(adUnitId, { [key]: value });
38
38
  };
39
39
 
40
- const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void) => {
41
- addEventListener(ON_REWARDED_AD_LOADED_EVENT, (adInfo: AdInfo) => listener(adInfo));
40
+ const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void): void => {
41
+ addEventListener(ON_REWARDED_AD_LOADED_EVENT, listener);
42
42
  };
43
43
 
44
- const removeAdLoadedEventListener = () => {
44
+ const removeAdLoadedEventListener = (): void => {
45
45
  removeEventListener(ON_REWARDED_AD_LOADED_EVENT);
46
46
  };
47
47
 
48
- const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void) => {
49
- addEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT, (errorInfo: AdLoadFailedInfo) => listener(errorInfo));
48
+ const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void): void => {
49
+ addEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT, listener);
50
50
  };
51
51
 
52
- const removeAdLoadFailedEventListener = () => {
52
+ const removeAdLoadFailedEventListener = (): void => {
53
53
  removeEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT);
54
54
  };
55
55
 
56
- const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void) => {
57
- addEventListener(ON_REWARDED_AD_CLICKED_EVENT, (adInfo: AdInfo) => listener(adInfo));
56
+ const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void): void => {
57
+ addEventListener(ON_REWARDED_AD_CLICKED_EVENT, listener);
58
58
  };
59
59
 
60
- const removeAdClickedEventListener = () => {
60
+ const removeAdClickedEventListener = (): void => {
61
61
  removeEventListener(ON_REWARDED_AD_CLICKED_EVENT);
62
62
  };
63
63
 
64
- const addAdDisplayedEventListener = (listener: (adInfo: AdInfo) => void) => {
65
- addEventListener(ON_REWARDED_AD_DISPLAYED_EVENT, (adInfo: AdInfo) => listener(adInfo));
64
+ const addAdDisplayedEventListener = (listener: (adInfo: AdInfo) => void): void => {
65
+ addEventListener(ON_REWARDED_AD_DISPLAYED_EVENT, listener);
66
66
  };
67
67
 
68
- const removeAdDisplayedEventListener = () => {
68
+ const removeAdDisplayedEventListener = (): void => {
69
69
  removeEventListener(ON_REWARDED_AD_DISPLAYED_EVENT);
70
70
  };
71
71
 
72
- const addAdFailedToDisplayEventListener = (listener: (errorInfo: AdDisplayFailedInfo) => void) => {
73
- addEventListener(ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT, (errorInfo: AdDisplayFailedInfo) => listener(errorInfo));
72
+ const addAdFailedToDisplayEventListener = (listener: (errorInfo: AdDisplayFailedInfo) => void): void => {
73
+ addEventListener(ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT, listener);
74
74
  };
75
75
 
76
- const removeAdFailedToDisplayEventListener = () => {
76
+ const removeAdFailedToDisplayEventListener = (): void => {
77
77
  removeEventListener(ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT);
78
78
  };
79
79
 
80
- const addAdHiddenEventListener = (listener: (adInfo: AdInfo) => void) => {
81
- addEventListener(ON_REWARDED_AD_HIDDEN_EVENT, (adInfo: AdInfo) => listener(adInfo));
80
+ const addAdHiddenEventListener = (listener: (adInfo: AdInfo) => void): void => {
81
+ addEventListener(ON_REWARDED_AD_HIDDEN_EVENT, listener);
82
82
  };
83
83
 
84
- const removeAdHiddenEventListener = () => {
84
+ const removeAdHiddenEventListener = (): void => {
85
85
  removeEventListener(ON_REWARDED_AD_HIDDEN_EVENT);
86
86
  };
87
87
 
88
- const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void) => {
89
- addEventListener(ON_REWARDED_AD_REVENUE_PAID, (adInfo: AdRevenueInfo) => listener(adInfo));
88
+ const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void): void => {
89
+ addEventListener(ON_REWARDED_AD_REVENUE_PAID, listener);
90
90
  };
91
91
 
92
- const removeAdRevenuePaidListener = () => {
92
+ const removeAdRevenuePaidListener = (): void => {
93
93
  removeEventListener(ON_REWARDED_AD_REVENUE_PAID);
94
94
  };
95
95
 
96
96
  // Rewarded specific APIs
97
97
 
98
- const addAdReceivedRewardEventListener = (listener: (adInfo: AdRewardInfo) => void) => {
99
- addEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT, (adInfo: AdRewardInfo) => listener(adInfo));
98
+ const addAdReceivedRewardEventListener = (listener: (adInfo: AdRewardInfo) => void): void => {
99
+ addEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT, listener);
100
100
  };
101
101
 
102
- const removeAdReceivedRewardEventListener = () => {
102
+ const removeAdReceivedRewardEventListener = (): void => {
103
103
  removeEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT);
104
104
  };
105
105
 
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { forwardRef, useContext, useImperativeHandle, useRef, useState, useEffect, useCallback } from 'react';
3
- import { NativeModules, requireNativeComponent, UIManager, findNodeHandle } from 'react-native';
3
+ import { NativeModules, requireNativeComponent, UIManager, findNodeHandle, View } from 'react-native';
4
4
  import type { ViewProps } from 'react-native';
5
5
  import { NativeAdViewContext, NativeAdViewProvider } from './NativeAdViewProvider';
6
6
  import type { AdInfo, AdLoadFailedInfo, AdRevenueInfo } from '../types/AdInfo';
@@ -61,18 +61,20 @@ export const NativeAdView = forwardRef<NativeAdViewHandler, NativeAdViewProps &
61
61
  const [isInitialized, setIsInitialized] = useState<boolean>(false);
62
62
 
63
63
  useEffect(() => {
64
- // check that AppLovinMAX has been initialized
65
- AppLovinMAX.isInitialized().then((result: boolean) => {
64
+ const checkInitialization = async () => {
65
+ const result = await AppLovinMAX.isInitialized();
66
66
  setIsInitialized(result);
67
67
  if (!result) {
68
- console.warn('NativeAdView is mounted before the initialization of the AppLovin MAX React Native module');
68
+ console.warn('NativeAdView is mounted before the initialization of the AppLovin MAX React Native module.');
69
69
  }
70
- });
70
+ };
71
+
72
+ checkInitialization();
71
73
  }, []);
72
74
 
73
- // Not ready to render NativeAdView
75
+ // Avoid rendering the NativeAdView if the SDK is not initialized
74
76
  if (!isInitialized) {
75
- return null;
77
+ return <View {...props} />;
76
78
  }
77
79
 
78
80
  return (
@@ -86,15 +88,14 @@ const NativeAdViewImpl = forwardRef<NativeAdViewHandler, NativeAdViewProps & Vie
86
88
  { adUnitId, placement, customData, extraParameters, localExtraParameters, onAdLoaded, onAdLoadFailed, onAdClicked, onAdRevenuePaid, children, style, ...otherProps },
87
89
  ref
88
90
  ) {
89
- // context from NativeAdViewProvider
91
+ // Context provides functions to manage native ad and native ad view state
90
92
  const { setNativeAd, setNativeAdView } = useContext(NativeAdViewContext) as NativeAdViewContextType;
91
93
 
92
- // keep the nativeAdView ref
93
94
  const nativeAdViewRef = useRef<NativeAdViewType | null>(null);
94
95
 
95
- // invoke the native ad loader
96
- const loadAd = () => {
97
- if (nativeAdViewRef) {
96
+ // Load a new ad
97
+ const loadAd = useCallback(() => {
98
+ if (nativeAdViewRef.current) {
98
99
  UIManager.dispatchViewManagerCommand(
99
100
  findNodeHandle(nativeAdViewRef.current),
100
101
  // @ts-ignore: Issue in RN ts defs
@@ -102,12 +103,11 @@ const NativeAdViewImpl = forwardRef<NativeAdViewHandler, NativeAdViewProps & Vie
102
103
  undefined
103
104
  );
104
105
  }
105
- };
106
+ }, []);
106
107
 
107
- // expose a list of functions via the provided ref
108
- useImperativeHandle(ref, () => ({ loadAd }), []);
108
+ useImperativeHandle(ref, () => ({ loadAd }), [loadAd]);
109
109
 
110
- // save the DOM element via the ref callback
110
+ // Save the DOM element reference
111
111
  const saveElement = useCallback(
112
112
  (element: NativeAdViewType | null) => {
113
113
  if (element) {
@@ -118,22 +118,34 @@ const NativeAdViewImpl = forwardRef<NativeAdViewHandler, NativeAdViewProps & Vie
118
118
  [setNativeAdView]
119
119
  );
120
120
 
121
- const onAdLoadedEvent = (event: { nativeEvent: { nativeAd: NativeAd; adInfo: AdInfo } }) => {
122
- setNativeAd(event.nativeEvent.nativeAd);
123
- if (onAdLoaded) onAdLoaded(event.nativeEvent.adInfo);
124
- };
121
+ const onAdLoadedEvent = useCallback(
122
+ (event: { nativeEvent: { nativeAd: NativeAd; adInfo: AdInfo } }) => {
123
+ setNativeAd(event.nativeEvent.nativeAd);
124
+ onAdLoaded?.(event.nativeEvent.adInfo);
125
+ },
126
+ [onAdLoaded, setNativeAd]
127
+ );
125
128
 
126
- const onAdLoadFailedEvent = (event: AdNativeEvent<AdLoadFailedInfo>) => {
127
- if (onAdLoadFailed) onAdLoadFailed(event.nativeEvent);
128
- };
129
+ const onAdLoadFailedEvent = useCallback(
130
+ (event: AdNativeEvent<AdLoadFailedInfo>) => {
131
+ onAdLoadFailed?.(event.nativeEvent);
132
+ },
133
+ [onAdLoadFailed]
134
+ );
129
135
 
130
- const onAdClickedEvent = (event: AdNativeEvent<AdInfo>) => {
131
- if (onAdClicked) onAdClicked(event.nativeEvent);
132
- };
136
+ const onAdClickedEvent = useCallback(
137
+ (event: AdNativeEvent<AdInfo>) => {
138
+ onAdClicked?.(event.nativeEvent);
139
+ },
140
+ [onAdClicked]
141
+ );
133
142
 
134
- const onAdRevenuePaidEvent = (event: AdNativeEvent<AdRevenueInfo>) => {
135
- if (onAdRevenuePaid) onAdRevenuePaid(event.nativeEvent);
136
- };
143
+ const onAdRevenuePaidEvent = useCallback(
144
+ (event: AdNativeEvent<AdRevenueInfo>) => {
145
+ onAdRevenuePaid?.(event.nativeEvent);
146
+ },
147
+ [onAdRevenuePaid]
148
+ );
137
149
 
138
150
  return (
139
151
  <NativeAdViewComponent