react-native-applovin-max 4.1.6 → 5.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.
@@ -0,0 +1,419 @@
1
+ import { NativeModules, NativeEventEmitter } from "react-native";
2
+
3
+ const { AppLovinMAX } = NativeModules;
4
+
5
+ const {
6
+ ON_MREC_AD_LOADED_EVENT,
7
+ ON_MREC_AD_LOAD_FAILED_EVENT,
8
+ ON_MREC_AD_CLICKED_EVENT,
9
+ ON_MREC_AD_COLLAPSED_EVENT,
10
+ ON_MREC_AD_EXPANDED_EVENT,
11
+ ON_MREC_AD_REVENUE_PAID,
12
+
13
+ ON_BANNER_AD_LOADED_EVENT,
14
+ ON_BANNER_AD_LOAD_FAILED_EVENT,
15
+ ON_BANNER_AD_CLICKED_EVENT,
16
+ ON_BANNER_AD_COLLAPSED_EVENT,
17
+ ON_BANNER_AD_EXPANDED_EVENT,
18
+ ON_BANNER_AD_REVENUE_PAID,
19
+
20
+ ON_INTERSTITIAL_LOADED_EVENT,
21
+ ON_INTERSTITIAL_LOAD_FAILED_EVENT,
22
+ ON_INTERSTITIAL_CLICKED_EVENT,
23
+ ON_INTERSTITIAL_DISPLAYED_EVENT,
24
+ ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT,
25
+ ON_INTERSTITIAL_HIDDEN_EVENT,
26
+ ON_INTERSTITIAL_AD_REVENUE_PAID,
27
+
28
+ ON_REWARDED_AD_LOADED_EVENT,
29
+ ON_REWARDED_AD_LOAD_FAILED_EVENT,
30
+ ON_REWARDED_AD_CLICKED_EVENT,
31
+ ON_REWARDED_AD_DISPLAYED_EVENT,
32
+ ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT,
33
+ ON_REWARDED_AD_HIDDEN_EVENT,
34
+ ON_REWARDED_AD_RECEIVED_REWARD_EVENT,
35
+ ON_REWARDED_AD_REVENUE_PAID,
36
+
37
+ ON_APPOPEN_AD_LOADED_EVENT,
38
+ ON_APPOPEN_AD_LOAD_FAILED_EVENT,
39
+ ON_APPOPEN_AD_CLICKED_EVENT,
40
+ ON_APPOPEN_AD_DISPLAYED_EVENT,
41
+ ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT,
42
+ ON_APPOPEN_AD_HIDDEN_EVENT,
43
+ ON_APPOPEN_AD_REVENUE_PAID,
44
+ } = AppLovinMAX.getConstants();
45
+
46
+ const emitter = new NativeEventEmitter(AppLovinMAX);
47
+ const subscriptions = {};
48
+
49
+ const addEventListener = (event, handler) => {
50
+ let subscription = emitter.addListener(event, handler);
51
+ let currentSubscription = subscriptions[event];
52
+ if (currentSubscription) {
53
+ currentSubscription.remove();
54
+ }
55
+ subscriptions[event] = subscription;
56
+ };
57
+
58
+ const removeEventListener = (event) => {
59
+ let currentSubscription = subscriptions[event];
60
+ if (currentSubscription) {
61
+ currentSubscription.remove();
62
+ delete subscriptions[event];
63
+ }
64
+ };
65
+
66
+ const addMRecAdLoadedEventListener = (listener) => {
67
+ addEventListener(ON_MREC_AD_LOADED_EVENT, (adInfo) => listener(adInfo));
68
+ };
69
+
70
+ const removeMRecAdLoadedEventListener = () => {
71
+ removeEventListener(ON_MREC_AD_LOADED_EVENT);
72
+ };
73
+
74
+ const addMRecAdLoadFailedEventListener = (listener) => {
75
+ addEventListener(ON_MREC_AD_LOAD_FAILED_EVENT, (errorInfo) => listener(errorInfo));
76
+ };
77
+
78
+ const removeMRecAdLoadFailedEventListener = () => {
79
+ removeEventListener(ON_MREC_AD_LOAD_FAILED_EVENT);
80
+ };
81
+
82
+ const addMRecAdClickedEventListener = (listener) => {
83
+ addEventListener(ON_MREC_AD_CLICKED_EVENT, (adInfo) => listener(adInfo));
84
+ };
85
+
86
+ const removeMRecAdClickedEventListener = () => {
87
+ removeEventListener(ON_MREC_AD_CLICKED_EVENT);
88
+ };
89
+
90
+ const addMRecAdCollapsedEventListener = (listener) => {
91
+ addEventListener(ON_MREC_AD_COLLAPSED_EVENT, (adInfo) => listener(adInfo));
92
+ };
93
+
94
+ const removeMRecAdCollapsedEventListener = () => {
95
+ removeEventListener(ON_MREC_AD_COLLAPSED_EVENT);
96
+ };
97
+
98
+ const addMRecAdExpandedEventListener = (listener) => {
99
+ addEventListener(ON_MREC_AD_EXPANDED_EVENT, (adInfo) => listener(adInfo));
100
+ };
101
+
102
+ const removeMRecAdExpandedEventListener = () => {
103
+ removeEventListener(ON_MREC_AD_EXPANDED_EVENT);
104
+ };
105
+
106
+ const addMRecAdRevenuePaidListener = (listener) => {
107
+ addEventListener(ON_MREC_AD_REVENUE_PAID, (adInfo) => listener(adInfo));
108
+ };
109
+
110
+ const removeMRecAdRevenuePaidListener = () => {
111
+ removeEventListener(ON_MREC_AD_REVENUE_PAID);
112
+ };
113
+
114
+ const addBannerAdLoadedEventListener = (listener) => {
115
+ addEventListener(ON_BANNER_AD_LOADED_EVENT, (adInfo) => listener(adInfo));
116
+ };
117
+
118
+ const removeBannerAdLoadedEventListener = () => {
119
+ removeEventListener(ON_BANNER_AD_LOADED_EVENT);
120
+ };
121
+
122
+ const addBannerAdLoadFailedEventListener = (listener) => {
123
+ addEventListener(ON_BANNER_AD_LOAD_FAILED_EVENT, (errorInfo) => listener(errorInfo));
124
+ };
125
+
126
+ const removeBannerAdLoadFailedEventListener = () => {
127
+ removeEventListener(ON_BANNER_AD_LOAD_FAILED_EVENT);
128
+ };
129
+
130
+ const addBannerAdClickedEventListener = (listener) => {
131
+ addEventListener(ON_BANNER_AD_CLICKED_EVENT, (adInfo) => listener(adInfo));
132
+ };
133
+
134
+ const removeBannerAdClickedEventListener = () => {
135
+ removeEventListener(ON_BANNER_AD_CLICKED_EVENT);
136
+ };
137
+
138
+ const addBannerAdCollapsedEventListener = (listener) => {
139
+ addEventListener(ON_BANNER_AD_COLLAPSED_EVENT, (adInfo) => listener(adInfo));
140
+ };
141
+
142
+ const removeBannerAdCollapsedEventListener = () => {
143
+ removeEventListener(ON_BANNER_AD_COLLAPSED_EVENT);
144
+ };
145
+
146
+ const addBannerAdExpandedEventListener = (listener) => {
147
+ addEventListener(ON_BANNER_AD_EXPANDED_EVENT, (adInfo) => listener(adInfo));
148
+ };
149
+
150
+ const removeBannerAdExpandedEventListener = () => {
151
+ removeEventListener(ON_BANNER_AD_EXPANDED_EVENT);
152
+ };
153
+
154
+ const addBannerAdRevenuePaidListener = (listener) => {
155
+ addEventListener(ON_BANNER_AD_REVENUE_PAID, (adInfo) => listener(adInfo));
156
+ };
157
+
158
+ const removeBannerAdRevenuePaidListener = () => {
159
+ removeEventListener(ON_BANNER_AD_REVENUE_PAID);
160
+ };
161
+
162
+ const addInterstitialLoadedEventListener = (listener) => {
163
+ addEventListener(ON_INTERSTITIAL_LOADED_EVENT, (adInfo) => listener(adInfo));
164
+ };
165
+
166
+ const removeInterstitialLoadedEventListener = () => {
167
+ removeEventListener(ON_INTERSTITIAL_LOADED_EVENT);
168
+ };
169
+
170
+ const addInterstitialLoadFailedEventListener = (listener) => {
171
+ addEventListener(ON_INTERSTITIAL_LOAD_FAILED_EVENT, (errorInfo) => listener(errorInfo));
172
+ };
173
+
174
+ const removeInterstitialLoadFailedEventListener = () => {
175
+ removeEventListener(ON_INTERSTITIAL_LOAD_FAILED_EVENT);
176
+ };
177
+
178
+ const addInterstitialClickedEventListener = (listener) => {
179
+ addEventListener(ON_INTERSTITIAL_CLICKED_EVENT, (adInfo) => listener(adInfo));
180
+ };
181
+
182
+ const removeInterstitialClickedEventListener = () => {
183
+ removeEventListener(ON_INTERSTITIAL_CLICKED_EVENT);
184
+ };
185
+
186
+ const addInterstitialDisplayedEventListener = (listener) => {
187
+ addEventListener(ON_INTERSTITIAL_DISPLAYED_EVENT, (adInfo) => listener(adInfo));
188
+ };
189
+
190
+ const removeInterstitialDisplayedEventListener = () => {
191
+ removeEventListener(ON_INTERSTITIAL_DISPLAYED_EVENT);
192
+ };
193
+
194
+ const addInterstitialAdFailedToDisplayEventListener = (listener) => {
195
+ addEventListener(ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT, (adInfo) => listener(adInfo));
196
+ };
197
+
198
+ const removeInterstitialAdFailedToDisplayEventListener = () => {
199
+ removeEventListener(ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT);
200
+ };
201
+
202
+ const addInterstitialHiddenEventListener = (listener) => {
203
+ addEventListener(ON_INTERSTITIAL_HIDDEN_EVENT, (adInfo) => listener(adInfo));
204
+ };
205
+
206
+ const removeInterstitialHiddenEventListener = () => {
207
+ removeEventListener(ON_INTERSTITIAL_HIDDEN_EVENT);
208
+ };
209
+
210
+ const addInterstitialAdRevenuePaidListener = (listener) => {
211
+ addEventListener(ON_INTERSTITIAL_AD_REVENUE_PAID, (adInfo) => listener(adInfo));
212
+ };
213
+
214
+ const removeInterstitialAdRevenuePaidListener = () => {
215
+ removeEventListener(ON_INTERSTITIAL_AD_REVENUE_PAID);
216
+ };
217
+
218
+ const addRewardedAdLoadedEventListener = (listener) => {
219
+ addEventListener(ON_REWARDED_AD_LOADED_EVENT, (adInfo) => listener(adInfo));
220
+ };
221
+
222
+ const removeRewardedAdLoadedEventListener = () => {
223
+ removeEventListener(ON_REWARDED_AD_LOADED_EVENT);
224
+ };
225
+
226
+ const addRewardedAdLoadFailedEventListener = (listener) => {
227
+ addEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT, (errorInfo) => listener(errorInfo));
228
+ };
229
+
230
+ const removeRewardedAdLoadFailedEventListener = () => {
231
+ removeEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT);
232
+ };
233
+
234
+ const addRewardedAdClickedEventListener = (listener) => {
235
+ addEventListener(ON_REWARDED_AD_CLICKED_EVENT, (adInfo) => listener(adInfo));
236
+ };
237
+
238
+ const removeRewardedAdClickedEventListener = () => {
239
+ removeEventListener(ON_REWARDED_AD_CLICKED_EVENT);
240
+ };
241
+
242
+ const addRewardedAdDisplayedEventListener = (listener) => {
243
+ addEventListener(ON_REWARDED_AD_DISPLAYED_EVENT, (adInfo) => listener(adInfo));
244
+ };
245
+
246
+ const removeRewardedAdDisplayedEventListener = () => {
247
+ removeEventListener(ON_REWARDED_AD_DISPLAYED_EVENT);
248
+ };
249
+
250
+ const addRewardedAdFailedToDisplayEventListener = (listener) => {
251
+ addEventListener(ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT, (adInfo) => listener(adInfo));
252
+ };
253
+
254
+ const removeRewardedAdFailedToDisplayEventListener = () => {
255
+ removeEventListener(ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT);
256
+ };
257
+
258
+ const addRewardedAdHiddenEventListener = (listener) => {
259
+ addEventListener(ON_REWARDED_AD_HIDDEN_EVENT, (adInfo) => listener(adInfo));
260
+ };
261
+
262
+ const removeRewardedAdHiddenEventListener = () => {
263
+ removeEventListener(ON_REWARDED_AD_HIDDEN_EVENT);
264
+ };
265
+
266
+ const addRewardedAdReceivedRewardEventListener = (listener) => {
267
+ addEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT, (adInfo) => listener(adInfo));
268
+ };
269
+
270
+ const removeRewardedAdReceivedRewardEventListener = () => {
271
+ removeEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT);
272
+ };
273
+
274
+ const addRewardedAdRevenuePaidListener = (listener) => {
275
+ addEventListener(ON_REWARDED_AD_REVENUE_PAID, (adInfo) => listener(adInfo));
276
+ };
277
+
278
+ const removeRewardedAdRevenuePaidListener = () => {
279
+ removeEventListener(ON_REWARDED_AD_REVENUE_PAID);
280
+ };
281
+
282
+ const addAppOpenAdLoadedEventListener = (listener) => {
283
+ addEventListener(ON_APPOPEN_AD_LOADED_EVENT, (adInfo) => listener(adInfo));
284
+ };
285
+
286
+ const removeAppOpenAdLoadedEventListener = () => {
287
+ removeEventListener(ON_APPOPEN_AD_LOADED_EVENT);
288
+ };
289
+
290
+ const addAppOpenAdLoadFailedEventListener = (listener) => {
291
+ addEventListener(ON_APPOPEN_AD_LOAD_FAILED_EVENT, (errorInfo) => listener(errorInfo));
292
+ };
293
+
294
+ const removeAppOpenAdLoadFailedEventListener = () => {
295
+ removeEventListener(ON_APPOPEN_AD_LOAD_FAILED_EVENT);
296
+ };
297
+
298
+ const addAppOpenAdClickedEventListener = (listener) => {
299
+ addEventListener(ON_APPOPEN_AD_CLICKED_EVENT, (adInfo) => listener(adInfo));
300
+ };
301
+
302
+ const removeAppOpenAdClickedEventListener = () => {
303
+ removeEventListener(ON_APPOPEN_AD_CLICKED_EVENT);
304
+ };
305
+
306
+ const addAppOpenAdDisplayedEventListener = (listener) => {
307
+ addEventListener(ON_APPOPEN_AD_DISPLAYED_EVENT, (adInfo) => listener(adInfo));
308
+ };
309
+
310
+ const removeAppOpenAdDisplayedEventListener = () => {
311
+ removeEventListener(ON_APPOPEN_AD_DISPLAYED_EVENT);
312
+ };
313
+
314
+ const addAppOpenAdFailedToDisplayEventListener = (listener) => {
315
+ addEventListener(ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT, (adInfo) => listener(adInfo));
316
+ };
317
+
318
+ const removeAppOpenAdFailedToDisplayEventListener = () => {
319
+ removeEventListener(ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT);
320
+ };
321
+
322
+ const addAppOpenAdHiddenEventListener = (listener) => {
323
+ addEventListener(ON_APPOPEN_AD_HIDDEN_EVENT, (adInfo) => listener(adInfo));
324
+ };
325
+
326
+ const removeAppOpenAdHiddenEventListener = () => {
327
+ removeEventListener(ON_APPOPEN_AD_HIDDEN_EVENT);
328
+ };
329
+
330
+ const addAppOpenAdRevenuePaidListener = (listener) => {
331
+ addEventListener(ON_APPOPEN_AD_REVENUE_PAID, (adInfo) => listener(adInfo));
332
+ };
333
+
334
+ const removeAppOpenAdRevenuePaidListener = () => {
335
+ removeEventListener(ON_APPOPEN_AD_REVENUE_PAID);
336
+ };
337
+
338
+ export default {
339
+ addEventListener,
340
+ removeEventListener,
341
+
342
+ addMRecAdLoadedEventListener,
343
+ addMRecAdLoadFailedEventListener,
344
+ addMRecAdClickedEventListener,
345
+ addMRecAdCollapsedEventListener,
346
+ addMRecAdExpandedEventListener,
347
+ addMRecAdRevenuePaidListener,
348
+
349
+ removeMRecAdLoadedEventListener,
350
+ removeMRecAdLoadFailedEventListener,
351
+ removeMRecAdClickedEventListener,
352
+ removeMRecAdCollapsedEventListener,
353
+ removeMRecAdExpandedEventListener,
354
+ removeMRecAdRevenuePaidListener,
355
+
356
+ addBannerAdLoadedEventListener,
357
+ addBannerAdLoadFailedEventListener,
358
+ addBannerAdClickedEventListener,
359
+ addBannerAdCollapsedEventListener,
360
+ addBannerAdExpandedEventListener,
361
+ addBannerAdRevenuePaidListener,
362
+
363
+ removeBannerAdLoadedEventListener,
364
+ removeBannerAdLoadFailedEventListener,
365
+ removeBannerAdClickedEventListener,
366
+ removeBannerAdCollapsedEventListener,
367
+ removeBannerAdExpandedEventListener,
368
+ removeBannerAdRevenuePaidListener,
369
+
370
+ addInterstitialLoadedEventListener,
371
+ addInterstitialLoadFailedEventListener,
372
+ addInterstitialClickedEventListener,
373
+ addInterstitialDisplayedEventListener,
374
+ addInterstitialAdFailedToDisplayEventListener,
375
+ addInterstitialHiddenEventListener,
376
+ addInterstitialAdRevenuePaidListener,
377
+
378
+ removeInterstitialLoadedEventListener,
379
+ removeInterstitialLoadFailedEventListener,
380
+ removeInterstitialClickedEventListener,
381
+ removeInterstitialDisplayedEventListener,
382
+ removeInterstitialAdFailedToDisplayEventListener,
383
+ removeInterstitialHiddenEventListener,
384
+ removeInterstitialAdRevenuePaidListener,
385
+
386
+ addRewardedAdLoadedEventListener,
387
+ addRewardedAdLoadFailedEventListener,
388
+ addRewardedAdClickedEventListener,
389
+ addRewardedAdDisplayedEventListener,
390
+ addRewardedAdFailedToDisplayEventListener,
391
+ addRewardedAdHiddenEventListener,
392
+ addRewardedAdReceivedRewardEventListener,
393
+ addRewardedAdRevenuePaidListener,
394
+
395
+ removeRewardedAdLoadedEventListener,
396
+ removeRewardedAdLoadFailedEventListener,
397
+ removeRewardedAdClickedEventListener,
398
+ removeRewardedAdDisplayedEventListener,
399
+ removeRewardedAdFailedToDisplayEventListener,
400
+ removeRewardedAdHiddenEventListener,
401
+ removeRewardedAdReceivedRewardEventListener,
402
+ removeRewardedAdRevenuePaidListener,
403
+
404
+ addAppOpenAdLoadedEventListener,
405
+ addAppOpenAdLoadFailedEventListener,
406
+ addAppOpenAdClickedEventListener,
407
+ addAppOpenAdDisplayedEventListener,
408
+ addAppOpenAdFailedToDisplayEventListener,
409
+ addAppOpenAdHiddenEventListener,
410
+ addAppOpenAdRevenuePaidListener,
411
+
412
+ removeAppOpenAdLoadedEventListener,
413
+ removeAppOpenAdLoadFailedEventListener,
414
+ removeAppOpenAdClickedEventListener,
415
+ removeAppOpenAdDisplayedEventListener,
416
+ removeAppOpenAdFailedToDisplayEventListener,
417
+ removeAppOpenAdHiddenEventListener,
418
+ removeAppOpenAdRevenuePaidListener,
419
+ };
@@ -1,5 +1,5 @@
1
1
  import React, {useContext, useRef, useEffect} from "react";
2
- import {findNodeHandle, UIManager, Text, Image, View, TouchableOpacity} from "react-native";
2
+ import {findNodeHandle, Text, Image, View, TouchableOpacity} from "react-native";
3
3
  import {NativeAdViewContext} from "./NativeAdViewProvider";
4
4
 
5
5
  export const TitleView = (props) => {
@@ -7,20 +7,19 @@ export const TitleView = (props) => {
7
7
  const {nativeAd, nativeAdView} = useContext(NativeAdViewContext);
8
8
 
9
9
  useEffect(() => {
10
- if (Object.keys(nativeAd).length === 0 || !nativeAdView) return;
10
+ if (!nativeAdView || !nativeAd.title) return;
11
11
 
12
12
  nativeAdView.setNativeProps({
13
13
  titleView: findNodeHandle(titleRef.current),
14
14
  });
15
15
  }, [nativeAd, nativeAdView]);
16
16
 
17
+ if (!nativeAdView) return null;
18
+
17
19
  return (
18
- nativeAdView ?
19
- <Text {...props} ref={titleRef}>
20
- {nativeAd.title || null}
21
- </Text>
22
- :
23
- null
20
+ <Text {...props} ref={titleRef}>
21
+ {nativeAd.title || null}
22
+ </Text>
24
23
  );
25
24
  };
26
25
 
@@ -29,20 +28,19 @@ export const AdvertiserView = (props) => {
29
28
  const {nativeAd, nativeAdView} = useContext(NativeAdViewContext);
30
29
 
31
30
  useEffect(() => {
32
- if (Object.keys(nativeAd).length === 0 || !nativeAdView) return;
31
+ if (!nativeAdView || !nativeAd.advertiser) return;
33
32
 
34
33
  nativeAdView.setNativeProps({
35
34
  advertiserView: findNodeHandle(advertiserRef.current),
36
35
  });
37
36
  }, [nativeAd, nativeAdView]);
38
37
 
38
+ if (!nativeAdView) return null;
39
+
39
40
  return (
40
- nativeAdView ?
41
- <Text {...props} ref={advertiserRef}>
42
- {nativeAd.advertiser || null}
43
- </Text>
44
- :
45
- null
41
+ <Text {...props} ref={advertiserRef}>
42
+ {nativeAd.advertiser || null}
43
+ </Text>
46
44
  );
47
45
  };
48
46
 
@@ -51,20 +49,19 @@ export const BodyView = (props) => {
51
49
  const {nativeAd, nativeAdView} = useContext(NativeAdViewContext);
52
50
 
53
51
  useEffect(() => {
54
- if (Object.keys(nativeAd).length === 0 || !nativeAdView) return;
52
+ if (!nativeAdView || !nativeAd.body) return;
55
53
 
56
54
  nativeAdView.setNativeProps({
57
55
  bodyView: findNodeHandle(bodyRef.current),
58
56
  });
59
57
  }, [nativeAd, nativeAdView]);
60
58
 
59
+ if (!nativeAdView) return null;
60
+
61
61
  return (
62
- nativeAdView ?
63
- <Text {...props} ref={bodyRef}>
64
- {nativeAd.body || null}
65
- </Text>
66
- :
67
- null
62
+ <Text {...props} ref={bodyRef}>
63
+ {nativeAd.body || null}
64
+ </Text>
68
65
  );
69
66
  };
70
67
 
@@ -73,22 +70,21 @@ export const CallToActionView = (props) => {
73
70
  const {nativeAd, nativeAdView} = useContext(NativeAdViewContext);
74
71
 
75
72
  useEffect(() => {
76
- if (Object.keys(nativeAd).length === 0 || !nativeAdView) return;
73
+ if (!nativeAdView || !nativeAd.callToAction) return;
77
74
 
78
75
  nativeAdView.setNativeProps({
79
76
  callToActionView: findNodeHandle(callToActionRef.current),
80
77
  });
81
78
  }, [nativeAd, nativeAdView]);
82
79
 
80
+ if (!nativeAdView) return null;
81
+
83
82
  return (
84
- nativeAdView ?
85
- <TouchableOpacity {...props}>
86
- <Text {...props} ref={callToActionRef}>
87
- {nativeAd.callToAction || null}
88
- </Text>
89
- </TouchableOpacity>
90
- :
91
- null
83
+ <TouchableOpacity {...props}>
84
+ <Text {...props} ref={callToActionRef}>
85
+ {nativeAd.callToAction || null}
86
+ </Text>
87
+ </TouchableOpacity>
92
88
  );
93
89
  };
94
90
 
@@ -98,18 +94,17 @@ export const IconView = (props) => {
98
94
  const {nativeAd, nativeAdView} = useContext(NativeAdViewContext);
99
95
 
100
96
  useEffect(() => {
101
- if (Object.keys(nativeAd).length === 0 || !nativeAdView) return;
97
+ if (!nativeAdView || !(nativeAd.url || nativeAd.image)) return;
102
98
 
103
99
  nativeAdView.setNativeProps({
104
100
  iconView: findNodeHandle(imageRef.current),
105
101
  });
106
102
  }, [nativeAd, nativeAdView]);
107
103
 
104
+ if (!nativeAdView) return null;
105
+
108
106
  return (
109
- nativeAdView ?
110
- <Image {...props} ref={imageRef} source={{uri: nativeAd.url || null}}/>
111
- :
112
- null
107
+ <Image {...props} ref={imageRef} source={{uri: nativeAd.url || null}}/>
113
108
  );
114
109
  };
115
110
 
@@ -119,18 +114,17 @@ export const OptionsView = (props) => {
119
114
  const {nativeAd, nativeAdView} = useContext(NativeAdViewContext);
120
115
 
121
116
  useEffect(() => {
122
- if (Object.keys(nativeAd).length === 0 || !nativeAdView) return;
117
+ if (!nativeAdView || !nativeAd.isOptionsViewAvailable) return;
123
118
 
124
119
  nativeAdView.setNativeProps({
125
120
  optionsView: findNodeHandle(viewRef.current),
126
121
  });
127
122
  }, [nativeAd, nativeAdView]);
128
123
 
124
+ if (!nativeAdView) return null;
125
+
129
126
  return (
130
- nativeAdView ?
131
- <View {...props} ref={viewRef}/>
132
- :
133
- null
127
+ <View {...props} ref={viewRef}/>
134
128
  );
135
129
  };
136
130
 
@@ -140,17 +134,16 @@ export const MediaView = (props) => {
140
134
  const {nativeAd, nativeAdView} = useContext(NativeAdViewContext);
141
135
 
142
136
  useEffect(() => {
143
- if (Object.keys(nativeAd).length === 0 || !nativeAdView) return;
137
+ if (!nativeAdView || !nativeAd.isMediaViewAvailable) return;
144
138
 
145
139
  nativeAdView.setNativeProps({
146
140
  mediaView: findNodeHandle(viewRef.current),
147
141
  });
148
142
  }, [nativeAd, nativeAdView]);
149
143
 
144
+ if (!nativeAdView) return null;
145
+
150
146
  return (
151
- nativeAdView ?
152
- <View {...props} ref={viewRef}/>
153
- :
154
- null
147
+ <View {...props} ref={viewRef}/>
155
148
  );
156
149
  };