react-native-google-mobile-ads 13.4.0 → 13.6.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.
Files changed (46) hide show
  1. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsBannerAdViewManager.java +8 -1
  2. package/docs/displaying-ads.mdx +12 -20
  3. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerComponent.h +1 -0
  4. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerComponent.m +9 -5
  5. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerView.mm +15 -9
  6. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerViewManager.mm +14 -0
  7. package/lib/commonjs/ads/BannerAd.js +19 -11
  8. package/lib/commonjs/ads/BannerAd.js.map +1 -1
  9. package/lib/commonjs/ads/GAMBannerAd.js +5 -0
  10. package/lib/commonjs/ads/GAMBannerAd.js.map +1 -1
  11. package/lib/commonjs/ads/GoogleMobileAdsBannerViewNativeComponent.js +1 -1
  12. package/lib/commonjs/ads/GoogleMobileAdsBannerViewNativeComponent.js.map +1 -1
  13. package/lib/commonjs/hooks/useForeground.js +45 -0
  14. package/lib/commonjs/hooks/useForeground.js.map +1 -0
  15. package/lib/commonjs/index.js +8 -0
  16. package/lib/commonjs/index.js.map +1 -1
  17. package/lib/commonjs/version.js +1 -1
  18. package/lib/module/ads/BannerAd.js +15 -9
  19. package/lib/module/ads/BannerAd.js.map +1 -1
  20. package/lib/module/ads/GAMBannerAd.js +5 -0
  21. package/lib/module/ads/GAMBannerAd.js.map +1 -1
  22. package/lib/module/ads/GoogleMobileAdsBannerViewNativeComponent.js +1 -1
  23. package/lib/module/ads/GoogleMobileAdsBannerViewNativeComponent.js.map +1 -1
  24. package/lib/module/hooks/useForeground.js +40 -0
  25. package/lib/module/hooks/useForeground.js.map +1 -0
  26. package/lib/module/index.js +1 -0
  27. package/lib/module/index.js.map +1 -1
  28. package/lib/module/version.js +1 -1
  29. package/lib/typescript/ads/BannerAd.d.ts +6 -2
  30. package/lib/typescript/ads/BannerAd.d.ts.map +1 -1
  31. package/lib/typescript/ads/GAMBannerAd.d.ts +1 -0
  32. package/lib/typescript/ads/GAMBannerAd.d.ts.map +1 -1
  33. package/lib/typescript/ads/GoogleMobileAdsBannerViewNativeComponent.d.ts +1 -0
  34. package/lib/typescript/ads/GoogleMobileAdsBannerViewNativeComponent.d.ts.map +1 -1
  35. package/lib/typescript/hooks/useForeground.d.ts +7 -0
  36. package/lib/typescript/hooks/useForeground.d.ts.map +1 -0
  37. package/lib/typescript/index.d.ts +2 -1
  38. package/lib/typescript/index.d.ts.map +1 -1
  39. package/lib/typescript/version.d.ts +1 -1
  40. package/package.json +1 -1
  41. package/src/ads/BannerAd.tsx +14 -3
  42. package/src/ads/GAMBannerAd.tsx +6 -0
  43. package/src/ads/GoogleMobileAdsBannerViewNativeComponent.ts +2 -1
  44. package/src/hooks/useForeground.ts +41 -0
  45. package/src/index.ts +1 -0
  46. package/src/version.ts +1 -1
@@ -62,6 +62,7 @@ public class ReactNativeGoogleMobileAdsBannerAdViewManager
62
62
  private final String EVENT_SIZE_CHANGE = "onSizeChange";
63
63
  private final String EVENT_APP_EVENT = "onAppEvent";
64
64
  private final int COMMAND_ID_RECORD_MANUAL_IMPRESSION = 1;
65
+ private final int COMMAND_ID_LOAD = 2;
65
66
 
66
67
  @Nonnull
67
68
  @Override
@@ -85,7 +86,9 @@ public class ReactNativeGoogleMobileAdsBannerAdViewManager
85
86
  @Nullable
86
87
  @Override
87
88
  public Map<String, Integer> getCommandsMap() {
88
- return MapBuilder.of("recordManualImpression", COMMAND_ID_RECORD_MANUAL_IMPRESSION);
89
+ return MapBuilder.of(
90
+ "recordManualImpression", COMMAND_ID_RECORD_MANUAL_IMPRESSION,
91
+ "load", COMMAND_ID_LOAD);
89
92
  }
90
93
 
91
94
  @Override
@@ -99,6 +102,10 @@ public class ReactNativeGoogleMobileAdsBannerAdViewManager
99
102
  if (adView instanceof AdManagerAdView) {
100
103
  ((AdManagerAdView) adView).recordManualImpression();
101
104
  }
105
+ } else if (commandIdInt == COMMAND_ID_LOAD) {
106
+ BaseAdView adView = getAdView(reactViewGroup);
107
+ AdRequest request = reactViewGroup.getRequest();
108
+ adView.loadAd(request);
102
109
  }
103
110
  }
104
111
 
@@ -399,33 +399,25 @@ The module exposes a [`BannerAd`](/reference/admob/bannerad) component. The `uni
399
399
  a banner:
400
400
 
401
401
  ```js
402
- import React, { useState, useEffect, useRef } from 'react';
403
- import { AppState } from 'react-native';
404
- import { BannerAd, BannerAdSize, TestIds } from 'react-native-google-mobile-ads';
402
+ import React, { useState, useRef } from 'react';
403
+ import { AppState, Platform } from 'react-native';
404
+ import { BannerAd, BannerAdSize, TestIds, useForeground } from 'react-native-google-mobile-ads';
405
405
 
406
406
  const adUnitId = __DEV__ ? TestIds.ADAPTIVE_BANNER : 'ca-app-pub-xxxxxxxxxxxxx/yyyyyyyyyyyyyy';
407
407
 
408
408
  function App() {
409
+ const bannerRef = useRef<BannerAd>(null);
409
410
  const appState = useRef(AppState.currentState);
410
- const [key, setKey] = useState(`banner-${Date.now()}`);
411
411
 
412
- // WKWebView can terminate if app is in a "suspended state", resulting in an empty banner when app returns to foreground.
413
- // A Google Mobile Ads Advisor suggests requesting a new ad when the app is foregrounded.
414
- // For more details, see: [https://groups.google.com/g/google-admob-ads-sdk/c/rwBpqOUr8m8]
415
- useEffect(() => {
416
- const subscription = AppState.addEventListener('change', nextAppState => {
417
- if (appState.current.match(/background/) && nextAppState === 'active') {
418
- setKey(`banner-${Date.now()}`);
419
- }
420
- appState.current = nextAppState;
421
- });
412
+ // (iOS) WKWebView can terminate if app is in a "suspended state", resulting in an empty banner when app returns to foreground.
413
+ // Therefore it's advised to "manually" request a new ad when the app is foregrounded (https://groups.google.com/g/google-admob-ads-sdk/c/rwBpqOUr8m8).
414
+ useForeground(() => {
415
+ Platform.OS === 'ios' && bannerRef.current?.load();
416
+ })
422
417
 
423
- return () => {
424
- subscription.remove();
425
- };
426
- }, []);
427
-
428
- return <BannerAd key={key} unitId={adUnitId} size={BannerAdSize.ANCHORED_ADAPTIVE_BANNER} />;
418
+ return (
419
+ <BannerAd ref={bannerRef} unitId={adUnitId} size={BannerAdSize.ANCHORED_ADAPTIVE_BANNER} />
420
+ );
429
421
  }
430
422
  ```
431
423
 
@@ -36,6 +36,7 @@
36
36
  @property(nonatomic, copy) RCTBubblingEventBlock onNativeEvent;
37
37
 
38
38
  - (void)requestAd;
39
+ - (void)load;
39
40
  - (void)recordManualImpression;
40
41
 
41
42
  @end
@@ -122,13 +122,17 @@
122
122
  typeof(self) strongSelf = weakSelf;
123
123
  if (strongSelf) {
124
124
  [strongSelf sendEvent:@"onPaid"
125
- payload:@{
126
- @"value" : value.value,
127
- @"precision" : @(value.precision),
128
- @"currency" : value.currencyCode,
129
- }];
125
+ payload:@{
126
+ @"value" : value.value,
127
+ @"precision" : @(value.precision),
128
+ @"currency" : value.currencyCode,
129
+ }];
130
130
  }
131
131
  };
132
+ [self load];
133
+ }
134
+
135
+ - (void)load {
132
136
  [_banner loadRequest:[RNGoogleMobileAdsCommon buildAdRequest:_request]];
133
137
  [self sendEvent:@"onSizeChange"
134
138
  payload:@{
@@ -146,21 +146,27 @@ using namespace facebook::react;
146
146
  [self addSubview:_banner];
147
147
  _banner.adUnitID = _unitId;
148
148
  [self setRequested:YES];
149
- [_banner loadRequest:[RNGoogleMobileAdsCommon buildAdRequest:_request]];
150
- if (_eventEmitter != nullptr) {
151
- std::dynamic_pointer_cast<const facebook::react::RNGoogleMobileAdsBannerViewEventEmitter>(
152
- _eventEmitter)
153
- ->onNativeEvent(facebook::react::RNGoogleMobileAdsBannerViewEventEmitter::OnNativeEvent{
154
- .type = "onSizeChange",
155
- .width = _banner.bounds.size.width,
156
- .height = _banner.bounds.size.height});
157
- }
149
+ [self load];
150
+ }
151
+ }
152
+
153
+ - (void)load {
154
+ [_banner loadRequest:[RNGoogleMobileAdsCommon buildAdRequest:_request]];
155
+ if (_eventEmitter != nullptr) {
156
+ std::dynamic_pointer_cast<const facebook::react::RNGoogleMobileAdsBannerViewEventEmitter>(
157
+ _eventEmitter)
158
+ ->onNativeEvent(facebook::react::RNGoogleMobileAdsBannerViewEventEmitter::OnNativeEvent{
159
+ .type = "onSizeChange",
160
+ .width = _banner.bounds.size.width,
161
+ .height = _banner.bounds.size.height});
158
162
  }
159
163
  }
160
164
 
161
165
  - (void)handleCommand:(const NSString *)commandName args:(const NSArray *)args {
162
166
  if ([commandName isEqual:@"recordManualImpression"]) {
163
167
  [self recordManualImpression];
168
+ } else if ([commandName isEqual:@"load"]) {
169
+ [self load];
164
170
  }
165
171
  }
166
172
 
@@ -55,6 +55,20 @@ RCT_EXPORT_METHOD(recordManualImpression : (nonnull NSNumber *)reactTag) {
55
55
  #endif
56
56
  }
57
57
 
58
+ RCT_EXPORT_METHOD(load : (nonnull NSNumber *)reactTag) {
59
+ #if !TARGET_OS_MACCATALYST
60
+ [self.bridge.uiManager
61
+ addUIBlock:^(RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
62
+ RNGoogleMobileAdsBannerComponent *banner = viewRegistry[reactTag];
63
+ if (!banner || ![banner isKindOfClass:[RNGoogleMobileAdsBannerComponent class]]) {
64
+ RCTLogError(@"Cannot find NativeView with tag #%@", reactTag);
65
+ return;
66
+ }
67
+ [banner load];
68
+ }];
69
+ #endif
70
+ }
71
+
58
72
  #ifdef RCT_NEW_ARCH_ENABLE
59
73
 
60
74
  #else
@@ -3,10 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.BannerAd = BannerAd;
7
- var _react = _interopRequireDefault(require("react"));
6
+ exports.BannerAd = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
8
  var _BaseAd = require("./BaseAd");
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ var _GoogleMobileAdsBannerViewNativeComponent = require("./GoogleMobileAdsBannerViewNativeComponent");
10
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
12
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /*
11
13
  * Copyright (c) 2016-present Invertase Limited & Contributors
12
14
  *
@@ -23,13 +25,19 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
23
25
  * limitations under the License.
24
26
  *
25
27
  */
26
- function BannerAd(_ref) {
27
- let {
28
- size,
29
- ...props
30
- } = _ref;
31
- return /*#__PURE__*/_react.default.createElement(_BaseAd.BaseAd, _extends({
32
- sizes: [size]
33
- }, props));
28
+ class BannerAd extends _react.default.Component {
29
+ ref = /*#__PURE__*/(0, _react.createRef)();
30
+ load() {
31
+ if (this.ref.current) {
32
+ _GoogleMobileAdsBannerViewNativeComponent.Commands.load(this.ref.current);
33
+ }
34
+ }
35
+ render() {
36
+ return /*#__PURE__*/_react.default.createElement(_BaseAd.BaseAd, _extends({
37
+ ref: this.ref,
38
+ sizes: [this.props.size]
39
+ }, this.props));
40
+ }
34
41
  }
42
+ exports.BannerAd = BannerAd;
35
43
  //# sourceMappingURL=BannerAd.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_BaseAd","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","BannerAd","_ref","size","props","createElement","BaseAd","sizes"],"sourceRoot":"../../../src","sources":["ads/BannerAd.tsx"],"mappings":";;;;;;AAiBA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAAkC,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA,KAnBlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMO,SAASQ,QAAQA,CAAAC,IAAA,EAAoC;EAAA,IAAnC;IAAEC,IAAI;IAAE,GAAGC;EAAqB,CAAC,GAAAF,IAAA;EACxD,oBAAOtB,MAAA,CAAAM,OAAA,CAAAmB,aAAA,CAACtB,OAAA,CAAAuB,MAAM,EAAAnB,QAAA;IAACoB,KAAK,EAAE,CAACJ,IAAI;EAAE,GAAKC,KAAK,CAAG,CAAC;AAC7C"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_BaseAd","_GoogleMobileAdsBannerViewNativeComponent","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","BannerAd","React","Component","ref","createRef","load","current","Commands","render","createElement","BaseAd","sizes","props","size","exports"],"sourceRoot":"../../../src","sources":["ads/BannerAd.tsx"],"mappings":";;;;;;AAiBA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,yCAAA,GAAAF,OAAA;AAAiG,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAL,wBAAAS,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAAW,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAV,GAAA,IAAAa,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAb,GAAA,KAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,gBAAAS,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA,KApBjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOO,MAAMI,QAAQ,SAASC,cAAK,CAACC,SAAS,CAAgB;EACnDC,GAAG,gBAAG,IAAAC,gBAAS,EAAqD,CAAC;EAE7EC,IAAIA,CAAA,EAAG;IACL,IAAI,IAAI,CAACF,GAAG,CAACG,OAAO,EAAE;MACpBC,kDAAQ,CAACF,IAAI,CAAC,IAAI,CAACF,GAAG,CAACG,OAAO,CAAC;IACjC;EACF;EAEAE,MAAMA,CAAA,EAAG;IACP,oBAAO5C,MAAA,CAAAY,OAAA,CAAAiC,aAAA,CAAC1C,OAAA,CAAA2C,MAAM,EAAAnB,QAAA;MAACY,GAAG,EAAE,IAAI,CAACA,GAAI;MAACQ,KAAK,EAAE,CAAC,IAAI,CAACC,KAAK,CAACC,IAAI;IAAE,GAAK,IAAI,CAACD,KAAK,CAAG,CAAC;EAC5E;AACF;AAACE,OAAA,CAAAd,QAAA,GAAAA,QAAA"}
@@ -32,6 +32,11 @@ class GAMBannerAd extends _react.default.Component {
32
32
  _GoogleMobileAdsBannerViewNativeComponent.Commands.recordManualImpression(this.ref.current);
33
33
  }
34
34
  }
35
+ load() {
36
+ if (this.ref.current) {
37
+ _GoogleMobileAdsBannerViewNativeComponent.Commands.load(this.ref.current);
38
+ }
39
+ }
35
40
  render() {
36
41
  return /*#__PURE__*/_react.default.createElement(_BaseAd.BaseAd, _extends({
37
42
  ref: this.ref
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_BaseAd","_GoogleMobileAdsBannerViewNativeComponent","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","GAMBannerAd","React","Component","ref","createRef","recordManualImpression","current","Commands","render","createElement","BaseAd","props","exports"],"sourceRoot":"../../../src","sources":["ads/GAMBannerAd.tsx"],"mappings":";;;;;;AAiBA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,yCAAA,GAAAF,OAAA;AAAiG,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAL,wBAAAS,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAAW,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAV,GAAA,IAAAa,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAb,GAAA,KAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,gBAAAS,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA,KApBjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOO,MAAMI,WAAW,SAASC,cAAK,CAACC,SAAS,CAAmB;EACzDC,GAAG,gBAAG,IAAAC,gBAAS,EAAqD,CAAC;EAE7EC,sBAAsBA,CAAA,EAAG;IACvB,IAAI,IAAI,CAACF,GAAG,CAACG,OAAO,EAAE;MACpBC,kDAAQ,CAACF,sBAAsB,CAAC,IAAI,CAACF,GAAG,CAACG,OAAO,CAAC;IACnD;EACF;EAEAE,MAAMA,CAAA,EAAG;IACP,oBAAO5C,MAAA,CAAAY,OAAA,CAAAiC,aAAA,CAAC1C,OAAA,CAAA2C,MAAM,EAAAnB,QAAA;MAACY,GAAG,EAAE,IAAI,CAACA;IAAI,GAAK,IAAI,CAACQ,KAAK,CAAG,CAAC;EAClD;AACF;AAACC,OAAA,CAAAZ,WAAA,GAAAA,WAAA"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_BaseAd","_GoogleMobileAdsBannerViewNativeComponent","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","GAMBannerAd","React","Component","ref","createRef","recordManualImpression","current","Commands","load","render","createElement","BaseAd","props","exports"],"sourceRoot":"../../../src","sources":["ads/GAMBannerAd.tsx"],"mappings":"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"}
@@ -8,7 +8,7 @@ var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libra
8
8
  var _codegenNativeCommands = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeCommands"));
9
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
10
  const Commands = (0, _codegenNativeCommands.default)({
11
- supportedCommands: ['recordManualImpression']
11
+ supportedCommands: ['recordManualImpression', 'load']
12
12
  });
13
13
  exports.Commands = Commands;
14
14
  var _default = (0, _codegenNativeComponent.default)('RNGoogleMobileAdsBannerView');
@@ -1 +1 @@
1
- {"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","_codegenNativeCommands","obj","__esModule","default","Commands","codegenNativeCommands","supportedCommands","exports","_default","codegenNativeComponent"],"sourceRoot":"../../../src","sources":["ads/GoogleMobileAdsBannerViewNativeComponent.ts"],"mappings":";;;;;;AAGA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA2F,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AA6BpF,MAAMG,QAAwB,GAAG,IAAAC,8BAAqB,EAAiB;EAC5EC,iBAAiB,EAAE,CAAC,wBAAwB;AAC9C,CAAC,CAAC;AAACC,OAAA,CAAAH,QAAA,GAAAA,QAAA;AAAA,IAAAI,QAAA,GAEY,IAAAC,+BAAsB,EACnC,6BACF,CAAC;AAAAF,OAAA,CAAAJ,OAAA,GAAAK,QAAA"}
1
+ {"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","_codegenNativeCommands","obj","__esModule","default","Commands","codegenNativeCommands","supportedCommands","exports","_default","codegenNativeComponent"],"sourceRoot":"../../../src","sources":["ads/GoogleMobileAdsBannerViewNativeComponent.ts"],"mappings":";;;;;;AAGA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA2F,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AA8BpF,MAAMG,QAAwB,GAAG,IAAAC,8BAAqB,EAAiB;EAC5EC,iBAAiB,EAAE,CAAC,wBAAwB,EAAE,MAAM;AACtD,CAAC,CAAC;AAACC,OAAA,CAAAH,QAAA,GAAAA,QAAA;AAAA,IAAAI,QAAA,GAEY,IAAAC,+BAAsB,EACnC,6BACF,CAAC;AAAAF,OAAA,CAAAJ,OAAA,GAAAK,QAAA"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useForeground = useForeground;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ /*
10
+ * Copyright (c) 2016-present Invertase Limited & Contributors
11
+ *
12
+ * Licensed under the Apache License, Version 2.0 (the "License");
13
+ * you may not use this library except in compliance with the License.
14
+ * You may obtain a copy of the License at
15
+ *
16
+ * http://www.apache.org/licenses/LICENSE-2.0
17
+ *
18
+ * Unless required by applicable law or agreed to in writing, software
19
+ * distributed under the License is distributed on an "AS IS" BASIS,
20
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ * See the License for the specific language governing permissions and
22
+ * limitations under the License.
23
+ *
24
+ */
25
+
26
+ /**
27
+ * A custom hook that invokes a callback when the app transitions to the foreground.
28
+ *
29
+ * @param {Function} callback - The function to be called when the app has come to the foreground.
30
+ */
31
+ function useForeground(callback) {
32
+ const appState = (0, _react.useRef)(_reactNative.AppState.currentState);
33
+ (0, _react.useEffect)(() => {
34
+ const subscription = _reactNative.AppState.addEventListener('change', nextAppState => {
35
+ if (appState.current === 'background' && nextAppState === 'active') {
36
+ callback();
37
+ }
38
+ appState.current = nextAppState;
39
+ });
40
+ return () => {
41
+ subscription.remove();
42
+ };
43
+ }, []);
44
+ }
45
+ //# sourceMappingURL=useForeground.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","useForeground","callback","appState","useRef","AppState","currentState","useEffect","subscription","addEventListener","nextAppState","current","remove"],"sourceRoot":"../../../src","sources":["hooks/useForeground.ts"],"mappings":";;;;;;AAiBA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAlBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACO,SAASE,aAAaA,CAACC,QAAoB,EAAE;EAClD,MAAMC,QAAQ,GAAG,IAAAC,aAAM,EAACC,qBAAQ,CAACC,YAAY,CAAC;EAE9C,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,YAAY,GAAGH,qBAAQ,CAACI,gBAAgB,CAAC,QAAQ,EAAEC,YAAY,IAAI;MACvE,IAAIP,QAAQ,CAACQ,OAAO,KAAK,YAAY,IAAID,YAAY,KAAK,QAAQ,EAAE;QAClER,QAAQ,CAAC,CAAC;MACZ;MACAC,QAAQ,CAACQ,OAAO,GAAGD,YAAY;IACjC,CAAC,CAAC;IAEF,OAAO,MAAM;MACXF,YAAY,CAACI,MAAM,CAAC,CAAC;IACvB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR"}
@@ -30,6 +30,7 @@ var _exportNames = {
30
30
  useInterstitialAd: true,
31
31
  useRewardedAd: true,
32
32
  useRewardedInterstitialAd: true,
33
+ useForeground: true,
33
34
  RevenuePrecisions: true
34
35
  };
35
36
  Object.defineProperty(exports, "AdEventType", {
@@ -177,6 +178,12 @@ Object.defineProperty(exports, "useAppOpenAd", {
177
178
  return _useAppOpenAd.useAppOpenAd;
178
179
  }
179
180
  });
181
+ Object.defineProperty(exports, "useForeground", {
182
+ enumerable: true,
183
+ get: function () {
184
+ return _useForeground.useForeground;
185
+ }
186
+ });
180
187
  Object.defineProperty(exports, "useInterstitialAd", {
181
188
  enumerable: true,
182
189
  get: function () {
@@ -220,6 +227,7 @@ var _useAppOpenAd = require("./hooks/useAppOpenAd");
220
227
  var _useInterstitialAd = require("./hooks/useInterstitialAd");
221
228
  var _useRewardedAd = require("./hooks/useRewardedAd");
222
229
  var _useRewardedInterstitialAd = require("./hooks/useRewardedInterstitialAd");
230
+ var _useForeground = require("./hooks/useForeground");
223
231
  var _constants = require("./common/constants");
224
232
  var _types = require("./types");
225
233
  Object.keys(_types).forEach(function (key) {
@@ -1 +1 @@
1
- {"version":3,"names":["_version","require","_MobileAds","_interopRequireWildcard","_AdsConsentDebugGeography","_AdsConsentPurposes","_AdsConsentSpecialFeatures","_AdsConsentStatus","_AdsConsentPrivacyOptionsRequirementStatus","_MaxAdContentRating","_TestIds","_AdEventType","_BannerAdSize","_GAMAdEventType","_RewardedAdEventType","_AdsConsent","_AppOpenAd","_InterstitialAd","_RewardedAd","_RewardedInterstitialAd","_BannerAd","_GAMBannerAd","_GAMInterstitialAd","_useAppOpenAd","_useInterstitialAd","_useRewardedAd","_useRewardedInterstitialAd","_constants","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set","SDK_VERSION","version"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_version","require","_MobileAds","_interopRequireWildcard","_AdsConsentDebugGeography","_AdsConsentPurposes","_AdsConsentSpecialFeatures","_AdsConsentStatus","_AdsConsentPrivacyOptionsRequirementStatus","_MaxAdContentRating","_TestIds","_AdEventType","_BannerAdSize","_GAMAdEventType","_RewardedAdEventType","_AdsConsent","_AppOpenAd","_InterstitialAd","_RewardedAd","_RewardedInterstitialAd","_BannerAd","_GAMBannerAd","_GAMInterstitialAd","_useAppOpenAd","_useInterstitialAd","_useRewardedAd","_useRewardedInterstitialAd","_useForeground","_constants","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set","SDK_VERSION","version"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
@@ -5,6 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.version = void 0;
7
7
  // Generated by genversion.
8
- const version = '13.4.0';
8
+ const version = '13.6.0';
9
9
  exports.version = version;
10
10
  //# sourceMappingURL=version.js.map
@@ -16,15 +16,21 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
16
16
  *
17
17
  */
18
18
 
19
- import React from 'react';
19
+ import React, { createRef } from 'react';
20
20
  import { BaseAd } from './BaseAd';
21
- export function BannerAd(_ref) {
22
- let {
23
- size,
24
- ...props
25
- } = _ref;
26
- return /*#__PURE__*/React.createElement(BaseAd, _extends({
27
- sizes: [size]
28
- }, props));
21
+ import { Commands } from './GoogleMobileAdsBannerViewNativeComponent';
22
+ export class BannerAd extends React.Component {
23
+ ref = /*#__PURE__*/createRef();
24
+ load() {
25
+ if (this.ref.current) {
26
+ Commands.load(this.ref.current);
27
+ }
28
+ }
29
+ render() {
30
+ return /*#__PURE__*/React.createElement(BaseAd, _extends({
31
+ ref: this.ref,
32
+ sizes: [this.props.size]
33
+ }, this.props));
34
+ }
29
35
  }
30
36
  //# sourceMappingURL=BannerAd.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","BaseAd","BannerAd","_ref","size","props","createElement","_extends","sizes"],"sourceRoot":"../../../src","sources":["ads/BannerAd.tsx"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,MAAM,QAAQ,UAAU;AAEjC,OAAO,SAASC,QAAQA,CAAAC,IAAA,EAAoC;EAAA,IAAnC;IAAEC,IAAI;IAAE,GAAGC;EAAqB,CAAC,GAAAF,IAAA;EACxD,oBAAOH,KAAA,CAAAM,aAAA,CAACL,MAAM,EAAAM,QAAA;IAACC,KAAK,EAAE,CAACJ,IAAI;EAAE,GAAKC,KAAK,CAAG,CAAC;AAC7C"}
1
+ {"version":3,"names":["React","createRef","BaseAd","Commands","BannerAd","Component","ref","load","current","render","createElement","_extends","sizes","props","size"],"sourceRoot":"../../../src","sources":["ads/BannerAd.tsx"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AAExC,SAASC,MAAM,QAAQ,UAAU;AACjC,SAAoCC,QAAQ,QAAQ,4CAA4C;AAEhG,OAAO,MAAMC,QAAQ,SAASJ,KAAK,CAACK,SAAS,CAAgB;EACnDC,GAAG,gBAAGL,SAAS,CAAqD,CAAC;EAE7EM,IAAIA,CAAA,EAAG;IACL,IAAI,IAAI,CAACD,GAAG,CAACE,OAAO,EAAE;MACpBL,QAAQ,CAACI,IAAI,CAAC,IAAI,CAACD,GAAG,CAACE,OAAO,CAAC;IACjC;EACF;EAEAC,MAAMA,CAAA,EAAG;IACP,oBAAOT,KAAA,CAAAU,aAAA,CAACR,MAAM,EAAAS,QAAA;MAACL,GAAG,EAAE,IAAI,CAACA,GAAI;MAACM,KAAK,EAAE,CAAC,IAAI,CAACC,KAAK,CAACC,IAAI;IAAE,GAAK,IAAI,CAACD,KAAK,CAAG,CAAC;EAC5E;AACF"}
@@ -26,6 +26,11 @@ export class GAMBannerAd extends React.Component {
26
26
  Commands.recordManualImpression(this.ref.current);
27
27
  }
28
28
  }
29
+ load() {
30
+ if (this.ref.current) {
31
+ Commands.load(this.ref.current);
32
+ }
33
+ }
29
34
  render() {
30
35
  return /*#__PURE__*/React.createElement(BaseAd, _extends({
31
36
  ref: this.ref
@@ -1 +1 @@
1
- {"version":3,"names":["React","createRef","BaseAd","Commands","GAMBannerAd","Component","ref","recordManualImpression","current","render","createElement","_extends","props"],"sourceRoot":"../../../src","sources":["ads/GAMBannerAd.tsx"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AAExC,SAASC,MAAM,QAAQ,UAAU;AACjC,SAAoCC,QAAQ,QAAQ,4CAA4C;AAEhG,OAAO,MAAMC,WAAW,SAASJ,KAAK,CAACK,SAAS,CAAmB;EACzDC,GAAG,gBAAGL,SAAS,CAAqD,CAAC;EAE7EM,sBAAsBA,CAAA,EAAG;IACvB,IAAI,IAAI,CAACD,GAAG,CAACE,OAAO,EAAE;MACpBL,QAAQ,CAACI,sBAAsB,CAAC,IAAI,CAACD,GAAG,CAACE,OAAO,CAAC;IACnD;EACF;EAEAC,MAAMA,CAAA,EAAG;IACP,oBAAOT,KAAA,CAAAU,aAAA,CAACR,MAAM,EAAAS,QAAA;MAACL,GAAG,EAAE,IAAI,CAACA;IAAI,GAAK,IAAI,CAACM,KAAK,CAAG,CAAC;EAClD;AACF"}
1
+ {"version":3,"names":["React","createRef","BaseAd","Commands","GAMBannerAd","Component","ref","recordManualImpression","current","load","render","createElement","_extends","props"],"sourceRoot":"../../../src","sources":["ads/GAMBannerAd.tsx"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AAExC,SAASC,MAAM,QAAQ,UAAU;AACjC,SAAoCC,QAAQ,QAAQ,4CAA4C;AAEhG,OAAO,MAAMC,WAAW,SAASJ,KAAK,CAACK,SAAS,CAAmB;EACzDC,GAAG,gBAAGL,SAAS,CAAqD,CAAC;EAE7EM,sBAAsBA,CAAA,EAAG;IACvB,IAAI,IAAI,CAACD,GAAG,CAACE,OAAO,EAAE;MACpBL,QAAQ,CAACI,sBAAsB,CAAC,IAAI,CAACD,GAAG,CAACE,OAAO,CAAC;IACnD;EACF;EAEAC,IAAIA,CAAA,EAAG;IACL,IAAI,IAAI,CAACH,GAAG,CAACE,OAAO,EAAE;MACpBL,QAAQ,CAACM,IAAI,CAAC,IAAI,CAACH,GAAG,CAACE,OAAO,CAAC;IACjC;EACF;EAEAE,MAAMA,CAAA,EAAG;IACP,oBAAOV,KAAA,CAAAW,aAAA,CAACT,MAAM,EAAAU,QAAA;MAACN,GAAG,EAAE,IAAI,CAACA;IAAI,GAAK,IAAI,CAACO,KAAK,CAAG,CAAC;EAClD;AACF"}
@@ -1,7 +1,7 @@
1
1
  import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
2
2
  import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
3
3
  export const Commands = codegenNativeCommands({
4
- supportedCommands: ['recordManualImpression']
4
+ supportedCommands: ['recordManualImpression', 'load']
5
5
  });
6
6
  export default codegenNativeComponent('RNGoogleMobileAdsBannerView');
7
7
  //# sourceMappingURL=GoogleMobileAdsBannerViewNativeComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["codegenNativeComponent","codegenNativeCommands","Commands","supportedCommands"],"sourceRoot":"../../../src","sources":["ads/GoogleMobileAdsBannerViewNativeComponent.ts"],"mappings":"AAGA,OAAOA,sBAAsB,MAAM,yDAAyD;AAC5F,OAAOC,qBAAqB,MAAM,wDAAwD;AA6B1F,OAAO,MAAMC,QAAwB,GAAGD,qBAAqB,CAAiB;EAC5EE,iBAAiB,EAAE,CAAC,wBAAwB;AAC9C,CAAC,CAAC;AAEF,eAAeH,sBAAsB,CACnC,6BACF,CAAC"}
1
+ {"version":3,"names":["codegenNativeComponent","codegenNativeCommands","Commands","supportedCommands"],"sourceRoot":"../../../src","sources":["ads/GoogleMobileAdsBannerViewNativeComponent.ts"],"mappings":"AAGA,OAAOA,sBAAsB,MAAM,yDAAyD;AAC5F,OAAOC,qBAAqB,MAAM,wDAAwD;AA8B1F,OAAO,MAAMC,QAAwB,GAAGD,qBAAqB,CAAiB;EAC5EE,iBAAiB,EAAE,CAAC,wBAAwB,EAAE,MAAM;AACtD,CAAC,CAAC;AAEF,eAAeH,sBAAsB,CACnC,6BACF,CAAC"}
@@ -0,0 +1,40 @@
1
+ /*
2
+ * Copyright (c) 2016-present Invertase Limited & Contributors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this library except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ *
16
+ */
17
+
18
+ import { useEffect, useRef } from 'react';
19
+ import { AppState } from 'react-native';
20
+
21
+ /**
22
+ * A custom hook that invokes a callback when the app transitions to the foreground.
23
+ *
24
+ * @param {Function} callback - The function to be called when the app has come to the foreground.
25
+ */
26
+ export function useForeground(callback) {
27
+ const appState = useRef(AppState.currentState);
28
+ useEffect(() => {
29
+ const subscription = AppState.addEventListener('change', nextAppState => {
30
+ if (appState.current === 'background' && nextAppState === 'active') {
31
+ callback();
32
+ }
33
+ appState.current = nextAppState;
34
+ });
35
+ return () => {
36
+ subscription.remove();
37
+ };
38
+ }, []);
39
+ }
40
+ //# sourceMappingURL=useForeground.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","AppState","useForeground","callback","appState","currentState","subscription","addEventListener","nextAppState","current","remove"],"sourceRoot":"../../../src","sources":["hooks/useForeground.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,QAAQ,QAAQ,cAAc;;AAEvC;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,QAAoB,EAAE;EAClD,MAAMC,QAAQ,GAAGJ,MAAM,CAACC,QAAQ,CAACI,YAAY,CAAC;EAE9CN,SAAS,CAAC,MAAM;IACd,MAAMO,YAAY,GAAGL,QAAQ,CAACM,gBAAgB,CAAC,QAAQ,EAAEC,YAAY,IAAI;MACvE,IAAIJ,QAAQ,CAACK,OAAO,KAAK,YAAY,IAAID,YAAY,KAAK,QAAQ,EAAE;QAClEL,QAAQ,CAAC,CAAC;MACZ;MACAC,QAAQ,CAACK,OAAO,GAAGD,YAAY;IACjC,CAAC,CAAC;IAEF,OAAO,MAAM;MACXF,YAAY,CAACI,MAAM,CAAC,CAAC;IACvB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR"}
@@ -43,6 +43,7 @@ export { useAppOpenAd } from './hooks/useAppOpenAd';
43
43
  export { useInterstitialAd } from './hooks/useInterstitialAd';
44
44
  export { useRewardedAd } from './hooks/useRewardedAd';
45
45
  export { useRewardedInterstitialAd } from './hooks/useRewardedInterstitialAd';
46
+ export { useForeground } from './hooks/useForeground';
46
47
  export { RevenuePrecisions } from './common/constants';
47
48
  export * from './types';
48
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["version","SDK_VERSION","default","MobileAds","AdsConsentDebugGeography","AdsConsentPurposes","AdsConsentSpecialFeatures","AdsConsentStatus","AdsConsentPrivacyOptionsRequirementStatus","MaxAdContentRating","TestIds","AdEventType","BannerAdSize","GAMBannerAdSize","GAMAdEventType","RewardedAdEventType","AdsConsent","AppOpenAd","InterstitialAd","RewardedAd","RewardedInterstitialAd","BannerAd","GAMBannerAd","GAMInterstitialAd","useAppOpenAd","useInterstitialAd","useRewardedAd","useRewardedInterstitialAd","RevenuePrecisions"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,WAAW;;AAEnC;AACA,OAAO,MAAMC,WAAW,GAAGD,OAAO;AAElC,SAASE,OAAO,EAAEC,SAAS,QAAQ,aAAa;AAChD,SAASC,wBAAwB,QAAQ,4BAA4B;AACrE,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,yBAAyB,QAAQ,6BAA6B;AACvE,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,yCAAyC,QAAQ,6CAA6C;AACvG,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,YAAY,EAAEC,eAAe,QAAQ,gBAAgB;AAC9D,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,iBAAiB,QAAQ,2BAA2B;AAC7D,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,yBAAyB,QAAQ,mCAAmC;AAC7E,SAASC,iBAAiB,QAAQ,oBAAoB;AACtD,cAAc,SAAS"}
1
+ {"version":3,"names":["version","SDK_VERSION","default","MobileAds","AdsConsentDebugGeography","AdsConsentPurposes","AdsConsentSpecialFeatures","AdsConsentStatus","AdsConsentPrivacyOptionsRequirementStatus","MaxAdContentRating","TestIds","AdEventType","BannerAdSize","GAMBannerAdSize","GAMAdEventType","RewardedAdEventType","AdsConsent","AppOpenAd","InterstitialAd","RewardedAd","RewardedInterstitialAd","BannerAd","GAMBannerAd","GAMInterstitialAd","useAppOpenAd","useInterstitialAd","useRewardedAd","useRewardedInterstitialAd","useForeground","RevenuePrecisions"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,WAAW;;AAEnC;AACA,OAAO,MAAMC,WAAW,GAAGD,OAAO;AAElC,SAASE,OAAO,EAAEC,SAAS,QAAQ,aAAa;AAChD,SAASC,wBAAwB,QAAQ,4BAA4B;AACrE,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,yBAAyB,QAAQ,6BAA6B;AACvE,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,yCAAyC,QAAQ,6CAA6C;AACvG,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,YAAY,EAAEC,eAAe,QAAQ,gBAAgB;AAC9D,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,iBAAiB,QAAQ,2BAA2B;AAC7D,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,yBAAyB,QAAQ,mCAAmC;AAC7E,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,iBAAiB,QAAQ,oBAAoB;AACtD,cAAc,SAAS"}
@@ -1,3 +1,3 @@
1
1
  // Generated by genversion.
2
- export const version = '13.4.0';
2
+ export const version = '13.6.0';
3
3
  //# sourceMappingURL=version.js.map
@@ -1,4 +1,8 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { BannerAdProps } from '../types/BannerAdProps';
3
- export declare function BannerAd({ size, ...props }: BannerAdProps): JSX.Element;
3
+ export declare class BannerAd extends React.Component<BannerAdProps> {
4
+ private ref;
5
+ load(): void;
6
+ render(): JSX.Element;
7
+ }
4
8
  //# sourceMappingURL=BannerAd.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BannerAd.d.ts","sourceRoot":"","sources":["../../../src/ads/BannerAd.tsx"],"names":[],"mappings":";AAkBA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,eAEzD"}
1
+ {"version":3,"file":"BannerAd.d.ts","sourceRoot":"","sources":["../../../src/ads/BannerAd.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAIvD,qBAAa,QAAS,SAAQ,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAmE;IAE9E,IAAI;IAMJ,MAAM;CAGP"}
@@ -3,6 +3,7 @@ import { GAMBannerAdProps } from '../types/BannerAdProps';
3
3
  export declare class GAMBannerAd extends React.Component<GAMBannerAdProps> {
4
4
  private ref;
5
5
  recordManualImpression(): void;
6
+ load(): void;
6
7
  render(): JSX.Element;
7
8
  }
8
9
  //# sourceMappingURL=GAMBannerAd.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GAMBannerAd.d.ts","sourceRoot":"","sources":["../../../src/ads/GAMBannerAd.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,qBAAa,WAAY,SAAQ,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC;IAChE,OAAO,CAAC,GAAG,CAAmE;IAE9E,sBAAsB;IAMtB,MAAM;CAGP"}
1
+ {"version":3,"file":"GAMBannerAd.d.ts","sourceRoot":"","sources":["../../../src/ads/GAMBannerAd.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,qBAAa,WAAY,SAAQ,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC;IAChE,OAAO,CAAC,GAAG,CAAmE;IAE9E,sBAAsB;IAMtB,IAAI;IAMJ,MAAM;CAGP"}
@@ -23,6 +23,7 @@ export interface NativeProps extends ViewProps {
23
23
  export declare type ComponentType = HostComponent<NativeProps>;
24
24
  interface NativeCommands {
25
25
  recordManualImpression: (viewRef: React.ElementRef<ComponentType>) => void;
26
+ load: (viewRef: React.ElementRef<ComponentType>) => void;
26
27
  }
27
28
  export declare const Commands: NativeCommands;
28
29
  declare const _default: HostComponent<NativeProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"GoogleMobileAdsBannerViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/ads/GoogleMobileAdsBannerViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,2CAA2C,CAAC;AAI7F,oBAAY,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB,EAAE,OAAO,CAAC;IAClC,aAAa,EAAE,oBAAoB,CAAC,WAAW,CAAC,CAAC;CAClD;AAED,oBAAY,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;AAEvD,UAAU,cAAc;IACtB,sBAAsB,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;CAC5E;AAED,eAAO,MAAM,QAAQ,EAAE,cAErB,CAAC;;AAEH,wBAEgC"}
1
+ {"version":3,"file":"GoogleMobileAdsBannerViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/ads/GoogleMobileAdsBannerViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,2CAA2C,CAAC;AAI7F,oBAAY,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB,EAAE,OAAO,CAAC;IAClC,aAAa,EAAE,oBAAoB,CAAC,WAAW,CAAC,CAAC;CAClD;AAED,oBAAY,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;AAEvD,UAAU,cAAc;IACtB,sBAAsB,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC3E,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;CAC1D;AAED,eAAO,MAAM,QAAQ,EAAE,cAErB,CAAC;;AAEH,wBAEgC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * A custom hook that invokes a callback when the app transitions to the foreground.
3
+ *
4
+ * @param {Function} callback - The function to be called when the app has come to the foreground.
5
+ */
6
+ export declare function useForeground(callback: () => void): void;
7
+ //# sourceMappingURL=useForeground.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useForeground.d.ts","sourceRoot":"","sources":["../../../src/hooks/useForeground.ts"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,IAAI,QAejD"}
@@ -1,4 +1,4 @@
1
- export declare const SDK_VERSION = "13.4.0";
1
+ export declare const SDK_VERSION = "13.6.0";
2
2
  export { default, MobileAds } from './MobileAds';
3
3
  export { AdsConsentDebugGeography } from './AdsConsentDebugGeography';
4
4
  export { AdsConsentPurposes } from './AdsConsentPurposes';
@@ -23,6 +23,7 @@ export { useAppOpenAd } from './hooks/useAppOpenAd';
23
23
  export { useInterstitialAd } from './hooks/useInterstitialAd';
24
24
  export { useRewardedAd } from './hooks/useRewardedAd';
25
25
  export { useRewardedInterstitialAd } from './hooks/useRewardedInterstitialAd';
26
+ export { useForeground } from './hooks/useForeground';
26
27
  export { RevenuePrecisions } from './common/constants';
27
28
  export * from './types';
28
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,WAAW,WAAU,CAAC;AAEnC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,yCAAyC,EAAE,MAAM,6CAA6C,CAAC;AACxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,WAAW,WAAU,CAAC;AAEnC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,yCAAyC,EAAE,MAAM,6CAA6C,CAAC;AACxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,cAAc,SAAS,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const version = "13.4.0";
1
+ export declare const version = "13.6.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-google-mobile-ads",
3
- "version": "13.4.0",
3
+ "version": "13.6.0",
4
4
  "author": "Invertase <oss@invertase.io> (http://invertase.io)",
5
5
  "description": "React Native Google Mobile Ads is an easy way to monetize mobile apps with targeted, in-app advertising.",
6
6
  "main": "lib/commonjs/index.js",
@@ -15,10 +15,21 @@
15
15
  *
16
16
  */
17
17
 
18
- import React from 'react';
18
+ import React, { createRef } from 'react';
19
19
  import { BannerAdProps } from '../types/BannerAdProps';
20
20
  import { BaseAd } from './BaseAd';
21
+ import GoogleMobileAdsBannerView, { Commands } from './GoogleMobileAdsBannerViewNativeComponent';
21
22
 
22
- export function BannerAd({ size, ...props }: BannerAdProps) {
23
- return <BaseAd sizes={[size]} {...props} />;
23
+ export class BannerAd extends React.Component<BannerAdProps> {
24
+ private ref = createRef<React.ElementRef<typeof GoogleMobileAdsBannerView>>();
25
+
26
+ load() {
27
+ if (this.ref.current) {
28
+ Commands.load(this.ref.current);
29
+ }
30
+ }
31
+
32
+ render() {
33
+ return <BaseAd ref={this.ref} sizes={[this.props.size]} {...this.props} />;
34
+ }
24
35
  }
@@ -29,6 +29,12 @@ export class GAMBannerAd extends React.Component<GAMBannerAdProps> {
29
29
  }
30
30
  }
31
31
 
32
+ load() {
33
+ if (this.ref.current) {
34
+ Commands.load(this.ref.current);
35
+ }
36
+ }
37
+
32
38
  render() {
33
39
  return <BaseAd ref={this.ref} {...this.props} />;
34
40
  }
@@ -29,10 +29,11 @@ export type ComponentType = HostComponent<NativeProps>;
29
29
 
30
30
  interface NativeCommands {
31
31
  recordManualImpression: (viewRef: React.ElementRef<ComponentType>) => void;
32
+ load: (viewRef: React.ElementRef<ComponentType>) => void;
32
33
  }
33
34
 
34
35
  export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
35
- supportedCommands: ['recordManualImpression'],
36
+ supportedCommands: ['recordManualImpression', 'load'],
36
37
  });
37
38
 
38
39
  export default codegenNativeComponent<NativeProps>(
@@ -0,0 +1,41 @@
1
+ /*
2
+ * Copyright (c) 2016-present Invertase Limited & Contributors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this library except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ *
16
+ */
17
+
18
+ import { useEffect, useRef } from 'react';
19
+ import { AppState } from 'react-native';
20
+
21
+ /**
22
+ * A custom hook that invokes a callback when the app transitions to the foreground.
23
+ *
24
+ * @param {Function} callback - The function to be called when the app has come to the foreground.
25
+ */
26
+ export function useForeground(callback: () => void) {
27
+ const appState = useRef(AppState.currentState);
28
+
29
+ useEffect(() => {
30
+ const subscription = AppState.addEventListener('change', nextAppState => {
31
+ if (appState.current === 'background' && nextAppState === 'active') {
32
+ callback();
33
+ }
34
+ appState.current = nextAppState;
35
+ });
36
+
37
+ return () => {
38
+ subscription.remove();
39
+ };
40
+ }, []);
41
+ }
package/src/index.ts CHANGED
@@ -44,5 +44,6 @@ export { useAppOpenAd } from './hooks/useAppOpenAd';
44
44
  export { useInterstitialAd } from './hooks/useInterstitialAd';
45
45
  export { useRewardedAd } from './hooks/useRewardedAd';
46
46
  export { useRewardedInterstitialAd } from './hooks/useRewardedInterstitialAd';
47
+ export { useForeground } from './hooks/useForeground';
47
48
  export { RevenuePrecisions } from './common/constants';
48
49
  export * from './types';
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  // Generated by genversion.
2
- export const version = '13.4.0';
2
+ export const version = '13.6.0';