@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.
- package/lib/commonjs/dy/component/BannerAd.js +16 -4
- package/lib/commonjs/dy/component/BannerAd.js.map +1 -1
- package/lib/commonjs/dy/component/DrawFeedAd.js +22 -7
- package/lib/commonjs/dy/component/DrawFeedAd.js.map +1 -1
- package/lib/commonjs/dy/component/FeedAd.js +24 -16
- package/lib/commonjs/dy/component/FeedAd.js.map +1 -1
- package/lib/module/dy/component/BannerAd.js +16 -4
- package/lib/module/dy/component/BannerAd.js.map +1 -1
- package/lib/module/dy/component/DrawFeedAd.js +23 -7
- package/lib/module/dy/component/DrawFeedAd.js.map +1 -1
- package/lib/module/dy/component/FeedAd.js +24 -16
- package/lib/module/dy/component/FeedAd.js.map +1 -1
- package/lib/typescript/src/dy/component/BannerAd.d.ts.map +1 -1
- package/lib/typescript/src/dy/component/DrawFeedAd.d.ts.map +1 -1
- package/lib/typescript/src/dy/component/FeedAd.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/dy/component/BannerAd.tsx +22 -7
- package/src/dy/component/DrawFeedAd.tsx +46 -22
- package/src/dy/component/FeedAd.tsx +75 -46
|
@@ -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
|
-
//
|
|
21
|
-
|
|
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
|
-
|
|
66
|
+
const NativeComponent = getBannerAdComponent();
|
|
67
|
+
if (!NativeComponent) {
|
|
56
68
|
throw new Error(LINKING_ERROR);
|
|
57
69
|
}
|
|
58
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
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":";;;;;;AAAA,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;AAG3E;AACA,MAAMkB,aAAa,GAAGC,qBAAQ,CAACC,MAAM,CAAC;EACpCC,OAAO,EAAE,qBAAqB;EAC9BC,GAAG,EAAEC;AACP,CAAC,CAAuB;AAuBxB,MAAMC,aAAa,GACjB,kFAAkF,GAClFL,qBAAQ,CAACC,MAAM,CAAC;EAAEE,GAAG,EAAE,gCAAgC;EAAEb,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B,GAC/B,mEAAmE;;AAErE;
|
|
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
|
-
//
|
|
28
|
+
// Lazy load native component to avoid duplicate registration on hot reload
|
|
29
29
|
exports.loadDrawFeedAd = loadDrawFeedAd;
|
|
30
|
-
|
|
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
|
-
|
|
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","
|
|
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
|
-
//
|
|
23
|
-
|
|
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
|
-
//
|
|
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
|
-
|
|
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","
|
|
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
|
-
//
|
|
14
|
-
|
|
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
|
-
|
|
59
|
+
const NativeComponent = getBannerAdComponent();
|
|
60
|
+
if (!NativeComponent) {
|
|
49
61
|
throw new Error(LINKING_ERROR);
|
|
50
62
|
}
|
|
51
|
-
return /*#__PURE__*/React.createElement(
|
|
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":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,MAAM,EAAEC,SAAS,QAAQ,OAAO;AAC1D,SAASC,QAAQ,EAAEC,sBAAsB,EAAEC,SAAS,QAAQ,cAAc;AAG1E;AACA,MAAMC,aAAa,GAAGH,QAAQ,CAACI,MAAM,CAAC;EACpCC,OAAO,EAAE,qBAAqB;EAC9BC,GAAG,EAAEC;AACP,CAAC,CAAuB;AAuBxB,MAAMC,aAAa,GACjB,kFAAkF,GAClFR,QAAQ,CAACI,MAAM,CAAC;EAAEE,GAAG,EAAE,gCAAgC;EAAEG,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B,GAC/B,mEAAmE;;AAErE;
|
|
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
|
-
//
|
|
21
|
-
|
|
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
|
-
|
|
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","
|
|
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
|
-
//
|
|
15
|
-
|
|
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
|
-
//
|
|
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
|
-
|
|
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","
|
|
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;
|
|
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;
|
|
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,
|
|
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
|
@@ -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
|
-
//
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
92
|
+
const NativeComponent = getBannerAdComponent();
|
|
93
|
+
|
|
94
|
+
if (!NativeComponent) {
|
|
80
95
|
throw new Error(LINKING_ERROR);
|
|
81
96
|
}
|
|
82
97
|
|
|
83
98
|
return (
|
|
84
|
-
<
|
|
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
|
-
//
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
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
|
-
|
|
61
|
-
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
onAdClick?.(e.nativeEvent);
|
|
73
|
-
}, [onAdClick]);
|
|
95
|
+
// Early return for visibility check (after all hooks)
|
|
96
|
+
if (!visible) return null;
|
|
74
97
|
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
98
|
+
const NativeComponent = getDrawFeedAdComponent();
|
|
99
|
+
|
|
100
|
+
if (!NativeComponent) {
|
|
101
|
+
throw new Error(LINKING_ERROR);
|
|
102
|
+
}
|
|
79
103
|
|
|
80
104
|
return (
|
|
81
|
-
<
|
|
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, {
|
|
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
|
-
//
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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
|
-
//
|
|
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
|
-
//
|
|
68
|
-
|
|
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
|
-
|
|
71
|
-
|
|
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
|
-
|
|
75
|
-
const containerStyle = useMemo(() => ({
|
|
76
|
-
width: adWidth,
|
|
77
|
-
height,
|
|
78
|
-
...style,
|
|
79
|
-
}), [adWidth, height, style]);
|
|
127
|
+
const NativeComponent = getFeedAdComponent();
|
|
80
128
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
<
|
|
134
|
+
<NativeComponent
|
|
106
135
|
codeid={codeid}
|
|
107
136
|
// 里面素材的宽度,减30是有些情况下,里面素材过宽贴边显示不全
|
|
108
137
|
adWidth={adWidth - 30}
|