@24jieqi/react-native-brayant-ad 0.1.21 → 0.1.22

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.
@@ -17,8 +17,19 @@ const LINKING_ERROR = `The package 'react-native-brayant-ad' doesn't seem to be
17
17
  default: ''
18
18
  }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n' + '\nNote: BannerAd is currently only supported on Android platform.';
19
19
 
20
- // Define native component at module level to avoid duplicate registration
21
- const BannerAdNativeComponent = ComponentName && _reactNative.UIManager.getViewManagerConfig(ComponentName) != null ? (0, _reactNative.requireNativeComponent)(ComponentName) : undefined;
20
+ // Lazy load native component to avoid duplicate registration on hot reload
21
+
22
+ let BannerAdNativeComponent = null;
23
+ const getBannerAdComponent = () => {
24
+ if (BannerAdNativeComponent === null) {
25
+ if (ComponentName && _reactNative.UIManager.getViewManagerConfig(ComponentName) != null) {
26
+ BannerAdNativeComponent = (0, _reactNative.requireNativeComponent)(ComponentName);
27
+ } else {
28
+ BannerAdNativeComponent = null;
29
+ }
30
+ }
31
+ return BannerAdNativeComponent;
32
+ };
22
33
  const BannerAdView = props => {
23
34
  const {
24
35
  codeid,
@@ -52,10 +63,11 @@ const BannerAdView = props => {
52
63
  if (_reactNative.Platform.OS !== 'android' || !visible || dismissed) {
53
64
  return null;
54
65
  }
55
- if (!BannerAdNativeComponent) {
66
+ const NativeComponent = getBannerAdComponent();
67
+ if (!NativeComponent) {
56
68
  throw new Error(LINKING_ERROR);
57
69
  }
58
- return /*#__PURE__*/_react.default.createElement(BannerAdNativeComponent, {
70
+ return /*#__PURE__*/_react.default.createElement(NativeComponent, {
59
71
  codeid: codeid,
60
72
  adWidth: adWidth,
61
73
  adHeight: height,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ComponentName","Platform","select","android","ios","undefined","LINKING_ERROR","BannerAdNativeComponent","UIManager","getViewManagerConfig","requireNativeComponent","BannerAdView","props","codeid","style","adWidth","adHeight","onAdRenderSuccess","onAdError","onAdDismiss","onAdClick","onAdShow","onAdDislike","visible","dismissed","setDismissed","useState","height","setHeight","heightInitialized","useRef","useEffect","current","OS","Error","createElement","width","nativeEvent","newHeight","_default","exports","React","memo","prevProps","nextProps"],"sourceRoot":"../../../../src","sources":["dy/component/BannerAd.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ComponentName","Platform","select","android","ios","undefined","LINKING_ERROR","BannerAdNativeComponent","getBannerAdComponent","UIManager","getViewManagerConfig","requireNativeComponent","BannerAdView","props","codeid","style","adWidth","adHeight","onAdRenderSuccess","onAdError","onAdDismiss","onAdClick","onAdShow","onAdDislike","visible","dismissed","setDismissed","useState","height","setHeight","heightInitialized","useRef","useEffect","current","OS","NativeComponent","Error","createElement","width","nativeEvent","newHeight","_default","exports","React","memo","prevProps","nextProps"],"sourceRoot":"../../../../src","sources":["dy/component/BannerAd.tsx"],"mappings":"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","ignoreList":[]}
@@ -25,9 +25,19 @@ const loadDrawFeedAd = info => {
25
25
  DrawFeedAdModule.loadDrawFeedAd(info);
26
26
  };
27
27
 
28
- // Define native component at module level to avoid duplicate registration
28
+ // Lazy load native component to avoid duplicate registration on hot reload
29
29
  exports.loadDrawFeedAd = loadDrawFeedAd;
30
- const DrawFeedAdNativeComponent = _reactNative.UIManager.getViewManagerConfig(ComponentName) != null ? (0, _reactNative.requireNativeComponent)(ComponentName) : undefined;
30
+ let DrawFeedAdNativeComponent = null;
31
+ const getDrawFeedAdComponent = () => {
32
+ if (DrawFeedAdNativeComponent === null) {
33
+ if (_reactNative.UIManager.getViewManagerConfig(ComponentName) != null) {
34
+ DrawFeedAdNativeComponent = (0, _reactNative.requireNativeComponent)(ComponentName);
35
+ } else {
36
+ DrawFeedAdNativeComponent = null;
37
+ }
38
+ }
39
+ return DrawFeedAdNativeComponent;
40
+ };
31
41
  const DrawFeedView = props => {
32
42
  const {
33
43
  codeid,
@@ -37,11 +47,9 @@ const DrawFeedView = props => {
37
47
  visible = true,
38
48
  style
39
49
  } = props;
50
+
51
+ // All hooks must be called at the top level, unconditionally
40
52
  const styleObj = (0, _react.useMemo)(() => style || styles.container, [style]);
41
- if (!visible) return null;
42
- if (!DrawFeedAdNativeComponent) {
43
- throw new Error(LINKING_ERROR);
44
- }
45
53
 
46
54
  // Stable callbacks using useCallback to prevent re-renders
47
55
  const handleError = (0, _react.useCallback)(e => {
@@ -56,7 +64,14 @@ const DrawFeedView = props => {
56
64
  console.log('onAdShow DrawFeed', e.nativeEvent);
57
65
  onAdShow === null || onAdShow === void 0 || onAdShow(e.nativeEvent);
58
66
  }, [onAdShow]);
59
- return /*#__PURE__*/_react.default.createElement(DrawFeedAdNativeComponent, {
67
+
68
+ // Early return for visibility check (after all hooks)
69
+ if (!visible) return null;
70
+ const NativeComponent = getDrawFeedAdComponent();
71
+ if (!NativeComponent) {
72
+ throw new Error(LINKING_ERROR);
73
+ }
74
+ return /*#__PURE__*/_react.default.createElement(NativeComponent, {
60
75
  codeid: codeid,
61
76
  onAdError: handleError,
62
77
  onAdClick: handleClick,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DrawFeedAdModule","NativeModules","LINKING_ERROR","Platform","select","ios","ComponentName","loadDrawFeedAd","info","exports","DrawFeedAdNativeComponent","UIManager","getViewManagerConfig","requireNativeComponent","undefined","DrawFeedView","props","codeid","onAdError","onAdShow","onAdClick","visible","style","styleObj","useMemo","styles","container","Error","handleError","useCallback","console","log","nativeEvent","handleClick","handleShow","createElement","StyleSheet","create","flex","width","_default","React","memo","prevProps","nextProps"],"sourceRoot":"../../../../src","sources":["dy/component/DrawFeedAd.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DrawFeedAdModule","NativeModules","LINKING_ERROR","Platform","select","ios","ComponentName","loadDrawFeedAd","info","exports","DrawFeedAdNativeComponent","getDrawFeedAdComponent","UIManager","getViewManagerConfig","requireNativeComponent","DrawFeedView","props","codeid","onAdError","onAdShow","onAdClick","visible","style","styleObj","useMemo","styles","container","handleError","useCallback","console","log","nativeEvent","handleClick","handleShow","NativeComponent","Error","createElement","StyleSheet","create","flex","width","_default","React","memo","prevProps","nextProps"],"sourceRoot":"../../../../src","sources":["dy/component/DrawFeedAd.tsx"],"mappings":"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","ignoreList":[]}
@@ -19,8 +19,19 @@ const LINKING_ERROR = `The package 'react-native-brayant-ad' doesn't seem to be
19
19
  default: ''
20
20
  }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
21
21
 
22
- // Define native component at module level to avoid duplicate registration
23
- const FeedAdNativeComponent = _reactNative.UIManager.getViewManagerConfig(ComponentName) != null ? (0, _reactNative.requireNativeComponent)(ComponentName) : undefined;
22
+ // Lazy load native component to avoid duplicate registration on hot reload
23
+
24
+ let FeedAdNativeComponent = null;
25
+ const getFeedAdComponent = () => {
26
+ if (FeedAdNativeComponent === null) {
27
+ if (_reactNative.UIManager.getViewManagerConfig(ComponentName) != null) {
28
+ FeedAdNativeComponent = (0, _reactNative.requireNativeComponent)(ComponentName);
29
+ } else {
30
+ FeedAdNativeComponent = null;
31
+ }
32
+ }
33
+ return FeedAdNativeComponent;
34
+ };
24
35
  const FeedAdView = props => {
25
36
  const {
26
37
  codeid,
@@ -33,15 +44,9 @@ const FeedAdView = props => {
33
44
  visible = true
34
45
  } = props;
35
46
 
36
- // FeedAd是否显示,外部和内部均可控制,外部visible、内部closed
37
- // Check visible before hooks to avoid hooks order issues
38
- if (!visible) {
39
- return null;
40
- }
47
+ // All hooks must be called at the top level, unconditionally
41
48
  const [closed, setClosed] = (0, _react.useState)(false);
42
49
  const [height, setHeight] = (0, _react.useState)(0);
43
-
44
- // Use ref to track if height has been set to prevent unnecessary re-renders
45
50
  const heightInitialized = (0, _react.useRef)(false);
46
51
 
47
52
  // Reset state when visible changes from false to true to allow re-display
@@ -53,12 +58,6 @@ const FeedAdView = props => {
53
58
  }
54
59
  }, [visible]);
55
60
 
56
- // Early return after closed state is set (after hooks)
57
- if (closed) return null;
58
- if (!FeedAdNativeComponent) {
59
- throw new Error(LINKING_ERROR);
60
- }
61
-
62
61
  // Use useMemo to cache style object and prevent unnecessary re-renders
63
62
  const containerStyle = (0, _react.useMemo)(() => ({
64
63
  width: adWidth,
@@ -85,7 +84,16 @@ const FeedAdView = props => {
85
84
  }
86
85
  onAdLayout === null || onAdLayout === void 0 || onAdLayout(e.nativeEvent);
87
86
  }, [onAdLayout]);
88
- return /*#__PURE__*/_react.default.createElement(FeedAdNativeComponent, {
87
+
88
+ // Early returns after all hooks
89
+ if (!visible || closed) {
90
+ return null;
91
+ }
92
+ const NativeComponent = getFeedAdComponent();
93
+ if (!NativeComponent) {
94
+ throw new Error(LINKING_ERROR);
95
+ }
96
+ return /*#__PURE__*/_react.default.createElement(NativeComponent, {
89
97
  codeid: codeid
90
98
  // 里面素材的宽度,减30是有些情况下,里面素材过宽贴边显示不全
91
99
  ,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ComponentName","LINKING_ERROR","Platform","select","ios","FeedAdNativeComponent","UIManager","getViewManagerConfig","requireNativeComponent","undefined","FeedAdView","props","codeid","style","adWidth","onAdLayout","onAdError","onAdClose","onAdClick","visible","closed","setClosed","useState","height","setHeight","heightInitialized","useRef","useEffect","current","Error","containerStyle","useMemo","width","handleError","useCallback","nativeEvent","handleClick","handleClose","handleLayout","newHeight","createElement","_default","exports","React","memo","prevProps","nextProps"],"sourceRoot":"../../../../src","sources":["dy/component/FeedAd.tsx"],"mappings":";;;;;;AAKA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAA2E,SAAAD,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAN3E;AACA;AACA;AACA;AACA;;AAKA,MAAMkB,aAAa,GAAG,mBAAmB;AAazC,MAAMC,aAAa,GACjB,kFAAkF,GAClFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEb,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMc,qBAAqB,GAAGC,sBAAS,CAACC,oBAAoB,CAACP,aAAa,CAAC,IAAI,IAAI,GAC/E,IAAAQ,mCAAsB,EAAcR,aAAa,CAAC,GAClDS,SAAS;AAEb,MAAMC,UAAU,GAAIC,KAAkB,IAAK;EACzC,MAAM;IACJC,MAAM;IACNC,KAAK;IACLC,OAAO,GAAG,GAAG;IACbC,UAAU;IACVC,SAAS;IACTC,SAAS;IACTC,SAAS;IACTC,OAAO,GAAG;EACZ,CAAC,GAAGR,KAAK;;EAET;EACA;EACA,IAAI,CAACQ,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EAEA,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAC3C,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAF,eAAQ,EAAC,CAAC,CAAC;;EAEvC;EACA,MAAMG,iBAAiB,GAAG,IAAAC,aAAM,EAAC,KAAK,CAAC;;EAEvC;EACA,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIR,OAAO,EAAE;MACXE,SAAS,CAAC,KAAK,CAAC;MAChBI,iBAAiB,CAACG,OAAO,GAAG,KAAK;MACjCJ,SAAS,CAAC,CAAC,CAAC;IACd;EACF,CAAC,EAAE,CAACL,OAAO,CAAC,CAAC;;EAEb;EACA,IAAIC,MAAM,EAAE,OAAO,IAAI;EAEvB,IAAI,CAACf,qBAAqB,EAAE;IAC1B,MAAM,IAAIwB,KAAK,CAAC5B,aAAa,CAAC;EAChC;;EAEA;EACA,MAAM6B,cAAc,GAAG,IAAAC,cAAO,EAAC,OAAO;IACpCC,KAAK,EAAElB,OAAO;IACdS,MAAM;IACN,GAAGV;EACL,CAAC,CAAC,EAAE,CAACC,OAAO,EAAES,MAAM,EAAEV,KAAK,CAAC,CAAC;;EAE7B;EACA,MAAMoB,WAAW,GAAG,IAAAC,kBAAW,EAAErD,CAAM,IAAK;IAC1CmC,SAAS,aAATA,SAAS,eAATA,SAAS,CAAGnC,CAAC,CAACsD,WAAW,CAAC;EAC5B,CAAC,EAAE,CAACnB,SAAS,CAAC,CAAC;EAEf,MAAMoB,WAAW,GAAG,IAAAF,kBAAW,EAAErD,CAAM,IAAK;IAC1CqC,SAAS,aAATA,SAAS,eAATA,SAAS,CAAGrC,CAAC,CAACsD,WAAW,CAAC;EAC5B,CAAC,EAAE,CAACjB,SAAS,CAAC,CAAC;EAEf,MAAMmB,WAAW,GAAG,IAAAH,kBAAW,EAAErD,CAAM,IAAK;IAC1CwC,SAAS,CAAC,IAAI,CAAC;IACfJ,SAAS,aAATA,SAAS,eAATA,SAAS,CAAGpC,CAAC,CAACsD,WAAW,CAAC;EAC5B,CAAC,EAAE,CAAClB,SAAS,CAAC,CAAC;EAEf,MAAMqB,YAAY,GAAG,IAAAJ,kBAAW,EAAErD,CAAM,IAAK;IAC3C,MAAM0D,SAAS,GAAG1D,CAAC,CAACsD,WAAW,CAACZ,MAAM;IACtC,IAAIgB,SAAS,IAAI,CAACd,iBAAiB,CAACG,OAAO,EAAE;MAC3CJ,SAAS,CAACe,SAAS,GAAG,EAAE,CAAC;MACzBd,iBAAiB,CAACG,OAAO,GAAG,IAAI;IAClC;IACAb,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAGlC,CAAC,CAACsD,WAAW,CAAC;EAC7B,CAAC,EAAE,CAACpB,UAAU,CAAC,CAAC;EAEhB,oBACEtC,MAAA,CAAAc,OAAA,CAAAiD,aAAA,CAACnC,qBAAqB;IACpBO,MAAM,EAAEA;IACR;IAAA;IACAE,OAAO,EAAEA,OAAO,GAAG;IACnB;IAAA;IACAD,KAAK,EAAEiB,cAAe;IACtBd,SAAS,EAAEiB,WAAY;IACvBf,SAAS,EAAEkB,WAAY;IACvBnB,SAAS,EAAEoB,WAAY;IACvBtB,UAAU,EAAEuB;EAAa,CAC1B,CAAC;AAEN,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAAnD,OAAA,gBAEaoD,cAAK,CAACC,IAAI,CAAClC,UAAU,EAAE,CAACmC,SAAS,EAAEC,SAAS,KAAK;EAC9D;EACA;EACA,OACED,SAAS,CAACjC,MAAM,KAAKkC,SAAS,CAAClC,MAAM,IACrCiC,SAAS,CAAC1B,OAAO,KAAK2B,SAAS,CAAC3B,OAAO,IACvC0B,SAAS,CAAC/B,OAAO,KAAKgC,SAAS,CAAChC,OAAO;AAE3C,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ComponentName","LINKING_ERROR","Platform","select","ios","FeedAdNativeComponent","getFeedAdComponent","UIManager","getViewManagerConfig","requireNativeComponent","FeedAdView","props","codeid","style","adWidth","onAdLayout","onAdError","onAdClose","onAdClick","visible","closed","setClosed","useState","height","setHeight","heightInitialized","useRef","useEffect","current","containerStyle","useMemo","width","handleError","useCallback","nativeEvent","handleClick","handleClose","handleLayout","newHeight","NativeComponent","Error","createElement","_default","exports","React","memo","prevProps","nextProps"],"sourceRoot":"../../../../src","sources":["dy/component/FeedAd.tsx"],"mappings":"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","ignoreList":[]}
@@ -10,8 +10,19 @@ const LINKING_ERROR = `The package 'react-native-brayant-ad' doesn't seem to be
10
10
  default: ''
11
11
  }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n' + '\nNote: BannerAd is currently only supported on Android platform.';
12
12
 
13
- // Define native component at module level to avoid duplicate registration
14
- const BannerAdNativeComponent = ComponentName && UIManager.getViewManagerConfig(ComponentName) != null ? requireNativeComponent(ComponentName) : undefined;
13
+ // Lazy load native component to avoid duplicate registration on hot reload
14
+
15
+ let BannerAdNativeComponent = null;
16
+ const getBannerAdComponent = () => {
17
+ if (BannerAdNativeComponent === null) {
18
+ if (ComponentName && UIManager.getViewManagerConfig(ComponentName) != null) {
19
+ BannerAdNativeComponent = requireNativeComponent(ComponentName);
20
+ } else {
21
+ BannerAdNativeComponent = null;
22
+ }
23
+ }
24
+ return BannerAdNativeComponent;
25
+ };
15
26
  const BannerAdView = props => {
16
27
  const {
17
28
  codeid,
@@ -45,10 +56,11 @@ const BannerAdView = props => {
45
56
  if (Platform.OS !== 'android' || !visible || dismissed) {
46
57
  return null;
47
58
  }
48
- if (!BannerAdNativeComponent) {
59
+ const NativeComponent = getBannerAdComponent();
60
+ if (!NativeComponent) {
49
61
  throw new Error(LINKING_ERROR);
50
62
  }
51
- return /*#__PURE__*/React.createElement(BannerAdNativeComponent, {
63
+ return /*#__PURE__*/React.createElement(NativeComponent, {
52
64
  codeid: codeid,
53
65
  adWidth: adWidth,
54
66
  adHeight: height,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useRef","useEffect","Platform","requireNativeComponent","UIManager","ComponentName","select","android","ios","undefined","LINKING_ERROR","default","BannerAdNativeComponent","getViewManagerConfig","BannerAdView","props","codeid","style","adWidth","adHeight","onAdRenderSuccess","onAdError","onAdDismiss","onAdClick","onAdShow","onAdDislike","visible","dismissed","setDismissed","height","setHeight","heightInitialized","current","OS","Error","createElement","width","e","nativeEvent","newHeight","memo","prevProps","nextProps"],"sourceRoot":"../../../../src","sources":["dy/component/BannerAd.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useRef","useEffect","Platform","requireNativeComponent","UIManager","ComponentName","select","android","ios","undefined","LINKING_ERROR","default","BannerAdNativeComponent","getBannerAdComponent","getViewManagerConfig","BannerAdView","props","codeid","style","adWidth","adHeight","onAdRenderSuccess","onAdError","onAdDismiss","onAdClick","onAdShow","onAdDislike","visible","dismissed","setDismissed","height","setHeight","heightInitialized","current","OS","NativeComponent","Error","createElement","width","e","nativeEvent","newHeight","memo","prevProps","nextProps"],"sourceRoot":"../../../../src","sources":["dy/component/BannerAd.tsx"],"mappings":"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","ignoreList":[]}
@@ -17,8 +17,19 @@ export const loadDrawFeedAd = info => {
17
17
  DrawFeedAdModule.loadDrawFeedAd(info);
18
18
  };
19
19
 
20
- // Define native component at module level to avoid duplicate registration
21
- const DrawFeedAdNativeComponent = UIManager.getViewManagerConfig(ComponentName) != null ? requireNativeComponent(ComponentName) : undefined;
20
+ // Lazy load native component to avoid duplicate registration on hot reload
21
+
22
+ let DrawFeedAdNativeComponent = null;
23
+ const getDrawFeedAdComponent = () => {
24
+ if (DrawFeedAdNativeComponent === null) {
25
+ if (UIManager.getViewManagerConfig(ComponentName) != null) {
26
+ DrawFeedAdNativeComponent = requireNativeComponent(ComponentName);
27
+ } else {
28
+ DrawFeedAdNativeComponent = null;
29
+ }
30
+ }
31
+ return DrawFeedAdNativeComponent;
32
+ };
22
33
  export const DrawFeedView = props => {
23
34
  const {
24
35
  codeid,
@@ -28,11 +39,9 @@ export const DrawFeedView = props => {
28
39
  visible = true,
29
40
  style
30
41
  } = props;
42
+
43
+ // All hooks must be called at the top level, unconditionally
31
44
  const styleObj = useMemo(() => style || styles.container, [style]);
32
- if (!visible) return null;
33
- if (!DrawFeedAdNativeComponent) {
34
- throw new Error(LINKING_ERROR);
35
- }
36
45
 
37
46
  // Stable callbacks using useCallback to prevent re-renders
38
47
  const handleError = useCallback(e => {
@@ -47,7 +56,14 @@ export const DrawFeedView = props => {
47
56
  console.log('onAdShow DrawFeed', e.nativeEvent);
48
57
  onAdShow === null || onAdShow === void 0 || onAdShow(e.nativeEvent);
49
58
  }, [onAdShow]);
50
- return /*#__PURE__*/React.createElement(DrawFeedAdNativeComponent, {
59
+
60
+ // Early return for visibility check (after all hooks)
61
+ if (!visible) return null;
62
+ const NativeComponent = getDrawFeedAdComponent();
63
+ if (!NativeComponent) {
64
+ throw new Error(LINKING_ERROR);
65
+ }
66
+ return /*#__PURE__*/React.createElement(NativeComponent, {
51
67
  codeid: codeid,
52
68
  onAdError: handleError,
53
69
  onAdClick: handleClick,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useMemo","UIManager","StyleSheet","NativeModules","Platform","requireNativeComponent","DrawFeedAdModule","LINKING_ERROR","select","ios","default","ComponentName","loadDrawFeedAd","info","DrawFeedAdNativeComponent","getViewManagerConfig","undefined","DrawFeedView","props","codeid","onAdError","onAdShow","onAdClick","visible","style","styleObj","styles","container","Error","handleError","e","console","log","nativeEvent","handleClick","handleShow","createElement","create","flex","width","memo","prevProps","nextProps"],"sourceRoot":"../../../../src","sources":["dy/component/DrawFeedAd.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useMemo","UIManager","StyleSheet","NativeModules","Platform","requireNativeComponent","DrawFeedAdModule","LINKING_ERROR","select","ios","default","ComponentName","loadDrawFeedAd","info","DrawFeedAdNativeComponent","getDrawFeedAdComponent","getViewManagerConfig","DrawFeedView","props","codeid","onAdError","onAdShow","onAdClick","visible","style","styleObj","styles","container","handleError","e","console","log","nativeEvent","handleClick","handleShow","NativeComponent","Error","createElement","create","flex","width","memo","prevProps","nextProps"],"sourceRoot":"../../../../src","sources":["dy/component/DrawFeedAd.tsx"],"mappings":"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","ignoreList":[]}
@@ -11,8 +11,19 @@ const LINKING_ERROR = `The package 'react-native-brayant-ad' doesn't seem to be
11
11
  default: ''
12
12
  }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
13
13
 
14
- // Define native component at module level to avoid duplicate registration
15
- const FeedAdNativeComponent = UIManager.getViewManagerConfig(ComponentName) != null ? requireNativeComponent(ComponentName) : undefined;
14
+ // Lazy load native component to avoid duplicate registration on hot reload
15
+
16
+ let FeedAdNativeComponent = null;
17
+ const getFeedAdComponent = () => {
18
+ if (FeedAdNativeComponent === null) {
19
+ if (UIManager.getViewManagerConfig(ComponentName) != null) {
20
+ FeedAdNativeComponent = requireNativeComponent(ComponentName);
21
+ } else {
22
+ FeedAdNativeComponent = null;
23
+ }
24
+ }
25
+ return FeedAdNativeComponent;
26
+ };
16
27
  const FeedAdView = props => {
17
28
  const {
18
29
  codeid,
@@ -25,15 +36,9 @@ const FeedAdView = props => {
25
36
  visible = true
26
37
  } = props;
27
38
 
28
- // FeedAd是否显示,外部和内部均可控制,外部visible、内部closed
29
- // Check visible before hooks to avoid hooks order issues
30
- if (!visible) {
31
- return null;
32
- }
39
+ // All hooks must be called at the top level, unconditionally
33
40
  const [closed, setClosed] = useState(false);
34
41
  const [height, setHeight] = useState(0);
35
-
36
- // Use ref to track if height has been set to prevent unnecessary re-renders
37
42
  const heightInitialized = useRef(false);
38
43
 
39
44
  // Reset state when visible changes from false to true to allow re-display
@@ -45,12 +50,6 @@ const FeedAdView = props => {
45
50
  }
46
51
  }, [visible]);
47
52
 
48
- // Early return after closed state is set (after hooks)
49
- if (closed) return null;
50
- if (!FeedAdNativeComponent) {
51
- throw new Error(LINKING_ERROR);
52
- }
53
-
54
53
  // Use useMemo to cache style object and prevent unnecessary re-renders
55
54
  const containerStyle = useMemo(() => ({
56
55
  width: adWidth,
@@ -77,7 +76,16 @@ const FeedAdView = props => {
77
76
  }
78
77
  onAdLayout === null || onAdLayout === void 0 || onAdLayout(e.nativeEvent);
79
78
  }, [onAdLayout]);
80
- return /*#__PURE__*/React.createElement(FeedAdNativeComponent, {
79
+
80
+ // Early returns after all hooks
81
+ if (!visible || closed) {
82
+ return null;
83
+ }
84
+ const NativeComponent = getFeedAdComponent();
85
+ if (!NativeComponent) {
86
+ throw new Error(LINKING_ERROR);
87
+ }
88
+ return /*#__PURE__*/React.createElement(NativeComponent, {
81
89
  codeid: codeid
82
90
  // 里面素材的宽度,减30是有些情况下,里面素材过宽贴边显示不全
83
91
  ,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useCallback","useRef","useEffect","useMemo","Platform","requireNativeComponent","UIManager","ComponentName","LINKING_ERROR","select","ios","default","FeedAdNativeComponent","getViewManagerConfig","undefined","FeedAdView","props","codeid","style","adWidth","onAdLayout","onAdError","onAdClose","onAdClick","visible","closed","setClosed","height","setHeight","heightInitialized","current","Error","containerStyle","width","handleError","e","nativeEvent","handleClick","handleClose","handleLayout","newHeight","createElement","memo","prevProps","nextProps"],"sourceRoot":"../../../../src","sources":["dy/component/FeedAd.tsx"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,WAAW,EAAEC,MAAM,EAAEC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAChF,SAASC,QAAQ,EAAEC,sBAAsB,EAAEC,SAAS,QAAQ,cAAc;AAG1E,MAAMC,aAAa,GAAG,mBAAmB;AAazC,MAAMC,aAAa,GACjB,kFAAkF,GAClFJ,QAAQ,CAACK,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMC,qBAAqB,GAAGN,SAAS,CAACO,oBAAoB,CAACN,aAAa,CAAC,IAAI,IAAI,GAC/EF,sBAAsB,CAAcE,aAAa,CAAC,GAClDO,SAAS;AAEb,MAAMC,UAAU,GAAIC,KAAkB,IAAK;EACzC,MAAM;IACJC,MAAM;IACNC,KAAK;IACLC,OAAO,GAAG,GAAG;IACbC,UAAU;IACVC,SAAS;IACTC,SAAS;IACTC,SAAS;IACTC,OAAO,GAAG;EACZ,CAAC,GAAGR,KAAK;;EAET;EACA;EACA,IAAI,CAACQ,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EAEA,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG3B,QAAQ,CAAC,KAAK,CAAC;EAC3C,MAAM,CAAC4B,MAAM,EAAEC,SAAS,CAAC,GAAG7B,QAAQ,CAAC,CAAC,CAAC;;EAEvC;EACA,MAAM8B,iBAAiB,GAAG5B,MAAM,CAAC,KAAK,CAAC;;EAEvC;EACAC,SAAS,CAAC,MAAM;IACd,IAAIsB,OAAO,EAAE;MACXE,SAAS,CAAC,KAAK,CAAC;MAChBG,iBAAiB,CAACC,OAAO,GAAG,KAAK;MACjCF,SAAS,CAAC,CAAC,CAAC;IACd;EACF,CAAC,EAAE,CAACJ,OAAO,CAAC,CAAC;;EAEb;EACA,IAAIC,MAAM,EAAE,OAAO,IAAI;EAEvB,IAAI,CAACb,qBAAqB,EAAE;IAC1B,MAAM,IAAImB,KAAK,CAACvB,aAAa,CAAC;EAChC;;EAEA;EACA,MAAMwB,cAAc,GAAG7B,OAAO,CAAC,OAAO;IACpC8B,KAAK,EAAEd,OAAO;IACdQ,MAAM;IACN,GAAGT;EACL,CAAC,CAAC,EAAE,CAACC,OAAO,EAAEQ,MAAM,EAAET,KAAK,CAAC,CAAC;;EAE7B;EACA,MAAMgB,WAAW,GAAGlC,WAAW,CAAEmC,CAAM,IAAK;IAC1Cd,SAAS,aAATA,SAAS,eAATA,SAAS,CAAGc,CAAC,CAACC,WAAW,CAAC;EAC5B,CAAC,EAAE,CAACf,SAAS,CAAC,CAAC;EAEf,MAAMgB,WAAW,GAAGrC,WAAW,CAAEmC,CAAM,IAAK;IAC1CZ,SAAS,aAATA,SAAS,eAATA,SAAS,CAAGY,CAAC,CAACC,WAAW,CAAC;EAC5B,CAAC,EAAE,CAACb,SAAS,CAAC,CAAC;EAEf,MAAMe,WAAW,GAAGtC,WAAW,CAAEmC,CAAM,IAAK;IAC1CT,SAAS,CAAC,IAAI,CAAC;IACfJ,SAAS,aAATA,SAAS,eAATA,SAAS,CAAGa,CAAC,CAACC,WAAW,CAAC;EAC5B,CAAC,EAAE,CAACd,SAAS,CAAC,CAAC;EAEf,MAAMiB,YAAY,GAAGvC,WAAW,CAAEmC,CAAM,IAAK;IAC3C,MAAMK,SAAS,GAAGL,CAAC,CAACC,WAAW,CAACT,MAAM;IACtC,IAAIa,SAAS,IAAI,CAACX,iBAAiB,CAACC,OAAO,EAAE;MAC3CF,SAAS,CAACY,SAAS,GAAG,EAAE,CAAC;MACzBX,iBAAiB,CAACC,OAAO,GAAG,IAAI;IAClC;IACAV,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAGe,CAAC,CAACC,WAAW,CAAC;EAC7B,CAAC,EAAE,CAAChB,UAAU,CAAC,CAAC;EAEhB,oBACEtB,KAAA,CAAA2C,aAAA,CAAC7B,qBAAqB;IACpBK,MAAM,EAAEA;IACR;IAAA;IACAE,OAAO,EAAEA,OAAO,GAAG;IACnB;IAAA;IACAD,KAAK,EAAEc,cAAe;IACtBX,SAAS,EAAEa,WAAY;IACvBX,SAAS,EAAEc,WAAY;IACvBf,SAAS,EAAEgB,WAAY;IACvBlB,UAAU,EAAEmB;EAAa,CAC1B,CAAC;AAEN,CAAC;AAED,4BAAezC,KAAK,CAAC4C,IAAI,CAAC3B,UAAU,EAAE,CAAC4B,SAAS,EAAEC,SAAS,KAAK;EAC9D;EACA;EACA,OACED,SAAS,CAAC1B,MAAM,KAAK2B,SAAS,CAAC3B,MAAM,IACrC0B,SAAS,CAACnB,OAAO,KAAKoB,SAAS,CAACpB,OAAO,IACvCmB,SAAS,CAACxB,OAAO,KAAKyB,SAAS,CAACzB,OAAO;AAE3C,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useCallback","useRef","useEffect","useMemo","Platform","requireNativeComponent","UIManager","ComponentName","LINKING_ERROR","select","ios","default","FeedAdNativeComponent","getFeedAdComponent","getViewManagerConfig","FeedAdView","props","codeid","style","adWidth","onAdLayout","onAdError","onAdClose","onAdClick","visible","closed","setClosed","height","setHeight","heightInitialized","current","containerStyle","width","handleError","e","nativeEvent","handleClick","handleClose","handleLayout","newHeight","NativeComponent","Error","createElement","memo","prevProps","nextProps"],"sourceRoot":"../../../../src","sources":["dy/component/FeedAd.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"BannerAd.d.ts","sourceRoot":"","sources":["../../../../../src/dy/component/BannerAd.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAQ9C,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACnD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC9C;0DAe4B,aAAa;AAmE1C,wBAOG"}
1
+ {"version":3,"file":"BannerAd.d.ts","sourceRoot":"","sources":["../../../../../src/dy/component/BannerAd.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAQ9C,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACnD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC9C;0DA4B4B,aAAa;AAqE1C,wBAOG"}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawFeedAd.d.ts","sourceRoot":"","sources":["../../../../../src/dy/component/DrawFeedAd.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAA+B,MAAM,OAAO,CAAC;AACpD,OAAO,EACL,KAAK,SAAS,EAMf,MAAM,cAAc,CAAC;AAWtB,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,CAAC;CACtB,CAAC;AAIF,eAAO,MAAM,cAAc,GAAI,MAAM;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,SAErE,CAAC;AAOF,eAAO,MAAM,YAAY,GAAI,OAAO,eAAe,6BA2ClD,CAAC;0DA3CkC,eAAe;AAoDnD,wBAOG"}
1
+ {"version":3,"file":"DrawFeedAd.d.ts","sourceRoot":"","sources":["../../../../../src/dy/component/DrawFeedAd.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAA+B,MAAM,OAAO,CAAC;AACpD,OAAO,EACL,KAAK,SAAS,EAMf,MAAM,cAAc,CAAC;AAWtB,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,CAAC;CACtB,CAAC;AAIF,eAAO,MAAM,cAAc,GAAI,MAAM;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,SAErE,CAAC;AAkBF,eAAO,MAAM,YAAY,GAAI,OAAO,eAAe,6BAwDlD,CAAC;0DAxDkC,eAAe;AAiEnD,wBAOG"}
@@ -1 +1 @@
1
- {"version":3,"file":"FeedAd.d.ts","sourceRoot":"","sources":["../../../../../src/dy/component/FeedAd.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAA4D,MAAM,OAAO,CAAC;AAEjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,SAAS,CAAC,EAAE,QAAQ,CAAC;CACtB;0DAa0B,WAAW;AAqFtC,wBAQG"}
1
+ {"version":3,"file":"FeedAd.d.ts","sourceRoot":"","sources":["../../../../../src/dy/component/FeedAd.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAMN,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,SAAS,CAAC,EAAE,QAAQ,CAAC;CACtB;0DAwB0B,WAAW;AAiGtC,wBAQG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@24jieqi/react-native-brayant-ad",
3
- "version": "0.1.21",
3
+ "version": "0.1.22",
4
4
  "description": "国内广告联盟sdk封装",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -36,11 +36,24 @@ const LINKING_ERROR =
36
36
  '- You are not using Expo Go\n' +
37
37
  '\nNote: BannerAd is currently only supported on Android platform.';
38
38
 
39
- // Define native component at module level to avoid duplicate registration
40
- const BannerAdNativeComponent =
41
- ComponentName && UIManager.getViewManagerConfig(ComponentName) != null
42
- ? requireNativeComponent<BannerAdProps>(ComponentName)
43
- : undefined;
39
+ // Lazy load native component to avoid duplicate registration on hot reload
40
+ type BannerAdComponentType = React.ComponentType<BannerAdProps> | null;
41
+ let BannerAdNativeComponent: BannerAdComponentType = null;
42
+
43
+ const getBannerAdComponent = (): BannerAdComponentType => {
44
+ if (BannerAdNativeComponent === null) {
45
+ if (
46
+ ComponentName &&
47
+ UIManager.getViewManagerConfig(ComponentName) != null
48
+ ) {
49
+ BannerAdNativeComponent =
50
+ requireNativeComponent<BannerAdProps>(ComponentName);
51
+ } else {
52
+ BannerAdNativeComponent = null;
53
+ }
54
+ }
55
+ return BannerAdNativeComponent;
56
+ };
44
57
 
45
58
  const BannerAdView = (props: BannerAdProps) => {
46
59
  const {
@@ -76,12 +89,14 @@ const BannerAdView = (props: BannerAdProps) => {
76
89
  return null;
77
90
  }
78
91
 
79
- if (!BannerAdNativeComponent) {
92
+ const NativeComponent = getBannerAdComponent();
93
+
94
+ if (!NativeComponent) {
80
95
  throw new Error(LINKING_ERROR);
81
96
  }
82
97
 
83
98
  return (
84
- <BannerAdNativeComponent
99
+ <NativeComponent
85
100
  codeid={codeid}
86
101
  adWidth={adWidth}
87
102
  adHeight={height}
@@ -38,10 +38,21 @@ export const loadDrawFeedAd = (info: { appid: string; codeid: string }) => {
38
38
  DrawFeedAdModule.loadDrawFeedAd(info);
39
39
  };
40
40
 
41
- // Define native component at module level to avoid duplicate registration
42
- const DrawFeedAdNativeComponent = UIManager.getViewManagerConfig(ComponentName) != null
43
- ? requireNativeComponent<ViewProps>(ComponentName)
44
- : undefined;
41
+ // Lazy load native component to avoid duplicate registration on hot reload
42
+ type DrawFeedAdComponentType = React.ComponentType<ViewProps> | null;
43
+ let DrawFeedAdNativeComponent: DrawFeedAdComponentType = null;
44
+
45
+ const getDrawFeedAdComponent = (): DrawFeedAdComponentType => {
46
+ if (DrawFeedAdNativeComponent === null) {
47
+ if (UIManager.getViewManagerConfig(ComponentName) != null) {
48
+ DrawFeedAdNativeComponent =
49
+ requireNativeComponent<ViewProps>(ComponentName);
50
+ } else {
51
+ DrawFeedAdNativeComponent = null;
52
+ }
53
+ }
54
+ return DrawFeedAdNativeComponent;
55
+ };
45
56
 
46
57
  export const DrawFeedView = (props: DrawFeedAdProps) => {
47
58
  const {
@@ -53,32 +64,45 @@ export const DrawFeedView = (props: DrawFeedAdProps) => {
53
64
  style,
54
65
  } = props;
55
66
 
67
+ // All hooks must be called at the top level, unconditionally
56
68
  const styleObj = useMemo(() => style || styles.container, [style]);
57
69
 
58
- if (!visible) return null;
70
+ // Stable callbacks using useCallback to prevent re-renders
71
+ const handleError = useCallback(
72
+ (e: any) => {
73
+ console.log('onAdError DrawFeed', e.nativeEvent);
74
+ onAdError?.(e.nativeEvent);
75
+ },
76
+ [onAdError]
77
+ );
59
78
 
60
- if (!DrawFeedAdNativeComponent) {
61
- throw new Error(LINKING_ERROR);
62
- }
79
+ const handleClick = useCallback(
80
+ (e: any) => {
81
+ console.log('onAdClick DrawFeed', e.nativeEvent);
82
+ onAdClick?.(e.nativeEvent);
83
+ },
84
+ [onAdClick]
85
+ );
63
86
 
64
- // Stable callbacks using useCallback to prevent re-renders
65
- const handleError = useCallback((e: any) => {
66
- console.log('onAdError DrawFeed', e.nativeEvent);
67
- onAdError?.(e.nativeEvent);
68
- }, [onAdError]);
87
+ const handleShow = useCallback(
88
+ (e: any) => {
89
+ console.log('onAdShow DrawFeed', e.nativeEvent);
90
+ onAdShow?.(e.nativeEvent);
91
+ },
92
+ [onAdShow]
93
+ );
69
94
 
70
- const handleClick = useCallback((e: any) => {
71
- console.log('onAdClick DrawFeed', e.nativeEvent);
72
- onAdClick?.(e.nativeEvent);
73
- }, [onAdClick]);
95
+ // Early return for visibility check (after all hooks)
96
+ if (!visible) return null;
74
97
 
75
- const handleShow = useCallback((e: any) => {
76
- console.log('onAdShow DrawFeed', e.nativeEvent);
77
- onAdShow?.(e.nativeEvent);
78
- }, [onAdShow]);
98
+ const NativeComponent = getDrawFeedAdComponent();
99
+
100
+ if (!NativeComponent) {
101
+ throw new Error(LINKING_ERROR);
102
+ }
79
103
 
80
104
  return (
81
- <DrawFeedAdNativeComponent
105
+ <NativeComponent
82
106
  codeid={codeid}
83
107
  onAdError={handleError}
84
108
  onAdClick={handleClick}
@@ -3,7 +3,13 @@
3
3
  * @createdTime: 2024-05-2024/5/20 22:00
4
4
  * @description: description
5
5
  */
6
- import React, { useState, useCallback, useRef, useEffect, useMemo } from 'react';
6
+ import React, {
7
+ useState,
8
+ useCallback,
9
+ useRef,
10
+ useEffect,
11
+ useMemo,
12
+ } from 'react';
7
13
  import { Platform, requireNativeComponent, UIManager } from 'react-native';
8
14
  import type { ViewStyle } from 'react-native';
9
15
 
@@ -26,10 +32,21 @@ const LINKING_ERROR =
26
32
  '- You rebuilt the app after installing the package\n' +
27
33
  '- You are not using Expo Go\n';
28
34
 
29
- // Define native component at module level to avoid duplicate registration
30
- const FeedAdNativeComponent = UIManager.getViewManagerConfig(ComponentName) != null
31
- ? requireNativeComponent<FeedAdProps>(ComponentName)
32
- : undefined;
35
+ // Lazy load native component to avoid duplicate registration on hot reload
36
+ type FeedAdComponentType = React.ComponentType<FeedAdProps> | null;
37
+ let FeedAdNativeComponent: FeedAdComponentType = null;
38
+
39
+ const getFeedAdComponent = (): FeedAdComponentType => {
40
+ if (FeedAdNativeComponent === null) {
41
+ if (UIManager.getViewManagerConfig(ComponentName) != null) {
42
+ FeedAdNativeComponent =
43
+ requireNativeComponent<FeedAdProps>(ComponentName);
44
+ } else {
45
+ FeedAdNativeComponent = null;
46
+ }
47
+ }
48
+ return FeedAdNativeComponent;
49
+ };
33
50
 
34
51
  const FeedAdView = (props: FeedAdProps) => {
35
52
  const {
@@ -43,16 +60,9 @@ const FeedAdView = (props: FeedAdProps) => {
43
60
  visible = true,
44
61
  } = props;
45
62
 
46
- // FeedAd是否显示,外部和内部均可控制,外部visible、内部closed
47
- // Check visible before hooks to avoid hooks order issues
48
- if (!visible) {
49
- return null;
50
- }
51
-
63
+ // All hooks must be called at the top level, unconditionally
52
64
  const [closed, setClosed] = useState(false);
53
65
  const [height, setHeight] = useState(0);
54
-
55
- // Use ref to track if height has been set to prevent unnecessary re-renders
56
66
  const heightInitialized = useRef(false);
57
67
 
58
68
  // Reset state when visible changes from false to true to allow re-display
@@ -64,45 +74,64 @@ const FeedAdView = (props: FeedAdProps) => {
64
74
  }
65
75
  }, [visible]);
66
76
 
67
- // Early return after closed state is set (after hooks)
68
- if (closed) return null;
77
+ // Use useMemo to cache style object and prevent unnecessary re-renders
78
+ const containerStyle = useMemo(
79
+ () => ({
80
+ width: adWidth,
81
+ height,
82
+ ...style,
83
+ }),
84
+ [adWidth, height, style]
85
+ );
69
86
 
70
- if (!FeedAdNativeComponent) {
71
- throw new Error(LINKING_ERROR);
87
+ // Stable callbacks using useCallback to prevent re-renders
88
+ const handleError = useCallback(
89
+ (e: any) => {
90
+ onAdError?.(e.nativeEvent);
91
+ },
92
+ [onAdError]
93
+ );
94
+
95
+ const handleClick = useCallback(
96
+ (e: any) => {
97
+ onAdClick?.(e.nativeEvent);
98
+ },
99
+ [onAdClick]
100
+ );
101
+
102
+ const handleClose = useCallback(
103
+ (e: any) => {
104
+ setClosed(true);
105
+ onAdClose?.(e.nativeEvent);
106
+ },
107
+ [onAdClose]
108
+ );
109
+
110
+ const handleLayout = useCallback(
111
+ (e: any) => {
112
+ const newHeight = e.nativeEvent.height;
113
+ if (newHeight && !heightInitialized.current) {
114
+ setHeight(newHeight + 10);
115
+ heightInitialized.current = true;
116
+ }
117
+ onAdLayout?.(e.nativeEvent);
118
+ },
119
+ [onAdLayout]
120
+ );
121
+
122
+ // Early returns after all hooks
123
+ if (!visible || closed) {
124
+ return null;
72
125
  }
73
126
 
74
- // Use useMemo to cache style object and prevent unnecessary re-renders
75
- const containerStyle = useMemo(() => ({
76
- width: adWidth,
77
- height,
78
- ...style,
79
- }), [adWidth, height, style]);
127
+ const NativeComponent = getFeedAdComponent();
80
128
 
81
- // Stable callbacks using useCallback to prevent re-renders
82
- const handleError = useCallback((e: any) => {
83
- onAdError?.(e.nativeEvent);
84
- }, [onAdError]);
85
-
86
- const handleClick = useCallback((e: any) => {
87
- onAdClick?.(e.nativeEvent);
88
- }, [onAdClick]);
89
-
90
- const handleClose = useCallback((e: any) => {
91
- setClosed(true);
92
- onAdClose?.(e.nativeEvent);
93
- }, [onAdClose]);
94
-
95
- const handleLayout = useCallback((e: any) => {
96
- const newHeight = e.nativeEvent.height;
97
- if (newHeight && !heightInitialized.current) {
98
- setHeight(newHeight + 10);
99
- heightInitialized.current = true;
100
- }
101
- onAdLayout?.(e.nativeEvent);
102
- }, [onAdLayout]);
129
+ if (!NativeComponent) {
130
+ throw new Error(LINKING_ERROR);
131
+ }
103
132
 
104
133
  return (
105
- <FeedAdNativeComponent
134
+ <NativeComponent
106
135
  codeid={codeid}
107
136
  // 里面素材的宽度,减30是有些情况下,里面素材过宽贴边显示不全
108
137
  adWidth={adWidth - 30}