react-native-daro 1.0.15 → 1.0.16

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 (192) hide show
  1. package/android/build.gradle +11 -1
  2. package/android/src/main/java/com/daro/reactnative/DaroMAdBannerViewManager.kt +34 -11
  3. package/android/src/main/java/com/daro/reactnative/DaroMAdNativeViewManager.kt +79 -48
  4. package/android/src/main/java/com/daro/reactnative/DaroMModule.kt +80 -25
  5. package/android/src/main/java/com/daro/reactnative/DaroMPackage.kt +28 -4
  6. package/android/src/main/java/com/daro/reactnative/DaroMediaViewManager.kt +25 -0
  7. package/android/src/main/java/com/daro/reactnative/event/DaroMEvent.kt +18 -7
  8. package/android/src/main/java/com/daro/reactnative/util/EventEmitterUtil.kt +18 -5
  9. package/android/src/main/java/com/daro/reactnative/view/DaroMAdNativeViewContainer.kt +301 -52
  10. package/android/src/main/java/com/daro/reactnative/view/DaroMediaView.kt +123 -0
  11. package/android/src/newarch/java/com/daro/reactnative/DaroMModuleSpec.kt +6 -0
  12. package/android/src/oldarch/java/com/daro/reactnative/DaroMModuleSpec.kt +90 -0
  13. package/ios/DaroMModule+AppOpen.swift +13 -10
  14. package/ios/DaroMModule+Interstitial.swift +12 -9
  15. package/ios/DaroMModule+LightPopup.swift +16 -13
  16. package/ios/DaroMModule+Rewarded.swift +12 -9
  17. package/ios/DaroMModule.mm +45 -17
  18. package/ios/DaroMModule.swift +4 -4
  19. package/ios/Fabric/DaroMAdBannerComponentView.mm +207 -0
  20. package/ios/Fabric/DaroMFabricEventSink.mm +31 -0
  21. package/ios/Fabric/DaroMFabricPropApplier.mm +123 -0
  22. package/ios/Fabric/DaroMNativeAdComponentView.mm +294 -0
  23. package/ios/{DaroMAdBannerViewManager.m → Paper/DaroMAdBannerViewManager.m} +3 -1
  24. package/ios/Paper/DaroMAdBannerViewManager.swift +21 -0
  25. package/ios/{DaroMNativeAdViewManager.m → Paper/DaroMNativeAdViewManager.m} +2 -1
  26. package/ios/Paper/DaroMNativeAdViewManager.swift +22 -0
  27. package/ios/Shared/DaroMAdEventSink.swift +24 -0
  28. package/ios/Shared/DaroMBannerAdView.swift +188 -0
  29. package/ios/Shared/DaroMNativeAdLoadCoordinator.swift +49 -0
  30. package/ios/Shared/DaroMNativeAdView.swift +575 -0
  31. package/ios/Shared/DaroMNativeAssetResolver.swift +53 -0
  32. package/ios/mediation/admob/DaroMediationTypes.swift +1 -0
  33. package/lib/commonjs/AdBannerView.js +20 -39
  34. package/lib/commonjs/AdBannerView.js.map +1 -1
  35. package/lib/commonjs/AppOpenAd.js +43 -10
  36. package/lib/commonjs/AppOpenAd.js.map +1 -1
  37. package/lib/commonjs/DaroMAdBannerViewNativeComponent.ts +47 -0
  38. package/lib/commonjs/DaroMNativeAdViewNativeComponent.ts +62 -0
  39. package/lib/commonjs/DaroMediaViewNativeComponent.ts +9 -0
  40. package/lib/commonjs/EventEmitter.js +4 -5
  41. package/lib/commonjs/EventEmitter.js.map +1 -1
  42. package/lib/commonjs/InterstitialAd.js +9 -11
  43. package/lib/commonjs/InterstitialAd.js.map +1 -1
  44. package/lib/commonjs/LightPopupAd.js +11 -12
  45. package/lib/commonjs/LightPopupAd.js.map +1 -1
  46. package/lib/commonjs/NativeDaroModule.js +9 -0
  47. package/lib/commonjs/NativeDaroModule.js.map +1 -0
  48. package/lib/commonjs/RewardedAd.js +9 -11
  49. package/lib/commonjs/RewardedAd.js.map +1 -1
  50. package/lib/commonjs/codegen-env.d.js +2 -0
  51. package/lib/commonjs/codegen-env.d.js.map +1 -0
  52. package/lib/commonjs/hooks/useInterstitialAd.js +110 -0
  53. package/lib/commonjs/hooks/useInterstitialAd.js.map +1 -0
  54. package/lib/commonjs/hooks/useLightPopupAd.js +114 -0
  55. package/lib/commonjs/hooks/useLightPopupAd.js.map +1 -0
  56. package/lib/commonjs/hooks/useRewardedAd.js +113 -0
  57. package/lib/commonjs/hooks/useRewardedAd.js.map +1 -0
  58. package/lib/commonjs/index.js +29 -13
  59. package/lib/commonjs/index.js.map +1 -1
  60. package/lib/commonjs/nativeAd/NativeAdView.js +23 -22
  61. package/lib/commonjs/nativeAd/NativeAdView.js.map +1 -1
  62. package/lib/commonjs/nativeAd/NativeAdViewComponents.js +43 -31
  63. package/lib/commonjs/nativeAd/NativeAdViewComponents.js.map +1 -1
  64. package/lib/commonjs/nativeAd/NativeAdViewProvider.js +34 -7
  65. package/lib/commonjs/nativeAd/NativeAdViewProvider.js.map +1 -1
  66. package/lib/module/AdBannerView.js +19 -40
  67. package/lib/module/AdBannerView.js.map +1 -1
  68. package/lib/module/AppOpenAd.js +43 -11
  69. package/lib/module/AppOpenAd.js.map +1 -1
  70. package/lib/module/DaroMAdBannerViewNativeComponent.ts +47 -0
  71. package/lib/module/DaroMNativeAdViewNativeComponent.ts +62 -0
  72. package/lib/module/DaroMediaViewNativeComponent.ts +9 -0
  73. package/lib/module/EventEmitter.js +4 -6
  74. package/lib/module/EventEmitter.js.map +1 -1
  75. package/lib/module/InterstitialAd.js +8 -11
  76. package/lib/module/InterstitialAd.js.map +1 -1
  77. package/lib/module/LightPopupAd.js +11 -13
  78. package/lib/module/LightPopupAd.js.map +1 -1
  79. package/lib/module/NativeDaroModule.js +5 -0
  80. package/lib/module/NativeDaroModule.js.map +1 -0
  81. package/lib/module/RewardedAd.js +8 -11
  82. package/lib/module/RewardedAd.js.map +1 -1
  83. package/lib/module/codegen-env.d.js +2 -0
  84. package/lib/module/codegen-env.d.js.map +1 -0
  85. package/lib/module/hooks/useInterstitialAd.js +106 -0
  86. package/lib/module/hooks/useInterstitialAd.js.map +1 -0
  87. package/lib/module/hooks/useLightPopupAd.js +110 -0
  88. package/lib/module/hooks/useLightPopupAd.js.map +1 -0
  89. package/lib/module/hooks/useRewardedAd.js +109 -0
  90. package/lib/module/hooks/useRewardedAd.js.map +1 -0
  91. package/lib/module/index.js +7 -13
  92. package/lib/module/index.js.map +1 -1
  93. package/lib/module/nativeAd/NativeAdView.js +22 -23
  94. package/lib/module/nativeAd/NativeAdView.js.map +1 -1
  95. package/lib/module/nativeAd/NativeAdViewComponents.js +45 -34
  96. package/lib/module/nativeAd/NativeAdViewComponents.js.map +1 -1
  97. package/lib/module/nativeAd/NativeAdViewProvider.js +35 -8
  98. package/lib/module/nativeAd/NativeAdViewProvider.js.map +1 -1
  99. package/lib/typescript/commonjs/plugin/src/index.d.ts +1 -1
  100. package/lib/typescript/commonjs/plugin/src/index.d.ts.map +1 -1
  101. package/lib/typescript/commonjs/plugin/src/withAndroid.d.ts.map +1 -1
  102. package/lib/typescript/commonjs/plugin/src/withIos.d.ts.map +1 -1
  103. package/lib/typescript/commonjs/src/AdBannerView.d.ts +2 -2
  104. package/lib/typescript/commonjs/src/AdBannerView.d.ts.map +1 -1
  105. package/lib/typescript/commonjs/src/AppOpenAd.d.ts.map +1 -1
  106. package/lib/typescript/commonjs/src/DaroMAdBannerViewNativeComponent.d.ts +32 -0
  107. package/lib/typescript/commonjs/src/DaroMAdBannerViewNativeComponent.d.ts.map +1 -0
  108. package/lib/typescript/commonjs/src/DaroMNativeAdViewNativeComponent.d.ts +42 -0
  109. package/lib/typescript/commonjs/src/DaroMNativeAdViewNativeComponent.d.ts.map +1 -0
  110. package/lib/typescript/commonjs/src/DaroMediaViewNativeComponent.d.ts +6 -0
  111. package/lib/typescript/commonjs/src/DaroMediaViewNativeComponent.d.ts.map +1 -0
  112. package/lib/typescript/commonjs/src/EventEmitter.d.ts.map +1 -1
  113. package/lib/typescript/commonjs/src/InterstitialAd.d.ts.map +1 -1
  114. package/lib/typescript/commonjs/src/LightPopupAd.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/src/NativeDaroModule.d.ts +61 -0
  116. package/lib/typescript/commonjs/src/NativeDaroModule.d.ts.map +1 -0
  117. package/lib/typescript/commonjs/src/RewardedAd.d.ts.map +1 -1
  118. package/lib/typescript/commonjs/src/hooks/useInterstitialAd.d.ts +19 -0
  119. package/lib/typescript/commonjs/src/hooks/useInterstitialAd.d.ts.map +1 -0
  120. package/lib/typescript/commonjs/src/hooks/useLightPopupAd.d.ts +23 -0
  121. package/lib/typescript/commonjs/src/hooks/useLightPopupAd.d.ts.map +1 -0
  122. package/lib/typescript/commonjs/src/hooks/useRewardedAd.d.ts +20 -0
  123. package/lib/typescript/commonjs/src/hooks/useRewardedAd.d.ts.map +1 -0
  124. package/lib/typescript/commonjs/src/index.d.ts +7 -1
  125. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  126. package/lib/typescript/commonjs/src/nativeAd/NativeAdView.d.ts +1 -0
  127. package/lib/typescript/commonjs/src/nativeAd/NativeAdView.d.ts.map +1 -1
  128. package/lib/typescript/commonjs/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/src/nativeAd/NativeAdViewProvider.d.ts +11 -5
  130. package/lib/typescript/commonjs/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/src/types/NativeAdViewProps.d.ts +2 -0
  132. package/lib/typescript/commonjs/src/types/NativeAdViewProps.d.ts.map +1 -1
  133. package/lib/typescript/module/plugin/src/index.d.ts +1 -1
  134. package/lib/typescript/module/plugin/src/index.d.ts.map +1 -1
  135. package/lib/typescript/module/plugin/src/withAndroid.d.ts.map +1 -1
  136. package/lib/typescript/module/plugin/src/withIos.d.ts.map +1 -1
  137. package/lib/typescript/module/src/AdBannerView.d.ts +2 -2
  138. package/lib/typescript/module/src/AdBannerView.d.ts.map +1 -1
  139. package/lib/typescript/module/src/AppOpenAd.d.ts.map +1 -1
  140. package/lib/typescript/module/src/DaroMAdBannerViewNativeComponent.d.ts +32 -0
  141. package/lib/typescript/module/src/DaroMAdBannerViewNativeComponent.d.ts.map +1 -0
  142. package/lib/typescript/module/src/DaroMNativeAdViewNativeComponent.d.ts +42 -0
  143. package/lib/typescript/module/src/DaroMNativeAdViewNativeComponent.d.ts.map +1 -0
  144. package/lib/typescript/module/src/DaroMediaViewNativeComponent.d.ts +6 -0
  145. package/lib/typescript/module/src/DaroMediaViewNativeComponent.d.ts.map +1 -0
  146. package/lib/typescript/module/src/EventEmitter.d.ts.map +1 -1
  147. package/lib/typescript/module/src/InterstitialAd.d.ts.map +1 -1
  148. package/lib/typescript/module/src/LightPopupAd.d.ts.map +1 -1
  149. package/lib/typescript/module/src/NativeDaroModule.d.ts +61 -0
  150. package/lib/typescript/module/src/NativeDaroModule.d.ts.map +1 -0
  151. package/lib/typescript/module/src/RewardedAd.d.ts.map +1 -1
  152. package/lib/typescript/module/src/hooks/useInterstitialAd.d.ts +19 -0
  153. package/lib/typescript/module/src/hooks/useInterstitialAd.d.ts.map +1 -0
  154. package/lib/typescript/module/src/hooks/useLightPopupAd.d.ts +23 -0
  155. package/lib/typescript/module/src/hooks/useLightPopupAd.d.ts.map +1 -0
  156. package/lib/typescript/module/src/hooks/useRewardedAd.d.ts +20 -0
  157. package/lib/typescript/module/src/hooks/useRewardedAd.d.ts.map +1 -0
  158. package/lib/typescript/module/src/index.d.ts +7 -1
  159. package/lib/typescript/module/src/index.d.ts.map +1 -1
  160. package/lib/typescript/module/src/nativeAd/NativeAdView.d.ts +1 -0
  161. package/lib/typescript/module/src/nativeAd/NativeAdView.d.ts.map +1 -1
  162. package/lib/typescript/module/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -1
  163. package/lib/typescript/module/src/nativeAd/NativeAdViewProvider.d.ts +11 -5
  164. package/lib/typescript/module/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -1
  165. package/lib/typescript/module/src/types/NativeAdViewProps.d.ts +2 -0
  166. package/lib/typescript/module/src/types/NativeAdViewProps.d.ts.map +1 -1
  167. package/package.json +12 -5
  168. package/plugin/build/index.d.ts +1 -1
  169. package/plugin/build/withAndroid.js +99 -17
  170. package/plugin/build/withIos.js +4 -5
  171. package/react-native-daro.podspec +3 -0
  172. package/src/AdBannerView.tsx +24 -61
  173. package/src/AppOpenAd.ts +46 -9
  174. package/src/DaroMAdBannerViewNativeComponent.ts +47 -0
  175. package/src/DaroMNativeAdViewNativeComponent.ts +62 -0
  176. package/src/DaroMediaViewNativeComponent.ts +9 -0
  177. package/src/EventEmitter.ts +4 -5
  178. package/src/InterstitialAd.ts +8 -10
  179. package/src/LightPopupAd.ts +11 -12
  180. package/src/NativeDaroModule.ts +91 -0
  181. package/src/RewardedAd.ts +8 -10
  182. package/src/codegen-env.d.ts +45 -0
  183. package/src/hooks/useInterstitialAd.ts +117 -0
  184. package/src/hooks/useLightPopupAd.ts +132 -0
  185. package/src/hooks/useRewardedAd.ts +122 -0
  186. package/src/index.tsx +21 -22
  187. package/src/nativeAd/NativeAdView.tsx +41 -54
  188. package/src/nativeAd/NativeAdViewComponents.tsx +80 -42
  189. package/src/nativeAd/NativeAdViewProvider.tsx +75 -17
  190. package/src/types/NativeAdViewProps.ts +7 -0
  191. package/ios/DaroMAdBannerViewManager.swift +0 -91
  192. package/ios/DaroMNativeAdViewManager.swift +0 -291
@@ -0,0 +1,90 @@
1
+ package com.daro.reactnative
2
+
3
+ import com.facebook.react.bridge.Promise
4
+ import com.facebook.react.bridge.ReactApplicationContext
5
+ import com.facebook.react.bridge.ReactContextBaseJavaModule
6
+ import com.facebook.react.bridge.ReactMethod
7
+ import com.facebook.react.bridge.ReadableMap
8
+
9
+ abstract class DaroMModuleSpec(reactContext: ReactApplicationContext) :
10
+ ReactContextBaseJavaModule(reactContext) {
11
+
12
+ override fun getName(): String = DaroMModule.NAME
13
+
14
+ protected abstract fun getTypedExportedConstants(): MutableMap<String, Any>
15
+
16
+ override fun getConstants(): MutableMap<String, Any> = getTypedExportedConstants()
17
+
18
+ @ReactMethod
19
+ abstract fun addListener(eventName: String)
20
+
21
+ @ReactMethod
22
+ abstract fun removeListeners(count: Double)
23
+
24
+ @ReactMethod
25
+ abstract fun isInitialized(promise: Promise)
26
+
27
+ @ReactMethod
28
+ abstract fun initializeSdk(promise: Promise)
29
+
30
+ @ReactMethod
31
+ abstract fun setUserId(userId: String, promise: Promise)
32
+
33
+ @ReactMethod
34
+ abstract fun showMediationDebugger(promise: Promise)
35
+
36
+ @ReactMethod
37
+ abstract fun isInterstitialReady(requestId: Double, adUnitId: String, promise: Promise)
38
+
39
+ @ReactMethod
40
+ abstract fun loadInterstitial(requestId: Double, adUnitId: String, promise: Promise)
41
+
42
+ @ReactMethod
43
+ abstract fun showInterstitial(requestId: Double, adUnitId: String, promise: Promise)
44
+
45
+ @ReactMethod
46
+ abstract fun isRewardedAdReady(requestId: Double, adUnitId: String, promise: Promise)
47
+
48
+ @ReactMethod
49
+ abstract fun loadRewardedAd(requestId: Double, adUnitId: String, promise: Promise)
50
+
51
+ @ReactMethod
52
+ abstract fun showRewardedAd(
53
+ requestId: Double,
54
+ adUnitId: String,
55
+ customData: String?,
56
+ promise: Promise,
57
+ )
58
+
59
+ @ReactMethod
60
+ abstract fun isAppOpenAdReady(requestId: Double, adUnitId: String, promise: Promise)
61
+
62
+ @ReactMethod
63
+ abstract fun loadAppOpenAd(requestId: Double, adUnitId: String, promise: Promise)
64
+
65
+ @ReactMethod
66
+ abstract fun showAppOpenAd(
67
+ requestId: Double,
68
+ adUnitId: String,
69
+ placement: String?,
70
+ customData: String?,
71
+ promise: Promise,
72
+ )
73
+
74
+ @ReactMethod
75
+ abstract fun isLightPopupReady(requestId: Double, adUnitId: String, promise: Promise)
76
+
77
+ @ReactMethod
78
+ abstract fun loadLightPopup(requestId: Double, adUnitId: String, promise: Promise)
79
+
80
+ @ReactMethod
81
+ abstract fun showLightPopup(requestId: Double, adUnitId: String, promise: Promise)
82
+
83
+ @ReactMethod
84
+ abstract fun setLightPopupAdConfiguration(
85
+ requestId: Double,
86
+ adUnitId: String,
87
+ configuration: ReadableMap,
88
+ promise: Promise,
89
+ )
90
+ }
@@ -4,43 +4,46 @@ import React
4
4
 
5
5
  extension DaroMModule {
6
6
 
7
- @objc(isAppOpenAdReady::::)
7
+ @objc(isAppOpenAdReady:adUnitId:resolve:reject:)
8
8
  func isAppOpenAdReady(
9
- _ requestId: NSNumber,
9
+ requestId: Double,
10
10
  adUnitId: String,
11
11
  resolve: RCTPromiseResolveBlock,
12
12
  reject: RCTPromiseRejectBlock
13
13
  ) {
14
+ let requestId = Int(requestId)
14
15
  if !Self.sdkInitialized {
15
16
  DaroMModule.logger.debug("[DaroMMobileAds] !isInitialized")
16
17
  resolve(false)
17
18
  return
18
19
  }
19
- resolve(appOpenAds[requestId.intValue]?.loadedAd != nil)
20
+ resolve(appOpenAds[requestId]?.loadedAd != nil)
20
21
  }
21
22
 
22
- @objc(loadAppOpenAd::::)
23
+ @objc(loadAppOpenAd:adUnitId:resolve:reject:)
23
24
  func loadAppOpenAd(
24
- _ requestId: NSNumber,
25
+ requestId: Double,
25
26
  adUnitId: String,
26
27
  resolve: RCTPromiseResolveBlock,
27
28
  reject: RCTPromiseRejectBlock
28
29
  ) {
29
- let appOpenAdLoader = retrieveAppOpenLoader(requestId: requestId.intValue, adUnitId: adUnitId)
30
+ let requestId = Int(requestId)
31
+ let appOpenAdLoader = retrieveAppOpenLoader(requestId: requestId, adUnitId: adUnitId)
30
32
  appOpenAdLoader.loadAd()
31
- resolve(Void())
33
+ resolve(Void())
32
34
  }
33
35
 
34
- @objc(showAppOpenAd::::::)
36
+ @objc(showAppOpenAd:adUnitId:placement:customData:resolve:reject:)
35
37
  func showAppOpenAd(
36
- _ requestId: NSNumber,
38
+ requestId: Double,
37
39
  adUnitId: String,
38
40
  placement: String?,
39
41
  customData: String?,
40
42
  resolve: @escaping RCTPromiseResolveBlock,
41
43
  reject: RCTPromiseRejectBlock
42
44
  ) {
43
- guard let loadedAd = appOpenAds[requestId.intValue]?.loadedAd else {
45
+ let requestId = Int(requestId)
46
+ guard let loadedAd = appOpenAds[requestId]?.loadedAd else {
44
47
  reject("APPOPEN_NOT_LOADED", "AppOpen ad not loaded", nil)
45
48
  return
46
49
  }
@@ -4,41 +4,44 @@ import React
4
4
 
5
5
  extension DaroMModule {
6
6
 
7
- @objc(isInterstitialReady::::)
7
+ @objc(isInterstitialReady:adUnitId:resolve:reject:)
8
8
  func isInterstitialReady(
9
- _ requestId: NSNumber,
9
+ requestId: Double,
10
10
  adUnitId: String,
11
11
  resolve: RCTPromiseResolveBlock,
12
12
  reject: RCTPromiseRejectBlock
13
13
  ) {
14
+ let requestId = Int(requestId)
14
15
  if !Self.sdkInitialized {
15
16
  DaroMModule.logger.debug("[DaroMMobileAds] !isInitialized")
16
17
  resolve(false)
17
18
  return
18
19
  }
19
- resolve(interstitials[requestId.intValue]?.loadedAd != nil)
20
+ resolve(interstitials[requestId]?.loadedAd != nil)
20
21
  }
21
22
 
22
- @objc(loadInterstitial::::)
23
+ @objc(loadInterstitial:adUnitId:resolve:reject:)
23
24
  func loadInterstitial(
24
- _ requestId: NSNumber,
25
+ requestId: Double,
25
26
  adUnitId: String,
26
27
  resolve: RCTPromiseResolveBlock,
27
28
  reject: RCTPromiseRejectBlock
28
29
  ) {
29
- let interstitialLoader = retrieveInterstitialLoader(requestId: requestId.intValue, adUnitId: adUnitId)
30
+ let requestId = Int(requestId)
31
+ let interstitialLoader = retrieveInterstitialLoader(requestId: requestId, adUnitId: adUnitId)
30
32
  interstitialLoader.loadAd()
31
33
  resolve(Void())
32
34
  }
33
35
 
34
- @objc(showInterstitial::::)
36
+ @objc(showInterstitial:adUnitId:resolve:reject:)
35
37
  func showInterstitial(
36
- _ requestId: NSNumber,
38
+ requestId: Double,
37
39
  adUnitId: String,
38
40
  resolve: @escaping RCTPromiseResolveBlock,
39
41
  reject: @escaping RCTPromiseRejectBlock
40
42
  ) {
41
- guard let loadedAd = interstitials[requestId.intValue]?.loadedAd else {
43
+ let requestId = Int(requestId)
44
+ guard let loadedAd = interstitials[requestId]?.loadedAd else {
42
45
  reject("INTERSTITIAL_NOT_LOADED", "Interstitial ad not loaded", nil)
43
46
  return
44
47
  }
@@ -3,45 +3,48 @@ import UIKit
3
3
  // MARK: - LightPopup Ad
4
4
  extension DaroMModule {
5
5
 
6
- @objc(isLightPopupReady::::)
6
+ @objc(isLightPopupReady:adUnitId:resolve:reject:)
7
7
  func isLightPopupReady(
8
- _ requestId: NSNumber,
8
+ requestId: Double,
9
9
  adUnitId: String,
10
10
  resolve: RCTPromiseResolveBlock,
11
11
  reject: RCTPromiseRejectBlock
12
12
  ) {
13
+ let requestId = Int(requestId)
13
14
  if !Self.sdkInitialized {
14
15
  DaroMModule.logger.debug("[DaroMMobileAds] !isInitialized")
15
16
  resolve(false)
16
17
  return
17
18
  }
18
- resolve(lightPopups[requestId.intValue]?.loadedAd != nil)
19
+ resolve(lightPopups[requestId]?.loadedAd != nil)
19
20
  }
20
21
 
21
- @objc(loadLightPopup::::)
22
+ @objc(loadLightPopup:adUnitId:resolve:reject:)
22
23
  func loadLightPopup(
23
- _ requestId: NSNumber,
24
+ requestId: Double,
24
25
  adUnitId: String,
25
26
  resolve: RCTPromiseResolveBlock,
26
27
  reject: RCTPromiseRejectBlock
27
28
  ) {
28
- let lightPopupLoader = retrieveLightPopupLoader(requestId: requestId.intValue, adUnitId: adUnitId)
29
+ let requestId = Int(requestId)
30
+ let lightPopupLoader = retrieveLightPopupLoader(requestId: requestId, adUnitId: adUnitId)
29
31
  lightPopupLoader.loadAd()
30
32
  resolve(Void())
31
33
  }
32
34
 
33
- @objc(showLightPopup::::)
35
+ @objc(showLightPopup:adUnitId:resolve:reject:)
34
36
  func showLightPopup(
35
- _ requestId: NSNumber,
37
+ requestId: Double,
36
38
  adUnitId: String,
37
39
  resolve: @escaping RCTPromiseResolveBlock,
38
40
  reject: @escaping RCTPromiseRejectBlock
39
41
  ) {
40
- guard let loadedAd = lightPopups[requestId.intValue]?.loadedAd else {
42
+ let requestId = Int(requestId)
43
+ guard let loadedAd = lightPopups[requestId]?.loadedAd else {
41
44
  reject("LIGHTPOPUP_NOT_LOADED", "LightPopup ad not loaded", nil)
42
45
  return
43
46
  }
44
- let reqIdInt = requestId.intValue
47
+ let reqIdInt = requestId
45
48
  executeOnMainThread { [weak self] in
46
49
  guard let viewController = UIApplication.shared.windows.first?.rootViewController else {
47
50
  reject("VIEW_CONTROLLER_NOT_FOUND", "Root view controller not found", nil)
@@ -53,15 +56,15 @@ extension DaroMModule {
53
56
  }
54
57
  }
55
58
 
56
- @objc(setLightPopupAdConfiguration:::::)
59
+ @objc(setLightPopupAdConfiguration:adUnitId:configuration:resolve:reject:)
57
60
  func setLightPopupAdConfiguration(
58
- _ requestId: NSNumber,
61
+ requestId: Double,
59
62
  adUnitId: String,
60
63
  configuration: [String: Any],
61
64
  resolve: RCTPromiseResolveBlock,
62
65
  reject: RCTPromiseRejectBlock
63
66
  ) {
64
- let reqIdInt = requestId.intValue
67
+ let reqIdInt = Int(requestId)
65
68
  guard let loadedAd = lightPopups[reqIdInt]?.loadedAd else {
66
69
  lightPopupConfigurations[reqIdInt] = configuration
67
70
  resolve(Void())
@@ -1,43 +1,46 @@
1
1
  import React
2
2
 
3
3
  extension DaroMModule {
4
- @objc(isRewardedAdReady::::)
4
+ @objc(isRewardedAdReady:adUnitId:resolve:reject:)
5
5
  func isRewardedAdReady(
6
- _ requestId: NSNumber,
6
+ requestId: Double,
7
7
  adUnitId: String,
8
8
  resolve: RCTPromiseResolveBlock,
9
9
  reject: RCTPromiseRejectBlock
10
10
  ) {
11
+ let requestId = Int(requestId)
11
12
  if !Self.sdkInitialized {
12
13
  DaroMModule.logger.debug("[DaroMMobileAds] !isInitialized")
13
14
  resolve(false)
14
15
  return
15
16
  }
16
17
 
17
- resolve(rewardedAds[requestId.intValue]?.loadedAd != nil)
18
+ resolve(rewardedAds[requestId]?.loadedAd != nil)
18
19
  }
19
20
 
20
- @objc(loadRewardedAd::::)
21
+ @objc(loadRewardedAd:adUnitId:resolve:reject:)
21
22
  func loadRewardedAd(
22
- _ requestId: NSNumber,
23
+ requestId: Double,
23
24
  adUnitId: String,
24
25
  resolve: RCTPromiseResolveBlock,
25
26
  reject: RCTPromiseRejectBlock
26
27
  ) {
27
- let rewardedLoader = retrieveRewardedLoader(requestId: requestId.intValue, adUnitId: adUnitId)
28
+ let requestId = Int(requestId)
29
+ let rewardedLoader = retrieveRewardedLoader(requestId: requestId, adUnitId: adUnitId)
28
30
  rewardedLoader.loadAd()
29
31
  resolve(Void())
30
32
  }
31
33
 
32
- @objc(showRewardedAd:::::)
34
+ @objc(showRewardedAd:adUnitId:customData:resolve:reject:)
33
35
  func showRewardedAd(
34
- _ requestId: NSNumber,
36
+ requestId: Double,
35
37
  adUnitId: String,
36
38
  customData: String?,
37
39
  resolve: @escaping RCTPromiseResolveBlock,
38
40
  reject: @escaping RCTPromiseRejectBlock
39
41
  ) {
40
- guard let loadedAd = rewardedAds[requestId.intValue]?.loadedAd else {
42
+ let requestId = Int(requestId)
43
+ guard let loadedAd = rewardedAds[requestId]?.loadedAd else {
41
44
  reject("REWARDED_AD_NOT_LOADED", "Rewarded ad not loaded", nil)
42
45
  return
43
46
  }
@@ -1,45 +1,73 @@
1
1
  #import <React/RCTBridgeModule.h>
2
2
  #import <React/RCTEventEmitter.h>
3
3
 
4
+ #ifdef RCT_NEW_ARCH_ENABLED
5
+ #import <DaroReactNativeSpec/DaroReactNativeSpec.h>
6
+ #endif
7
+
4
8
  @interface RCT_EXTERN_MODULE (DaroMModule, RCTEventEmitter)
5
9
 
6
10
  #pragma mark - Initialization
7
11
 
8
- RCT_EXTERN_METHOD(isInitialized : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
9
- RCT_EXTERN_METHOD(initializeSdk : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
10
- RCT_EXTERN_METHOD(setUserId : (NSString *)userId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
12
+ RCT_EXTERN_METHOD(isInitialized:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
13
+ RCT_EXTERN_METHOD(initializeSdk:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
14
+ RCT_EXTERN_METHOD(setUserId:(NSString *)userId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
11
15
 
12
16
  #pragma mark - Mediation Debugger
13
17
 
14
- RCT_EXTERN_METHOD(showMediationDebugger : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
18
+ RCT_EXTERN_METHOD(showMediationDebugger:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
15
19
 
16
20
  #pragma mark - Interstitial
17
21
 
18
- RCT_EXTERN_METHOD(isInterstitialReady : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
19
- RCT_EXTERN_METHOD(loadInterstitial : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
20
- RCT_EXTERN_METHOD(showInterstitial : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
22
+ RCT_EXTERN_METHOD(isInterstitialReady:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
23
+ RCT_EXTERN_METHOD(loadInterstitial:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
24
+ RCT_EXTERN_METHOD(showInterstitial:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
21
25
 
22
26
  #pragma mark - Rewarded
23
27
 
24
- RCT_EXTERN_METHOD(isRewardedAdReady : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
25
- RCT_EXTERN_METHOD(loadRewardedAd : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
26
- RCT_EXTERN_METHOD(showRewardedAd : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (nullable NSString *)customData : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
28
+ RCT_EXTERN_METHOD(isRewardedAdReady:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
29
+ RCT_EXTERN_METHOD(loadRewardedAd:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
30
+ RCT_EXTERN_METHOD(showRewardedAd:(double)requestId adUnitId:(NSString *)adUnitId customData:(nullable NSString *)customData resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
27
31
 
28
32
  #pragma mark - AppOpen Ad
29
33
 
30
- RCT_EXTERN_METHOD(isAppOpenAdReady : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
31
- RCT_EXTERN_METHOD(loadAppOpenAd : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
32
- RCT_EXTERN_METHOD(showAppOpenAd : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (nullable NSString *)placement : (nullable NSString *)customData : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
34
+ RCT_EXTERN_METHOD(isAppOpenAdReady:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
35
+ RCT_EXTERN_METHOD(loadAppOpenAd:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
36
+ RCT_EXTERN_METHOD(showAppOpenAd:(double)requestId adUnitId:(NSString *)adUnitId placement:(nullable NSString *)placement customData:(nullable NSString *)customData resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
33
37
 
34
38
  #pragma mark - Light Popup
35
39
 
36
- RCT_EXTERN_METHOD(isLightPopupReady : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
37
- RCT_EXTERN_METHOD(loadLightPopup : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
38
- RCT_EXTERN_METHOD(showLightPopup : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
39
- RCT_EXTERN_METHOD(setLightPopupAdConfiguration : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (NSDictionary *)configuration : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
40
+ RCT_EXTERN_METHOD(isLightPopupReady:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
41
+ RCT_EXTERN_METHOD(loadLightPopup:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
42
+ RCT_EXTERN_METHOD(showLightPopup:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
43
+ RCT_EXTERN_METHOD(setLightPopupAdConfiguration:(double)requestId adUnitId:(NSString *)adUnitId configuration:(NSDictionary *)configuration resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
40
44
 
41
45
  + (BOOL)requiresMainQueueSetup {
42
46
  return YES;
43
47
  }
44
48
 
45
49
  @end
50
+
51
+ #ifdef RCT_NEW_ARCH_ENABLED
52
+
53
+ @interface DaroMModule (TurboModule) <RCTTurboModule>
54
+ @end
55
+
56
+ @implementation DaroMModule (TurboModule)
57
+
58
+ - (facebook::react::ModuleConstants<JS::NativeDaroModule::Constants>)getConstants
59
+ {
60
+ NSDictionary *constants = [self constantsToExport] ?: @{};
61
+ return (facebook::react::ModuleConstants<JS::NativeDaroModule::Constants>)
62
+ [_RCTTypedModuleConstants newWithUnsafeDictionary:constants];
63
+ }
64
+
65
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
66
+ (const facebook::react::ObjCTurboModule::InitParams &)params
67
+ {
68
+ return std::make_shared<facebook::react::NativeDaroModuleSpecJSI>(params);
69
+ }
70
+
71
+ @end
72
+
73
+ #endif
@@ -90,12 +90,12 @@ class DaroMModule: RCTEventEmitter {
90
90
 
91
91
  // MARK: - SDK 초기화 및 설정
92
92
 
93
- @objc(isInitialized::)
93
+ @objc(isInitialized:reject:)
94
94
  func isInitialized(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
95
95
  resolve(Self.sdkInitialized)
96
96
  }
97
97
 
98
- @objc(initializeSdk::)
98
+ @objc(initializeSdk:reject:)
99
99
  func initializeSdk(
100
100
  resolve: @escaping RCTPromiseResolveBlock,
101
101
  reject: @escaping RCTPromiseRejectBlock
@@ -121,14 +121,14 @@ class DaroMModule: RCTEventEmitter {
121
121
  }
122
122
  }
123
123
 
124
- @objc(showMediationDebugger::)
124
+ @objc(showMediationDebugger:reject:)
125
125
  func showMediationDebugger(resolve: @escaping RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
126
126
  DaroMediationDebugger.show {
127
127
  resolve(Void())
128
128
  }
129
129
  }
130
130
 
131
- @objc(setUserId:::)
131
+ @objc(setUserId:resolve:reject:)
132
132
  func setUserId(userId: String, resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
133
133
  DaroAds.shared.userId = userId
134
134
  resolve(Void())
@@ -0,0 +1,207 @@
1
+ #import <React/RCTDefines.h>
2
+
3
+ #ifdef RCT_NEW_ARCH_ENABLED
4
+
5
+ #import <React/RCTComponent.h>
6
+ #import <React/RCTFabricComponentsPlugins.h>
7
+ #import <React/RCTViewComponentView.h>
8
+ #import <react/renderer/components/DaroReactNativeSpec/ComponentDescriptors.h>
9
+ #import <react/renderer/components/DaroReactNativeSpec/EventEmitters.h>
10
+ #import <react/renderer/components/DaroReactNativeSpec/Props.h>
11
+ #import <react/renderer/components/DaroReactNativeSpec/RCTComponentViewHelpers.h>
12
+ #include <folly/dynamic.h>
13
+ #include <string>
14
+
15
+ using namespace facebook::react;
16
+
17
+ extern UIView *DaroMFabricCreateSwiftView(NSString *className);
18
+ extern void DaroMFabricSetValue(UIView *view, NSString *key, id value);
19
+ extern void DaroMFabricPerformSelector(UIView *view, SEL selector);
20
+ extern void DaroMFabricPerformSelectorWithObject(UIView *view, SEL selector, id object);
21
+ extern NSString *DaroMFabricNSStringFromStdString(const std::string &value);
22
+ extern NSDictionary *DaroMFabricEventBody(NSDictionary *body);
23
+ extern std::string DaroMFabricEventString(NSDictionary *body, NSString *key);
24
+ extern double DaroMFabricEventDouble(NSDictionary *body, NSString *key);
25
+ extern int DaroMFabricEventInt(NSDictionary *body, NSString *key);
26
+
27
+ @interface DaroMAdBannerViewComponentView : RCTViewComponentView <RCTDaroMAdBannerViewViewProtocol>
28
+ @end
29
+
30
+ @implementation DaroMAdBannerViewComponentView {
31
+ UIView *_bannerView;
32
+ }
33
+
34
+ + (void)load
35
+ {
36
+ [super load];
37
+ }
38
+
39
+ - (instancetype)initWithFrame:(CGRect)frame
40
+ {
41
+ if (self = [super initWithFrame:frame]) {
42
+ static const auto defaultProps = std::make_shared<const DaroMAdBannerViewProps>();
43
+ _props = defaultProps;
44
+ [self createBannerView];
45
+ }
46
+
47
+ return self;
48
+ }
49
+
50
+ - (void)createBannerView
51
+ {
52
+ _bannerView = DaroMFabricCreateSwiftView(@"DaroMAdBannerView");
53
+ self.contentView = _bannerView;
54
+ [self installEventHandlers];
55
+ }
56
+
57
+ - (void)installEventHandlers
58
+ {
59
+ __weak DaroMAdBannerViewComponentView *weakSelf = self;
60
+
61
+ RCTDirectEventBlock onAdLoadedEvent = ^(NSDictionary *body) {
62
+ DaroMAdBannerViewComponentView *strongSelf = weakSelf;
63
+ if (!strongSelf) {
64
+ return;
65
+ }
66
+
67
+ auto eventEmitter = std::static_pointer_cast<const DaroMAdBannerViewEventEmitter>(strongSelf->_eventEmitter);
68
+ if (!eventEmitter) {
69
+ return;
70
+ }
71
+
72
+ NSDictionary *eventBody = DaroMFabricEventBody(body);
73
+ eventEmitter->onAdLoadedEvent({
74
+ .adUnitId = DaroMFabricEventString(eventBody, @"adUnitId"),
75
+ .latencyMillis = DaroMFabricEventDouble(eventBody, @"latencyMillis"),
76
+ });
77
+ };
78
+
79
+ RCTDirectEventBlock onAdLoadFailedEvent = ^(NSDictionary *body) {
80
+ DaroMAdBannerViewComponentView *strongSelf = weakSelf;
81
+ if (!strongSelf) {
82
+ return;
83
+ }
84
+
85
+ auto eventEmitter = std::static_pointer_cast<const DaroMAdBannerViewEventEmitter>(strongSelf->_eventEmitter);
86
+ if (!eventEmitter) {
87
+ return;
88
+ }
89
+
90
+ NSDictionary *eventBody = DaroMFabricEventBody(body);
91
+ eventEmitter->onAdLoadFailedEvent({
92
+ .adUnitId = DaroMFabricEventString(eventBody, @"adUnitId"),
93
+ .code = DaroMFabricEventInt(eventBody, @"code"),
94
+ .message = DaroMFabricEventString(eventBody, @"message"),
95
+ .latencyMillis = DaroMFabricEventDouble(eventBody, @"latencyMillis"),
96
+ });
97
+ };
98
+
99
+ RCTDirectEventBlock onAdClickedEvent = ^(NSDictionary *body) {
100
+ DaroMAdBannerViewComponentView *strongSelf = weakSelf;
101
+ if (!strongSelf) {
102
+ return;
103
+ }
104
+
105
+ auto eventEmitter = std::static_pointer_cast<const DaroMAdBannerViewEventEmitter>(strongSelf->_eventEmitter);
106
+ if (!eventEmitter) {
107
+ return;
108
+ }
109
+
110
+ NSDictionary *eventBody = DaroMFabricEventBody(body);
111
+ eventEmitter->onAdClickedEvent({
112
+ .adUnitId = DaroMFabricEventString(eventBody, @"adUnitId"),
113
+ .latencyMillis = DaroMFabricEventDouble(eventBody, @"latencyMillis"),
114
+ });
115
+ };
116
+
117
+ RCTDirectEventBlock onAdImpressionRecordedEvent = ^(NSDictionary *body) {
118
+ DaroMAdBannerViewComponentView *strongSelf = weakSelf;
119
+ if (!strongSelf) {
120
+ return;
121
+ }
122
+
123
+ auto eventEmitter = std::static_pointer_cast<const DaroMAdBannerViewEventEmitter>(strongSelf->_eventEmitter);
124
+ if (!eventEmitter) {
125
+ return;
126
+ }
127
+
128
+ NSDictionary *eventBody = DaroMFabricEventBody(body);
129
+ eventEmitter->onAdImpressionRecordedEvent({
130
+ .adUnitId = DaroMFabricEventString(eventBody, @"adUnitId"),
131
+ .latencyMillis = DaroMFabricEventDouble(eventBody, @"latencyMillis"),
132
+ });
133
+ };
134
+
135
+ DaroMFabricSetValue(_bannerView, @"onAdLoadedEvent", onAdLoadedEvent);
136
+ DaroMFabricSetValue(_bannerView, @"onAdLoadFailedEvent", onAdLoadFailedEvent);
137
+ DaroMFabricSetValue(_bannerView, @"onAdClickedEvent", onAdClickedEvent);
138
+ DaroMFabricSetValue(_bannerView, @"onAdImpressionRecordedEvent", onAdImpressionRecordedEvent);
139
+ }
140
+
141
+ + (ComponentDescriptorProvider)componentDescriptorProvider
142
+ {
143
+ return concreteComponentDescriptorProvider<DaroMAdBannerViewComponentDescriptor>();
144
+ }
145
+
146
+ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &)oldProps
147
+ {
148
+ const auto &oldComponentProps = *std::static_pointer_cast<const DaroMAdBannerViewProps>(_props);
149
+ const auto &newComponentProps = *std::static_pointer_cast<const DaroMAdBannerViewProps>(props);
150
+ NSMutableArray<NSString *> *changedProps = [NSMutableArray new];
151
+
152
+ if (oldComponentProps.adUnitId != newComponentProps.adUnitId) {
153
+ DaroMFabricSetValue(_bannerView, @"adUnitId", DaroMFabricNSStringFromStdString(newComponentProps.adUnitId));
154
+ [changedProps addObject:@"adUnitId"];
155
+ }
156
+
157
+ if (oldComponentProps.adFormat != newComponentProps.adFormat) {
158
+ DaroMFabricSetValue(_bannerView, @"adFormat", DaroMFabricNSStringFromStdString(newComponentProps.adFormat));
159
+ [changedProps addObject:@"adFormat"];
160
+ }
161
+
162
+ if (oldComponentProps.loadOnMount != newComponentProps.loadOnMount) {
163
+ DaroMFabricSetValue(_bannerView, @"loadOnMount", @(newComponentProps.loadOnMount));
164
+ [changedProps addObject:@"loadOnMount"];
165
+ }
166
+
167
+ if (oldComponentProps.isVisible != newComponentProps.isVisible) {
168
+ DaroMFabricSetValue(_bannerView, @"isVisible", @(newComponentProps.isVisible));
169
+ [changedProps addObject:@"isVisible"];
170
+ }
171
+
172
+ [super updateProps:props oldProps:oldProps];
173
+
174
+ DaroMFabricPerformSelectorWithObject(_bannerView, NSSelectorFromString(@"applyReactProps:"), changedProps);
175
+ }
176
+
177
+ - (void)loadAd
178
+ {
179
+ DaroMFabricPerformSelector(_bannerView, NSSelectorFromString(@"loadAd"));
180
+ }
181
+
182
+ - (void)handleCommand:(const NSString *)commandName args:(const NSArray *)args
183
+ {
184
+ RCTDaroMAdBannerViewHandleCommand(self, commandName, args);
185
+ }
186
+
187
+ - (void)prepareForRecycle
188
+ {
189
+ [super prepareForRecycle];
190
+ DaroMFabricSetValue(_bannerView, @"onAdLoadedEvent", nil);
191
+ DaroMFabricSetValue(_bannerView, @"onAdLoadFailedEvent", nil);
192
+ DaroMFabricSetValue(_bannerView, @"onAdClickedEvent", nil);
193
+ DaroMFabricSetValue(_bannerView, @"onAdImpressionRecordedEvent", nil);
194
+ DaroMFabricPerformSelector(_bannerView, NSSelectorFromString(@"prepareForReuse"));
195
+ [self installEventHandlers];
196
+ static const auto defaultProps = std::make_shared<const DaroMAdBannerViewProps>();
197
+ _props = defaultProps;
198
+ }
199
+
200
+ @end
201
+
202
+ Class<RCTComponentViewProtocol> DaroMAdBannerViewCls(void)
203
+ {
204
+ return DaroMAdBannerViewComponentView.class;
205
+ }
206
+
207
+ #endif