cloudx-react-native 3.10.0 → 3.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/README.md +1 -0
  2. package/android/src/main/java/com/cloudxreactnative/CloudXAdEvents.kt +10 -0
  3. package/android/src/main/java/com/cloudxreactnative/CloudXAdInfo.kt +40 -0
  4. package/android/src/main/java/com/cloudxreactnative/CloudXNativeAdView.kt +718 -0
  5. package/android/src/main/java/com/cloudxreactnative/CloudXNativeAdViewManagerImpl.kt +119 -0
  6. package/android/src/main/java/com/cloudxreactnative/CloudXPackage.kt +4 -1
  7. package/android/src/main/res/layout/cloudx_rn_native_media_banner_template.xml +100 -0
  8. package/android/src/main/res/layout/cloudx_rn_native_medium_template.xml +99 -0
  9. package/android/src/main/res/layout/cloudx_rn_native_small_template.xml +72 -0
  10. package/android/src/main/res/layout/cloudx_rn_native_vertical_media_template.xml +117 -0
  11. package/android/src/newarch/com/cloudxreactnative/CloudXModule.kt +1 -0
  12. package/android/src/newarch/com/cloudxreactnative/CloudXNativeAdViewManager.kt +86 -0
  13. package/android/src/oldarch/com/cloudxreactnative/CloudXModule.kt +1 -0
  14. package/android/src/oldarch/com/cloudxreactnative/CloudXNativeAdViewManager.kt +118 -0
  15. package/ios/CloudX.h +8 -0
  16. package/ios/CloudX.mm +159 -29
  17. package/ios/CloudXNativeAdView.h +75 -0
  18. package/ios/CloudXNativeAdView.mm +979 -0
  19. package/ios/CloudXNativeAdViewManager.h +12 -0
  20. package/ios/CloudXNativeAdViewManager.mm +119 -0
  21. package/lib/commonjs/CloudXAdViewBase.js +8 -97
  22. package/lib/commonjs/CloudXAdViewBase.js.map +1 -1
  23. package/lib/commonjs/CloudXNativeAdView.js +331 -0
  24. package/lib/commonjs/CloudXNativeAdView.js.map +1 -0
  25. package/lib/commonjs/CloudXNativeAdViewComponents.js +252 -0
  26. package/lib/commonjs/CloudXNativeAdViewComponents.js.map +1 -0
  27. package/lib/commonjs/CloudXNativeAdViewProvider.js +117 -0
  28. package/lib/commonjs/CloudXNativeAdViewProvider.js.map +1 -0
  29. package/lib/commonjs/extraParameters.js +52 -0
  30. package/lib/commonjs/extraParameters.js.map +1 -0
  31. package/lib/commonjs/hooks.js +34 -0
  32. package/lib/commonjs/hooks.js.map +1 -1
  33. package/lib/commonjs/index.js +72 -0
  34. package/lib/commonjs/index.js.map +1 -1
  35. package/lib/commonjs/specs/CloudXNativeAdViewNativeComponent.js +41 -0
  36. package/lib/commonjs/specs/CloudXNativeAdViewNativeComponent.js.map +1 -0
  37. package/lib/commonjs/types/NativeAd.js +70 -0
  38. package/lib/commonjs/types/NativeAd.js.map +1 -0
  39. package/lib/commonjs/types/index.js +13 -0
  40. package/lib/commonjs/types/index.js.map +1 -1
  41. package/lib/commonjs/useCloudXSdkInitialization.js +75 -0
  42. package/lib/commonjs/useCloudXSdkInitialization.js.map +1 -0
  43. package/lib/commonjs/version.js +1 -1
  44. package/lib/module/CloudXAdViewBase.js +7 -96
  45. package/lib/module/CloudXAdViewBase.js.map +1 -1
  46. package/lib/module/CloudXNativeAdView.js +324 -0
  47. package/lib/module/CloudXNativeAdView.js.map +1 -0
  48. package/lib/module/CloudXNativeAdViewComponents.js +240 -0
  49. package/lib/module/CloudXNativeAdViewComponents.js.map +1 -0
  50. package/lib/module/CloudXNativeAdViewProvider.js +110 -0
  51. package/lib/module/CloudXNativeAdViewProvider.js.map +1 -0
  52. package/lib/module/extraParameters.js +45 -0
  53. package/lib/module/extraParameters.js.map +1 -0
  54. package/lib/module/hooks.js +34 -0
  55. package/lib/module/hooks.js.map +1 -1
  56. package/lib/module/index.js +13 -0
  57. package/lib/module/index.js.map +1 -1
  58. package/lib/module/specs/CloudXNativeAdViewNativeComponent.js +35 -0
  59. package/lib/module/specs/CloudXNativeAdViewNativeComponent.js.map +1 -0
  60. package/lib/module/types/NativeAd.js +68 -0
  61. package/lib/module/types/NativeAd.js.map +1 -0
  62. package/lib/module/types/index.js +1 -0
  63. package/lib/module/types/index.js.map +1 -1
  64. package/lib/module/useCloudXSdkInitialization.js +68 -0
  65. package/lib/module/useCloudXSdkInitialization.js.map +1 -0
  66. package/lib/module/version.js +1 -1
  67. package/lib/typescript/src/CloudXAdViewBase.d.ts.map +1 -1
  68. package/lib/typescript/src/CloudXNativeAdView.d.ts +24 -0
  69. package/lib/typescript/src/CloudXNativeAdView.d.ts.map +1 -0
  70. package/lib/typescript/src/CloudXNativeAdViewComponents.d.ts +67 -0
  71. package/lib/typescript/src/CloudXNativeAdViewComponents.d.ts.map +1 -0
  72. package/lib/typescript/src/CloudXNativeAdViewProvider.d.ts +72 -0
  73. package/lib/typescript/src/CloudXNativeAdViewProvider.d.ts.map +1 -0
  74. package/lib/typescript/src/extraParameters.d.ts +4 -0
  75. package/lib/typescript/src/extraParameters.d.ts.map +1 -0
  76. package/lib/typescript/src/hooks.d.ts.map +1 -1
  77. package/lib/typescript/src/index.d.ts +4 -1
  78. package/lib/typescript/src/index.d.ts.map +1 -1
  79. package/lib/typescript/src/specs/CloudXNativeAdViewNativeComponent.d.ts +103 -0
  80. package/lib/typescript/src/specs/CloudXNativeAdViewNativeComponent.d.ts.map +1 -0
  81. package/lib/typescript/src/types/AdInfo.d.ts +4 -1
  82. package/lib/typescript/src/types/AdInfo.d.ts.map +1 -1
  83. package/lib/typescript/src/types/NativeAd.d.ts +114 -0
  84. package/lib/typescript/src/types/NativeAd.d.ts.map +1 -0
  85. package/lib/typescript/src/types/index.d.ts +2 -0
  86. package/lib/typescript/src/types/index.d.ts.map +1 -1
  87. package/lib/typescript/src/useCloudXSdkInitialization.d.ts +16 -0
  88. package/lib/typescript/src/useCloudXSdkInitialization.d.ts.map +1 -0
  89. package/lib/typescript/src/version.d.ts +1 -1
  90. package/package.json +1 -1
  91. package/src/CloudXAdViewBase.tsx +8 -125
  92. package/src/CloudXNativeAdView.tsx +419 -0
  93. package/src/CloudXNativeAdViewComponents.tsx +203 -0
  94. package/src/CloudXNativeAdViewProvider.tsx +149 -0
  95. package/src/extraParameters.ts +65 -0
  96. package/src/hooks.ts +38 -0
  97. package/src/index.ts +24 -0
  98. package/src/specs/CloudXNativeAdViewNativeComponent.ts +137 -0
  99. package/src/types/AdInfo.ts +5 -1
  100. package/src/types/NativeAd.ts +125 -0
  101. package/src/types/index.ts +7 -0
  102. package/src/useCloudXSdkInitialization.ts +73 -0
  103. package/src/version.ts +1 -1
@@ -0,0 +1,73 @@
1
+ import { useEffect, useState } from 'react';
2
+ import NativeCloudX from './specs/NativeCloudX';
3
+
4
+ /*
5
+ * Once the SDK reports initialized it stays initialized for the JS VM's life,
6
+ * so cache it module-wide: only the first ad view mounted before init has to
7
+ * poll + show a placeholder; every later mount (banner, MREC, or native)
8
+ * renders its native view immediately.
9
+ */
10
+ let cachedIsInitialized = false;
11
+
12
+ /**
13
+ * Polls CloudX SDK initialization state and caches the result module-wide.
14
+ *
15
+ * Shared by `CloudXAdViewBase` (banner/MREC) and `CloudXNativeAdView` so
16
+ * every in-tree ad-view component gates native-view creation on SDK
17
+ * initialization identically: a view mounted before `CloudX.initialize()`
18
+ * completes would create its native ad against an uninitialized SDK, which
19
+ * on iOS returns nil and leaves the view permanently dead (no retry, no
20
+ * load-failed event). There is no init event to subscribe to, so poll
21
+ * `isInitialized()` until ready.
22
+ *
23
+ * @param componentName Used only in the console warnings, so callers can
24
+ * tell which component is waiting on initialization.
25
+ */
26
+ export const useCloudXSdkInitializationGate = (componentName: string): boolean => {
27
+ const [isInitialized, setIsInitialized] = useState(cachedIsInitialized);
28
+
29
+ useEffect(() => {
30
+ if (cachedIsInitialized) {
31
+ return;
32
+ }
33
+ let cancelled = false;
34
+ let timer: ReturnType<typeof setTimeout> | undefined;
35
+ let warnedOnce = false;
36
+ const check = () => {
37
+ NativeCloudX.isInitialized()
38
+ .then((ready) => {
39
+ if (cancelled) {
40
+ return;
41
+ }
42
+ if (ready) {
43
+ cachedIsInitialized = true;
44
+ setIsInitialized(true);
45
+ return;
46
+ }
47
+ if (!warnedOnce) {
48
+ warnedOnce = true;
49
+ console.warn(
50
+ `${componentName} mounted before CloudX SDK initialization; will render once initialize() completes.`
51
+ );
52
+ }
53
+ timer = setTimeout(check, 1000);
54
+ })
55
+ .catch((error) => {
56
+ if (cancelled) {
57
+ return;
58
+ }
59
+ console.warn(`${componentName} failed to read initialization state:`, error);
60
+ timer = setTimeout(check, 1000);
61
+ });
62
+ };
63
+ check();
64
+ return () => {
65
+ cancelled = true;
66
+ if (timer) {
67
+ clearTimeout(timer);
68
+ }
69
+ };
70
+ }, [componentName]);
71
+
72
+ return isInitialized;
73
+ };
package/src/version.ts CHANGED
@@ -3,4 +3,4 @@
3
3
  // This value is reported to the native SDK in CloudX.initialize() and is used
4
4
  // for wrapper-version telemetry/attribution, so a stale value mis-attributes
5
5
  // installs to the wrong release.
6
- export const PLUGIN_VERSION = '3.10.0';
6
+ export const PLUGIN_VERSION = '3.10.1';