react-native-daro 1.0.13 → 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 (262) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +30 -30
  3. package/android/build.gradle +52 -59
  4. package/android/src/admob/java/com/daro/reactnative/DaroSdkBridge.kt +23 -0
  5. package/android/src/main/AndroidManifest.xml +1 -2
  6. package/android/src/main/java/com/{darom → daro/reactnative}/DaroMAdBannerViewManager.kt +38 -15
  7. package/android/src/main/java/com/daro/reactnative/DaroMAdNativeViewManager.kt +167 -0
  8. package/android/src/main/java/com/daro/reactnative/DaroMModule.kt +257 -0
  9. package/android/src/main/java/com/daro/reactnative/DaroMPackage.kt +45 -0
  10. package/android/src/main/java/com/daro/reactnative/DaroMediaViewManager.kt +25 -0
  11. package/android/src/main/java/com/{darom → daro/reactnative}/constants/InternalDaroMBannerSize.kt +1 -1
  12. package/android/src/main/java/com/{darom → daro/reactnative}/event/DaroMEvent.kt +19 -8
  13. package/android/src/main/java/com/{darom → daro/reactnative}/impl/DaroMBannerViewModuleImpl.kt +2 -2
  14. package/android/src/main/java/com/{darom → daro/reactnative}/impl/DaroMInterstitialModuleImpl.kt +26 -26
  15. package/android/src/main/java/com/{darom → daro/reactnative}/impl/DaroMLightPopupModuleImpl.kt +30 -29
  16. package/android/src/main/java/com/{darom → daro/reactnative}/impl/DaroMRewardedAdModuleImpl.kt +27 -27
  17. package/android/src/main/java/com/{darom → daro/reactnative}/util/AdInfoUtil.kt +25 -1
  18. package/android/src/main/java/com/daro/reactnative/util/EventEmitterUtil.kt +37 -0
  19. package/android/src/main/java/com/daro/reactnative/view/DaroMAdBannerViewContainer.kt +417 -0
  20. package/android/src/main/java/com/daro/reactnative/view/DaroMAdNativeViewContainer.kt +624 -0
  21. package/android/src/main/java/com/daro/reactnative/view/DaroMediaView.kt +123 -0
  22. package/android/src/newarch/java/com/daro/reactnative/DaroMModuleSpec.kt +6 -0
  23. package/android/src/oldarch/java/com/daro/reactnative/DaroMModuleSpec.kt +90 -0
  24. package/app.plugin.js +1 -0
  25. package/ios/DaroMModule+AppOpen.swift +38 -32
  26. package/ios/DaroMModule+Interstitial.swift +32 -26
  27. package/ios/DaroMModule+LightPopup.swift +43 -33
  28. package/ios/DaroMModule+Rewarded.swift +38 -27
  29. package/ios/DaroMModule.mm +45 -17
  30. package/ios/DaroMModule.swift +24 -17
  31. package/ios/Fabric/DaroMAdBannerComponentView.mm +207 -0
  32. package/ios/Fabric/DaroMFabricEventSink.mm +31 -0
  33. package/ios/Fabric/DaroMFabricPropApplier.mm +123 -0
  34. package/ios/Fabric/DaroMNativeAdComponentView.mm +294 -0
  35. package/ios/{DaroMAdBannerViewManager.m → Paper/DaroMAdBannerViewManager.m} +3 -1
  36. package/ios/Paper/DaroMAdBannerViewManager.swift +21 -0
  37. package/ios/{DaroMNativeAdViewManager.m → Paper/DaroMNativeAdViewManager.m} +2 -1
  38. package/ios/Paper/DaroMNativeAdViewManager.swift +22 -0
  39. package/ios/Shared/DaroMAdEventSink.swift +24 -0
  40. package/ios/Shared/DaroMBannerAdView.swift +188 -0
  41. package/ios/Shared/DaroMNativeAdLoadCoordinator.swift +49 -0
  42. package/ios/Shared/DaroMNativeAdView.swift +575 -0
  43. package/ios/Shared/DaroMNativeAssetResolver.swift +53 -0
  44. package/ios/mediation/admob/DaroMediationDebugger.swift +11 -0
  45. package/ios/mediation/admob/DaroMediationTypes.swift +23 -0
  46. package/lib/commonjs/AdBannerView.js +21 -35
  47. package/lib/commonjs/AdBannerView.js.map +1 -1
  48. package/lib/commonjs/AppOpenAd.js +80 -21
  49. package/lib/commonjs/AppOpenAd.js.map +1 -1
  50. package/lib/commonjs/DaroMAdBannerViewNativeComponent.ts +47 -0
  51. package/lib/commonjs/DaroMNativeAdViewNativeComponent.ts +62 -0
  52. package/lib/commonjs/DaroMediaViewNativeComponent.ts +9 -0
  53. package/lib/commonjs/ErrorCode.js.map +1 -1
  54. package/lib/commonjs/EventEmitter.js +4 -5
  55. package/lib/commonjs/EventEmitter.js.map +1 -1
  56. package/lib/commonjs/InterstitialAd.js +48 -22
  57. package/lib/commonjs/InterstitialAd.js.map +1 -1
  58. package/lib/commonjs/LightPopupAd.js +64 -46
  59. package/lib/commonjs/LightPopupAd.js.map +1 -1
  60. package/lib/commonjs/NativeDaroModule.js +9 -0
  61. package/lib/commonjs/NativeDaroModule.js.map +1 -0
  62. package/lib/commonjs/RewardedAd.js +47 -23
  63. package/lib/commonjs/RewardedAd.js.map +1 -1
  64. package/lib/commonjs/codegen-env.d.js +2 -0
  65. package/lib/commonjs/codegen-env.d.js.map +1 -0
  66. package/lib/commonjs/hooks/useInterstitialAd.js +110 -0
  67. package/lib/commonjs/hooks/useInterstitialAd.js.map +1 -0
  68. package/lib/commonjs/hooks/useLightPopupAd.js +114 -0
  69. package/lib/commonjs/hooks/useLightPopupAd.js.map +1 -0
  70. package/lib/commonjs/hooks/useRewardedAd.js +113 -0
  71. package/lib/commonjs/hooks/useRewardedAd.js.map +1 -0
  72. package/lib/commonjs/index.js +29 -13
  73. package/lib/commonjs/index.js.map +1 -1
  74. package/lib/commonjs/nativeAd/NativeAdView.js +23 -18
  75. package/lib/commonjs/nativeAd/NativeAdView.js.map +1 -1
  76. package/lib/commonjs/nativeAd/NativeAdViewComponents.js +43 -31
  77. package/lib/commonjs/nativeAd/NativeAdViewComponents.js.map +1 -1
  78. package/lib/commonjs/nativeAd/NativeAdViewProvider.js +34 -7
  79. package/lib/commonjs/nativeAd/NativeAdViewProvider.js.map +1 -1
  80. package/lib/commonjs/package.json +1 -0
  81. package/lib/module/AdBannerView.js +20 -36
  82. package/lib/module/AdBannerView.js.map +1 -1
  83. package/lib/module/AppOpenAd.js +80 -22
  84. package/lib/module/AppOpenAd.js.map +1 -1
  85. package/lib/module/DaroMAdBannerViewNativeComponent.ts +47 -0
  86. package/lib/module/DaroMNativeAdViewNativeComponent.ts +62 -0
  87. package/lib/module/DaroMediaViewNativeComponent.ts +9 -0
  88. package/lib/module/ErrorCode.js.map +1 -1
  89. package/lib/module/EventEmitter.js +4 -6
  90. package/lib/module/EventEmitter.js.map +1 -1
  91. package/lib/module/InterstitialAd.js +47 -22
  92. package/lib/module/InterstitialAd.js.map +1 -1
  93. package/lib/module/LightPopupAd.js +65 -47
  94. package/lib/module/LightPopupAd.js.map +1 -1
  95. package/lib/module/NativeDaroModule.js +5 -0
  96. package/lib/module/NativeDaroModule.js.map +1 -0
  97. package/lib/module/RewardedAd.js +46 -23
  98. package/lib/module/RewardedAd.js.map +1 -1
  99. package/lib/module/codegen-env.d.js +2 -0
  100. package/lib/module/codegen-env.d.js.map +1 -0
  101. package/lib/module/hooks/useInterstitialAd.js +106 -0
  102. package/lib/module/hooks/useInterstitialAd.js.map +1 -0
  103. package/lib/module/hooks/useLightPopupAd.js +110 -0
  104. package/lib/module/hooks/useLightPopupAd.js.map +1 -0
  105. package/lib/module/hooks/useRewardedAd.js +109 -0
  106. package/lib/module/hooks/useRewardedAd.js.map +1 -0
  107. package/lib/module/index.js +7 -13
  108. package/lib/module/index.js.map +1 -1
  109. package/lib/module/nativeAd/NativeAdView.js +22 -19
  110. package/lib/module/nativeAd/NativeAdView.js.map +1 -1
  111. package/lib/module/nativeAd/NativeAdViewComponents.js +45 -34
  112. package/lib/module/nativeAd/NativeAdViewComponents.js.map +1 -1
  113. package/lib/module/nativeAd/NativeAdViewProvider.js +35 -8
  114. package/lib/module/nativeAd/NativeAdViewProvider.js.map +1 -1
  115. package/lib/module/package.json +1 -0
  116. package/lib/typescript/commonjs/plugin/src/index.d.ts +19 -0
  117. package/lib/typescript/commonjs/plugin/src/index.d.ts.map +1 -0
  118. package/lib/typescript/commonjs/plugin/src/skAdNetworkIds.d.ts +6 -0
  119. package/lib/typescript/commonjs/plugin/src/skAdNetworkIds.d.ts.map +1 -0
  120. package/lib/typescript/commonjs/plugin/src/withAndroid.d.ts +8 -0
  121. package/lib/typescript/commonjs/plugin/src/withAndroid.d.ts.map +1 -0
  122. package/lib/typescript/commonjs/plugin/src/withIos.d.ts +8 -0
  123. package/lib/typescript/commonjs/plugin/src/withIos.d.ts.map +1 -0
  124. package/lib/typescript/commonjs/src/AdBannerView.d.ts +126 -4
  125. package/lib/typescript/commonjs/src/AdBannerView.d.ts.map +1 -1
  126. package/lib/typescript/commonjs/src/AppOpenAd.d.ts +6 -0
  127. package/lib/typescript/commonjs/src/AppOpenAd.d.ts.map +1 -1
  128. package/lib/typescript/commonjs/src/DaroMAdBannerViewNativeComponent.d.ts +32 -0
  129. package/lib/typescript/commonjs/src/DaroMAdBannerViewNativeComponent.d.ts.map +1 -0
  130. package/lib/typescript/commonjs/src/DaroMNativeAdViewNativeComponent.d.ts +42 -0
  131. package/lib/typescript/commonjs/src/DaroMNativeAdViewNativeComponent.d.ts.map +1 -0
  132. package/lib/typescript/commonjs/src/DaroMediaViewNativeComponent.d.ts +6 -0
  133. package/lib/typescript/commonjs/src/DaroMediaViewNativeComponent.d.ts.map +1 -0
  134. package/lib/typescript/commonjs/src/ErrorCode.d.ts.map +1 -1
  135. package/lib/typescript/commonjs/src/EventEmitter.d.ts.map +1 -1
  136. package/lib/typescript/commonjs/src/InterstitialAd.d.ts +6 -0
  137. package/lib/typescript/commonjs/src/InterstitialAd.d.ts.map +1 -1
  138. package/lib/typescript/commonjs/src/LightPopupAd.d.ts +6 -0
  139. package/lib/typescript/commonjs/src/LightPopupAd.d.ts.map +1 -1
  140. package/lib/typescript/commonjs/src/NativeDaroModule.d.ts +61 -0
  141. package/lib/typescript/commonjs/src/NativeDaroModule.d.ts.map +1 -0
  142. package/lib/typescript/commonjs/src/RewardedAd.d.ts +6 -0
  143. package/lib/typescript/commonjs/src/RewardedAd.d.ts.map +1 -1
  144. package/lib/typescript/commonjs/src/hooks/useInterstitialAd.d.ts +19 -0
  145. package/lib/typescript/commonjs/src/hooks/useInterstitialAd.d.ts.map +1 -0
  146. package/lib/typescript/commonjs/src/hooks/useLightPopupAd.d.ts +23 -0
  147. package/lib/typescript/commonjs/src/hooks/useLightPopupAd.d.ts.map +1 -0
  148. package/lib/typescript/commonjs/src/hooks/useRewardedAd.d.ts +20 -0
  149. package/lib/typescript/commonjs/src/hooks/useRewardedAd.d.ts.map +1 -0
  150. package/lib/typescript/commonjs/src/index.d.ts +7 -1
  151. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  152. package/lib/typescript/commonjs/src/nativeAd/NativeAdView.d.ts +125 -2
  153. package/lib/typescript/commonjs/src/nativeAd/NativeAdView.d.ts.map +1 -1
  154. package/lib/typescript/commonjs/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -1
  155. package/lib/typescript/commonjs/src/nativeAd/NativeAdViewProvider.d.ts +11 -5
  156. package/lib/typescript/commonjs/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -1
  157. package/lib/typescript/commonjs/src/types/AdBannerViewProps.d.ts +2 -2
  158. package/lib/typescript/commonjs/src/types/AdBannerViewProps.d.ts.map +1 -1
  159. package/lib/typescript/commonjs/src/types/AdInfo.d.ts.map +1 -1
  160. package/lib/typescript/commonjs/src/types/AdProps.d.ts +2 -2
  161. package/lib/typescript/commonjs/src/types/AdProps.d.ts.map +1 -1
  162. package/lib/typescript/commonjs/src/types/DaroMMobileAds.d.ts.map +1 -1
  163. package/lib/typescript/commonjs/src/types/NativeAdViewProps.d.ts +2 -0
  164. package/lib/typescript/commonjs/src/types/NativeAdViewProps.d.ts.map +1 -1
  165. package/lib/typescript/module/plugin/src/index.d.ts +19 -0
  166. package/lib/typescript/module/plugin/src/index.d.ts.map +1 -0
  167. package/lib/typescript/module/plugin/src/skAdNetworkIds.d.ts +6 -0
  168. package/lib/typescript/module/plugin/src/skAdNetworkIds.d.ts.map +1 -0
  169. package/lib/typescript/module/plugin/src/withAndroid.d.ts +8 -0
  170. package/lib/typescript/module/plugin/src/withAndroid.d.ts.map +1 -0
  171. package/lib/typescript/module/plugin/src/withIos.d.ts +8 -0
  172. package/lib/typescript/module/plugin/src/withIos.d.ts.map +1 -0
  173. package/lib/typescript/module/src/AdBannerView.d.ts +126 -4
  174. package/lib/typescript/module/src/AdBannerView.d.ts.map +1 -1
  175. package/lib/typescript/module/src/AppOpenAd.d.ts +6 -0
  176. package/lib/typescript/module/src/AppOpenAd.d.ts.map +1 -1
  177. package/lib/typescript/module/src/DaroMAdBannerViewNativeComponent.d.ts +32 -0
  178. package/lib/typescript/module/src/DaroMAdBannerViewNativeComponent.d.ts.map +1 -0
  179. package/lib/typescript/module/src/DaroMNativeAdViewNativeComponent.d.ts +42 -0
  180. package/lib/typescript/module/src/DaroMNativeAdViewNativeComponent.d.ts.map +1 -0
  181. package/lib/typescript/module/src/DaroMediaViewNativeComponent.d.ts +6 -0
  182. package/lib/typescript/module/src/DaroMediaViewNativeComponent.d.ts.map +1 -0
  183. package/lib/typescript/module/src/ErrorCode.d.ts.map +1 -1
  184. package/lib/typescript/module/src/EventEmitter.d.ts.map +1 -1
  185. package/lib/typescript/module/src/InterstitialAd.d.ts +6 -0
  186. package/lib/typescript/module/src/InterstitialAd.d.ts.map +1 -1
  187. package/lib/typescript/module/src/LightPopupAd.d.ts +6 -0
  188. package/lib/typescript/module/src/LightPopupAd.d.ts.map +1 -1
  189. package/lib/typescript/module/src/NativeDaroModule.d.ts +61 -0
  190. package/lib/typescript/module/src/NativeDaroModule.d.ts.map +1 -0
  191. package/lib/typescript/module/src/RewardedAd.d.ts +6 -0
  192. package/lib/typescript/module/src/RewardedAd.d.ts.map +1 -1
  193. package/lib/typescript/module/src/hooks/useInterstitialAd.d.ts +19 -0
  194. package/lib/typescript/module/src/hooks/useInterstitialAd.d.ts.map +1 -0
  195. package/lib/typescript/module/src/hooks/useLightPopupAd.d.ts +23 -0
  196. package/lib/typescript/module/src/hooks/useLightPopupAd.d.ts.map +1 -0
  197. package/lib/typescript/module/src/hooks/useRewardedAd.d.ts +20 -0
  198. package/lib/typescript/module/src/hooks/useRewardedAd.d.ts.map +1 -0
  199. package/lib/typescript/module/src/index.d.ts +7 -1
  200. package/lib/typescript/module/src/index.d.ts.map +1 -1
  201. package/lib/typescript/module/src/nativeAd/NativeAdView.d.ts +125 -2
  202. package/lib/typescript/module/src/nativeAd/NativeAdView.d.ts.map +1 -1
  203. package/lib/typescript/module/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -1
  204. package/lib/typescript/module/src/nativeAd/NativeAdViewProvider.d.ts +11 -5
  205. package/lib/typescript/module/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -1
  206. package/lib/typescript/module/src/types/AdBannerViewProps.d.ts +2 -2
  207. package/lib/typescript/module/src/types/AdBannerViewProps.d.ts.map +1 -1
  208. package/lib/typescript/module/src/types/AdInfo.d.ts.map +1 -1
  209. package/lib/typescript/module/src/types/AdProps.d.ts +2 -2
  210. package/lib/typescript/module/src/types/AdProps.d.ts.map +1 -1
  211. package/lib/typescript/module/src/types/DaroMMobileAds.d.ts.map +1 -1
  212. package/lib/typescript/module/src/types/NativeAdViewProps.d.ts +2 -0
  213. package/lib/typescript/module/src/types/NativeAdViewProps.d.ts.map +1 -1
  214. package/package.json +95 -105
  215. package/plugin/build/index.d.ts +18 -0
  216. package/plugin/build/index.js +71 -0
  217. package/plugin/build/skAdNetworkIds.d.ts +5 -0
  218. package/plugin/build/skAdNetworkIds.js +205 -0
  219. package/plugin/build/withAndroid.d.ts +7 -0
  220. package/plugin/build/withAndroid.js +222 -0
  221. package/plugin/build/withIos.d.ts +7 -0
  222. package/plugin/build/withIos.js +82 -0
  223. package/react-native-daro.podspec +28 -0
  224. package/src/AdBannerView.tsx +48 -48
  225. package/src/AppOpenAd.ts +101 -20
  226. package/src/DaroMAdBannerViewNativeComponent.ts +47 -0
  227. package/src/DaroMNativeAdViewNativeComponent.ts +62 -0
  228. package/src/DaroMediaViewNativeComponent.ts +9 -0
  229. package/src/ErrorCode.ts +1 -2
  230. package/src/EventEmitter.ts +9 -7
  231. package/src/InterstitialAd.ts +75 -21
  232. package/src/LightPopupAd.ts +90 -51
  233. package/src/NativeDaroModule.ts +91 -0
  234. package/src/RewardedAd.ts +72 -22
  235. package/src/codegen-env.d.ts +45 -0
  236. package/src/hooks/useInterstitialAd.ts +117 -0
  237. package/src/hooks/useLightPopupAd.ts +132 -0
  238. package/src/hooks/useRewardedAd.ts +122 -0
  239. package/src/index.tsx +21 -22
  240. package/src/nativeAd/NativeAdView.tsx +83 -45
  241. package/src/nativeAd/NativeAdViewComponents.tsx +129 -64
  242. package/src/nativeAd/NativeAdViewProvider.tsx +84 -16
  243. package/src/types/AdBannerViewProps.ts +11 -11
  244. package/src/types/AdInfo.ts +17 -17
  245. package/src/types/AdProps.ts +8 -9
  246. package/src/types/DaroMMobileAds.ts +3 -6
  247. package/src/types/NativeAdViewProps.ts +12 -5
  248. package/src/types/index.ts +1 -1
  249. package/android/gradle.properties +0 -5
  250. package/android/src/main/AndroidManifestNew.xml +0 -7
  251. package/android/src/main/java/com/darom/DaroMAdNativeViewManager.kt +0 -136
  252. package/android/src/main/java/com/darom/DaroMModule.kt +0 -203
  253. package/android/src/main/java/com/darom/DaroMPackage.kt +0 -21
  254. package/android/src/main/java/com/darom/util/EventEmitterUtil.kt +0 -24
  255. package/android/src/main/java/com/darom/view/DaroMAdBannerViewContainer.kt +0 -163
  256. package/android/src/main/java/com/darom/view/DaroMAdNativeViewContainer.kt +0 -375
  257. package/android/src/main/res/layout/layout_activity_transparent.xml +0 -7
  258. package/android/src/main/res/values/styles.xml +0 -11
  259. package/ios/DaroM-Bridging-Header.h +0 -6
  260. package/ios/DaroMAdBannerViewManager.swift +0 -91
  261. package/ios/DaroMNativeAdViewManager.swift +0 -291
  262. package/react-native-daro-m.podspec +0 -44
@@ -1,291 +0,0 @@
1
- import Combine
2
- import Daro
3
- import UIKit
4
-
5
- @objc(DaroMNativeAdViewManager)
6
- class DaroMNativeAdViewManager: RCTViewManager {
7
- override func view() -> RNDaroMNativeAdView {
8
- RNDaroMNativeAdView(bridge: bridge)
9
- }
10
-
11
- @objc override static func requiresMainQueueSetup() -> Bool {
12
- false
13
- }
14
-
15
- @objc(loadAd:)
16
- func loadAd(viewTag: NSNumber) {
17
- bridge?.uiManager.addUIBlock({ uiManager, viewRegistry in
18
- if let view = viewRegistry?[viewTag] as? RNDaroMNativeAdView {
19
- view._internalAdView?.loadAd()
20
- }
21
- })
22
- }
23
- }
24
-
25
- final class RNDaroMNativeAdView: UIView, RenderDelegate {
26
-
27
- var _internalAdView: BridgeNativeAdView?
28
- var adUnit: DaroAdUnit
29
-
30
- @objc var adUnitId: String?
31
- @objc var titleViewStyleProps: NSDictionary? {
32
- didSet {
33
- _internalTitleLabel.applyStyle(titleViewStyleProps)
34
- }
35
- }
36
- @objc var titleView: NSNumber?
37
- @objc var bodyViewStyleProps: NSDictionary? {
38
- didSet {
39
- _internalBodyLabel.applyStyle(bodyViewStyleProps)
40
- }
41
- }
42
- @objc var bodyView: NSNumber?
43
- @objc var callToActionViewStyleProps: NSDictionary? {
44
- didSet {
45
- _internalFakeCTAButton.applyStyle(callToActionViewStyleProps)
46
- }
47
- }
48
- @objc var callToActionView: NSNumber?
49
- @objc var iconViewStyleProps: NSDictionary? {
50
- didSet {
51
- _internalIconImageView.applyStyle(iconViewStyleProps)
52
- }
53
- }
54
- @objc var iconView: NSNumber?
55
- @objc var mediaViewStyleProps: NSDictionary? {
56
- didSet {
57
- _internalMediaView.baseApplyStyle(mediaViewStyleProps)
58
- }
59
- }
60
- @objc var mediaView: NSNumber?
61
-
62
- var _internalTitleLabel: UILabel = {
63
- let label = UILabel()
64
- label.isUserInteractionEnabled = false
65
- label.clipsToBounds = true
66
- label.font = .systemFont(ofSize: 15, weight: .bold)
67
- label.textColor = UIColor.black
68
- return label
69
- }()
70
-
71
- var _internalBodyLabel: UILabel = {
72
- let label = UILabel()
73
- label.isUserInteractionEnabled = false
74
- label.clipsToBounds = true
75
- label.font = .systemFont(ofSize: 15, weight: .regular)
76
- label.textColor = UIColor.black
77
- return label
78
- }()
79
-
80
- let _internalMediaView: UIView = UIView()
81
-
82
- var _internalIconImageView: UIImageView = {
83
- let view = UIImageView()
84
- view.contentMode = .scaleAspectFill
85
- return view
86
- }()
87
-
88
- /// Call to Action
89
- var _internalCallToActionButton: UIButton = {
90
- let button = UIButton()
91
- button.translatesAutoresizingMaskIntoConstraints = false
92
- button.titleLabel?.font = .systemFont(ofSize: 20, weight: .bold)
93
- button.setTitleColor(.white, for: .normal)
94
- return button
95
- }()
96
-
97
- var _internalFakeCTAButton: UIButton = {
98
- let button = UIButton()
99
- button.translatesAutoresizingMaskIntoConstraints = false
100
- button.setTitleColor(.white, for: .normal)
101
- return button
102
- }()
103
-
104
- @objc var onAdLoadedEvent: RCTDirectEventBlock?
105
- @objc var onAdLoadFailedEvent: RCTDirectEventBlock?
106
- @objc var onAdClickedEvent: RCTDirectEventBlock?
107
- @objc var onAdImpressionRecordedEvent: RCTDirectEventBlock?
108
-
109
- @Atomic private var isAdUnitIdSet: Bool = false
110
- @Atomic private var isBindBridge: Bool = false
111
-
112
-
113
- var bridge: RCTBridge?
114
-
115
- convenience init(bridge: RCTBridge?) {
116
- self.init()
117
- self.bridge = bridge
118
- }
119
-
120
- required init() {
121
- self.adUnit = DaroAdUnit(unitId: "")
122
- super.init(frame: .zero)
123
- }
124
-
125
- required init?(coder: NSCoder) {
126
- fatalError("init(coder:) has not been implemented")
127
- }
128
-
129
- /// Invoked after all the JavaScript properties are set when mounting AdView
130
- /// after all the user's asset views are mounted, following the 1st event
131
- /// 두 번 호출됨. 첫번째는 adUnitId가 설정된 후, 두번째는 모든 subview들이 마운트된 후
132
- override func didSetProps(_ changedProps: [String]) {
133
- guard let adUnitId else {
134
- DaroMModule.logger.warning("[native-ad] AdUnitId is required")
135
- return
136
- }
137
- guard changedProps.isEmpty == false else { return }
138
- DaroMModule.logger.info("[native-ad] \(#function): \(changedProps)")
139
- guard !isAdUnitIdSet else { return }
140
- isAdUnitIdSet = true
141
- makeAdViews(unitId: adUnitId)
142
- self._internalAdView?.loadAd()
143
- }
144
-
145
- override func didMoveToWindow() {
146
- super.didMoveToWindow()
147
-
148
- guard window != nil else { return }
149
-
150
- DispatchQueue.main.async { [weak self] in
151
- self?.bindBridgeViews()
152
- }
153
- }
154
-
155
- private func makeAdViews(unitId: String) {
156
- self.adUnit = DaroAdUnit(unitId: unitId)
157
- let native = BridgeNativeAdView(unit: adUnit)
158
- native.delegate = self
159
- self._internalAdView = native
160
- super.addSubview(native)
161
- native.pinToEdges(to: self)
162
-
163
- self._internalAdView?.listener.onAdLoadSuccess = { [weak self] ad, adInfo in
164
- // print("[QWER] onSuccess \(ad) \(adInfo)")
165
- self?.onAdLoadedEvent?(adInfo?.toBody)
166
- }
167
- self._internalAdView?.listener.onAdLoadFail = { [weak self] error in
168
- // print("[QWER] onFailure \(error)")
169
- self?.onAdLoadFailedEvent?(error.toBody)
170
- }
171
- self._internalAdView?.listener.onAdImpression = { [weak self] adInfo in
172
- // print("[QWER] adImpression\(adInfo)")
173
- self?.onAdImpressionRecordedEvent?(adInfo?.toBody)
174
- }
175
- self._internalAdView?.listener.onAdClicked = { [weak self] adInfo in
176
- // print("[QWER] adClicked \(adInfo)")
177
- self?.onAdClickedEvent?(adInfo?.toBody)
178
- }
179
- }
180
-
181
- private func getBridgeView(tag: NSNumber?) -> UIView? {
182
- guard let tag, let bridgeView = bridge?.uiManager.view(forReactTag: tag) else {
183
- return nil
184
- }
185
- return bridgeView
186
- }
187
-
188
- private func bindBridgeViews() {
189
- guard !isBindBridge else { return }
190
- isBindBridge = true
191
- var bindTitleLabel: UILabel?
192
- if let bridgeTitleView = getBridgeView(tag: titleView) {
193
- _internalTitleLabel.pinToEdges(to: bridgeTitleView)
194
- bindTitleLabel = _internalTitleLabel
195
- }
196
-
197
- var bindBodyLabel: UILabel?
198
- if let bridgeBodyView = getBridgeView(tag: bodyView) {
199
- _internalBodyLabel.pinToEdges(to: bridgeBodyView)
200
- bindBodyLabel = _internalBodyLabel
201
- }
202
-
203
- if let bridgeCallToActionView = getBridgeView(tag: callToActionView) {
204
- _internalFakeCTAButton.pinToEdges(to: bridgeCallToActionView)
205
- }
206
-
207
- var bindIconImageView: UIImageView?
208
- if let bridgeIconView = getBridgeView(tag: iconView) {
209
- _internalIconImageView.pinToEdges(to: bridgeIconView)
210
- bindIconImageView = _internalIconImageView
211
- }
212
-
213
- var bindMediaView: UIView?
214
- if let bridgeMediaView = getBridgeView(tag: mediaView) {
215
- _internalMediaView.pinToEdges(to: bridgeMediaView)
216
- bindMediaView = _internalMediaView
217
- }
218
-
219
- _internalCallToActionButton.pinToEdges(to: self)
220
-
221
- _internalAdView?.bindViews(
222
- titleLabel: bindTitleLabel,
223
- bodyLabel: bindBodyLabel,
224
- iconImageView: bindIconImageView,
225
- mediaContentView: bindMediaView,
226
- callToActionButton: _internalCallToActionButton
227
- )
228
- }
229
-
230
- func renderAd(for nativeAd: DaroAdNative) {
231
- self._internalFakeCTAButton.setTitle(_internalCallToActionButton.titleLabel?.text, for: .normal)
232
- self._internalCallToActionButton.setTitle("", for: .normal)
233
- self._internalCallToActionButton.alpha = 1
234
- }
235
-
236
- override func addSubview(_ view: UIView) {
237
- self._internalAdView?.addSubview(view)
238
- }
239
- }
240
-
241
- protocol RenderDelegate: AnyObject {
242
- func renderAd(for nativeAd: DaroAdNative)
243
- }
244
-
245
- class BridgeNativeAdView: DaroAdNativeView {
246
- weak var delegate: RenderDelegate?
247
-
248
- override func renderAd(for nativeAd: DaroAdNative, loader: any AdNativeLoadable) {
249
- super.renderAd(for: nativeAd, loader: loader)
250
- self.delegate?.renderAd(for: nativeAd)
251
- }
252
- }
253
-
254
- @propertyWrapper
255
- private struct Atomic<Value> {
256
- private var value: Value
257
- private let lock = NSLock()
258
-
259
- init(wrappedValue value: Value) {
260
- self.value = value
261
- }
262
-
263
- var wrappedValue: Value {
264
- get {
265
- lock.lock()
266
- defer { lock.unlock() }
267
- return value
268
- }
269
- set {
270
- lock.lock()
271
- value = newValue
272
- lock.unlock()
273
- }
274
- }
275
- }
276
-
277
- private extension UIView {
278
- func pinToEdges(to: UIView) {
279
- translatesAutoresizingMaskIntoConstraints = false
280
- if self.superview != to {
281
- removeFromSuperview()
282
- to.addSubview(self)
283
- }
284
- NSLayoutConstraint.activate([
285
- topAnchor.constraint(equalTo: to.topAnchor),
286
- bottomAnchor.constraint(equalTo: to.bottomAnchor),
287
- leftAnchor.constraint(equalTo: to.leftAnchor),
288
- rightAnchor.constraint(equalTo: to.rightAnchor),
289
- ])
290
- }
291
- }
@@ -1,44 +0,0 @@
1
- require "json"
2
-
3
- package = JSON.parse(File.read(File.join(__dir__, "package.json")))
4
- folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
5
-
6
- Pod::Spec.new do |s|
7
- s.name = "react-native-daro-m"
8
- s.version = package["version"]
9
- s.summary = package["description"]
10
- s.homepage = package["homepage"]
11
- s.license = package["license"]
12
- s.authors = package["author"]
13
-
14
- s.platforms = { :ios => "15.1" }
15
- s.source = { :git => "https://github.com/delightroom/daro-m-react-native.git", :tag => "#{s.version}" }
16
-
17
- s.source_files = "ios/**/*.{h,m,mm,swift}"
18
-
19
- s.dependency "DaroAds", "1.1.59"
20
-
21
- # Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
22
- # See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
23
- if respond_to?(:install_modules_dependencies, true)
24
- install_modules_dependencies(s)
25
- else
26
- s.dependency "React-Core"
27
-
28
- # Don't install the dependencies when we run `pod install` in the old architecture.
29
- if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
30
- s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1"
31
- s.pod_target_xcconfig = {
32
- "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
33
- "OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1",
34
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
35
- }
36
- s.dependency "React-RCTFabric"
37
- s.dependency "React-Codegen"
38
- s.dependency "RCT-Folly"
39
- s.dependency "RCTRequired"
40
- s.dependency "RCTTypeSafety"
41
- s.dependency "ReactCommon/turbomodule/core"
42
- end
43
- end
44
- end