pb-sxp-ui 1.16.13 → 1.16.15
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/dist/index.cjs +292 -183
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +292 -183
- package/dist/index.js.map +1 -1
- package/dist/index.min.cjs +6 -6
- package/dist/index.min.cjs.map +1 -1
- package/dist/index.min.js +6 -6
- package/dist/index.min.js.map +1 -1
- package/dist/pb-ui.js +292 -183
- package/dist/pb-ui.js.map +1 -1
- package/dist/pb-ui.min.js +6 -6
- package/dist/pb-ui.min.js.map +1 -1
- package/es/core/components/DiyPortalPreview/VideoWidget.js +8 -10
- package/es/core/components/SxpPageRender/LikeButton/index.js +15 -17
- package/es/core/components/SxpPageRender/PictureGroup/index.d.ts +0 -5
- package/es/core/components/SxpPageRender/PictureGroup/index.js +13 -39
- package/es/core/components/SxpPageRender/VideoWidget/index.js +45 -32
- package/es/core/components/SxpPageRender/WaterFall/index.js +3 -4
- package/es/core/components/SxpPageRender/index.js +37 -53
- package/es/core/context/SxpDataSourceProvider.d.ts +0 -1
- package/es/core/context/SxpDataSourceProvider.js +147 -22
- package/es/core/hooks/useEventReport.js +5 -6
- package/lib/core/components/DiyPortalPreview/VideoWidget.js +8 -10
- package/lib/core/components/SxpPageRender/LikeButton/index.js +15 -17
- package/lib/core/components/SxpPageRender/PictureGroup/index.d.ts +0 -5
- package/lib/core/components/SxpPageRender/PictureGroup/index.js +12 -38
- package/lib/core/components/SxpPageRender/VideoWidget/index.js +45 -32
- package/lib/core/components/SxpPageRender/WaterFall/index.js +3 -4
- package/lib/core/components/SxpPageRender/index.js +37 -53
- package/lib/core/context/SxpDataSourceProvider.d.ts +0 -1
- package/lib/core/context/SxpDataSourceProvider.js +147 -22
- package/lib/core/hooks/useEventReport.js +5 -6
- package/package.json +1 -1
@@ -42,7 +42,6 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
42
42
|
const skipLinkRef = useRef(false);
|
43
43
|
const [pageNum, setPageNum] = useState(2);
|
44
44
|
const videoWidgetRef = useRef(null);
|
45
|
-
const pictureGroupRef = useRef(null);
|
46
45
|
const { loadVideos, bffEventReport, loading, setPopupDetailData, ctaEvent, swiperRef, waterFallData, setOpenHashtag, appDomain, openHashtag, loadingImage, isFromHashtag, popupDetailData, bffFbReport, curTime, h5EnterLink, isShowConsent, selectTag, isPreview, isEditor, cacheRtcList, setRtcList, cacheActiveIndex, rtcList, isNoMoreData, channel, refreshFeSession, isDiyH5 } = useSxpDataSource();
|
47
46
|
const { backMainFeed, productView, jumpToWeb } = useEventReport();
|
48
47
|
const isShowFingerTip = useMemo(() => {
|
@@ -90,7 +89,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
90
89
|
(_a = swiperRef === null || swiperRef === void 0 ? void 0 : swiperRef.current) === null || _a === void 0 ? void 0 : _a.swiper.slideTo(index);
|
91
90
|
}, [data, ctaType, swiperRef]);
|
92
91
|
const handleSessionCompleted = useCallback((fk) => {
|
93
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v
|
92
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
94
93
|
const item = data === null || data === void 0 ? void 0 : data[activeIndex];
|
95
94
|
let fromKName = '';
|
96
95
|
if (popupDetailData && (((_b = (_a = item === null || item === void 0 ? void 0 : item.video) === null || _a === void 0 ? void 0 : _a.bindProducts) === null || _b === void 0 ? void 0 : _b.length) || ((_c = item === null || item === void 0 ? void 0 : item.video) === null || _c === void 0 ? void 0 : _c.bindProduct))) {
|
@@ -117,13 +116,12 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
117
116
|
eventSubject: 'sessionCompleted',
|
118
117
|
eventDescription: 'Session completed',
|
119
118
|
contentId: (_m = item === null || item === void 0 ? void 0 : item.video) === null || _m === void 0 ? void 0 : _m.itemId,
|
120
|
-
|
121
|
-
productId: (_r = item === null || item === void 0 ? void 0 : item.product) === null || _r === void 0 ? void 0 : _r.itemId,
|
119
|
+
productId: (_o = item === null || item === void 0 ? void 0 : item.product) === null || _o === void 0 ? void 0 : _o.itemId,
|
122
120
|
position: activeIndex + '',
|
123
121
|
fromKName: fk || fromKName,
|
124
122
|
fromKPage: location === null || location === void 0 ? void 0 : location.href,
|
125
|
-
ctatId: (
|
126
|
-
traceInfo: (
|
123
|
+
ctatId: (_r = (_q = (_p = item === null || item === void 0 ? void 0 : item.video) === null || _p === void 0 ? void 0 : _p.bindCta) === null || _q === void 0 ? void 0 : _q.itemId) !== null && _r !== void 0 ? _r : '',
|
124
|
+
traceInfo: (_v = (_t = (_s = item === null || item === void 0 ? void 0 : item.video) === null || _s === void 0 ? void 0 : _s.traceInfo) !== null && _t !== void 0 ? _t : (_u = item === null || item === void 0 ? void 0 : item.product) === null || _u === void 0 ? void 0 : _u.traceInfo) !== null && _v !== void 0 ? _v : ''
|
127
125
|
}
|
128
126
|
});
|
129
127
|
}, [data, bffEventReport, activeIndex, popupDetailData, tempMap, isFromHashtag, curTime]);
|
@@ -179,9 +177,8 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
179
177
|
refreshFeSession
|
180
178
|
]);
|
181
179
|
const handleSessionExpire = useCallback(debounce(() => {
|
182
|
-
var _a
|
180
|
+
var _a;
|
183
181
|
(_a = videoWidgetRef.current) === null || _a === void 0 ? void 0 : _a.setLoopPlay(false);
|
184
|
-
(_b = pictureGroupRef.current) === null || _b === void 0 ? void 0 : _b.setLoopPlay(false);
|
185
182
|
refreshFeSession === null || refreshFeSession === void 0 ? void 0 : refreshFeSession(false, handleSessionCompleted);
|
186
183
|
}, 1000), [handleSessionCompleted, refreshFeSession]);
|
187
184
|
useEffect(() => {
|
@@ -251,18 +248,18 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
251
248
|
return null;
|
252
249
|
}, [globalConfig, activeIndex, visList]);
|
253
250
|
const renderContent = useCallback((rec, index) => {
|
254
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k
|
251
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
255
252
|
if (rec === 'organic menu') {
|
256
253
|
return (React.createElement(MultiPosts, Object.assign({ recData: data === null || data === void 0 ? void 0 : data[1] }, (_c = (_b = (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.multiPosts) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.item) === null || _c === void 0 ? void 0 : _c.props, (_f = (_e = (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.multiPosts) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.item) === null || _f === void 0 ? void 0 : _f.event)));
|
257
254
|
}
|
258
|
-
if ((
|
255
|
+
if ((_g = rec === null || rec === void 0 ? void 0 : rec.video) === null || _g === void 0 ? void 0 : _g.url) {
|
259
256
|
return (React.createElement(VideoWidget, Object.assign({ key: isReload }, (activeIndex === index && { ref: videoWidgetRef }), { rec: rec, index: index, muted: isMuted, data: data, height: height, activeIndex: activeIndex, videoPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPost, videoPlayIcon: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPlayIcon, loopPlay: true, swiperRef: swiperRef })));
|
260
257
|
}
|
261
|
-
if ((
|
262
|
-
return (React.createElement(PictureGroup,
|
258
|
+
if ((_h = rec === null || rec === void 0 ? void 0 : rec.video) === null || _h === void 0 ? void 0 : _h.imgUrls) {
|
259
|
+
return (React.createElement(PictureGroup, { key: rec === null || rec === void 0 ? void 0 : rec.video.itemId, imgUrls: rec === null || rec === void 0 ? void 0 : rec.video.imgUrls, width: containerWidth, height: height, rec: rec, index: index, onViewImageEndEvent: handleViewImageStartEnd, onViewImageStartEvent: handleViewImageStartEvent, imgUrlsPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.imgUrlsPost }));
|
263
260
|
}
|
264
|
-
if (rec.product && Array.isArray(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) && ((
|
265
|
-
return (
|
261
|
+
if (rec.product && Array.isArray(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) && ((_j = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) === null || _j === void 0 ? void 0 : _j.length) > 0) {
|
262
|
+
return (_k = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) === null || _k === void 0 ? void 0 : _k.map((value, idx) => {
|
266
263
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
267
264
|
const t = resolver[(_a = value === null || value === void 0 ? void 0 : value.item) === null || _a === void 0 ? void 0 : _a.type];
|
268
265
|
const Component = withBindDataSource(t);
|
@@ -300,7 +297,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
300
297
|
};
|
301
298
|
}, [isShowMore]);
|
302
299
|
const renderBottom = useCallback((rec, index) => {
|
303
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q
|
300
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
304
301
|
if (rec === null || rec === void 0 ? void 0 : rec.video) {
|
305
302
|
let cta = null;
|
306
303
|
if ((_b = (_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.bindProducts) === null || _b === void 0 ? void 0 : _b.length) {
|
@@ -309,27 +306,24 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
309
306
|
else if ((_c = rec === null || rec === void 0 ? void 0 : rec.video) === null || _c === void 0 ? void 0 : _c.bindProduct) {
|
310
307
|
cta = '商品CTA';
|
311
308
|
}
|
312
|
-
else if (tempMap && ((_d = Object.keys(tempMap)) === null || _d === void 0 ? void 0 : _d.includes('服务CTA')) && ((_f = (_e = rec === null || rec === void 0 ? void 0 : rec.video) === null || _e === void 0 ? void 0 : _e.bindCta) === null || _f === void 0 ? void 0 : _f.itemId)) {
|
313
|
-
cta = '服务CTA';
|
314
|
-
}
|
315
309
|
else {
|
316
|
-
cta = (
|
310
|
+
cta = (_e = (_d = rec === null || rec === void 0 ? void 0 : rec.video) === null || _d === void 0 ? void 0 : _d.bindCta) === null || _e === void 0 ? void 0 : _e.itemId;
|
317
311
|
}
|
318
312
|
const value = tempMap === null || tempMap === void 0 ? void 0 : tempMap[cta];
|
319
313
|
const isNineProduct = (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.nineProductEnable) &&
|
320
314
|
index === ((rtcList === null || rtcList === void 0 ? void 0 : rtcList[0]) === 'organic menu' ? 2 : 1) &&
|
321
|
-
((
|
315
|
+
((_f = ['MultiCommodity', 'MultiCommodityDiro', 'MultiCommodityDiroNew']) === null || _f === void 0 ? void 0 : _f.includes((_g = value === null || value === void 0 ? void 0 : value.item) === null || _g === void 0 ? void 0 : _g.type));
|
322
316
|
return (React.createElement(React.Fragment, null,
|
323
317
|
isNineProduct && (React.createElement(RenderCard, { rec: rec, index: index, tempMap: tempMap, resolver: resolver, isActive: index === activeIndex, value: value, isNineProduct: isNineProduct })),
|
324
|
-
((
|
325
|
-
React.createElement("div", { className: 'clc-sxp-bottom', style: { marginBottom: `${(
|
318
|
+
((_h = rec === null || rec === void 0 ? void 0 : rec.video) === null || _h === void 0 ? void 0 : _h.title) && !isShowMore && React.createElement("div", { className: 'clc-sxp-bottom-shadow' }),
|
319
|
+
React.createElement("div", { className: 'clc-sxp-bottom', style: { marginBottom: `${(_j = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.bottomInfoDist) !== null && _j !== void 0 ? _j : 40}px` } },
|
326
320
|
React.createElement(Nudge, { nudge: nudge }),
|
327
321
|
((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowCTA) === undefined || (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowCTA)) && !isNineProduct ? (React.createElement("div", { className: 'clc-sxp-bottom-card' },
|
328
322
|
React.createElement(RenderCard, { rec: rec, index: index, tempMap: tempMap, resolver: resolver, isActive: index === activeIndex, value: value }))) : null,
|
329
323
|
React.createElement("div", null,
|
330
|
-
React.createElement(ExpandableText, { className: 'clc-sxp-bottom-text', isPost: true, foldText: tipText === null || tipText === void 0 ? void 0 : tipText.foldText, unfoldText: tipText === null || tipText === void 0 ? void 0 : tipText.unfoldText, text: (
|
324
|
+
React.createElement(ExpandableText, { className: 'clc-sxp-bottom-text', isPost: true, foldText: tipText === null || tipText === void 0 ? void 0 : tipText.foldText, unfoldText: tipText === null || tipText === void 0 ? void 0 : tipText.unfoldText, text: (_l = (_k = rec === null || rec === void 0 ? void 0 : rec.video) === null || _k === void 0 ? void 0 : _k.title) !== null && _l !== void 0 ? _l : '', style: Object.assign(Object.assign({}, descStyle), { textShadow: (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isOpenTextShadow) ? '2px 2px 4px rgba(0, 0, 0, 0.5)' : 'none' }), onChange: onExpandableChange }),
|
331
325
|
React.createElement(RenderCard, { rec: rec, index: index, tempMap: tempMap, resolver: resolver, includesCtaType: ['AniLink'], isActive: index === activeIndex, value: value }),
|
332
|
-
React.createElement(Hashtag, { index: activeIndex, tags: (
|
326
|
+
React.createElement(Hashtag, { index: activeIndex, tags: (_o = (_m = rec === null || rec === void 0 ? void 0 : rec.video) === null || _m === void 0 ? void 0 : _m.hashTags) !== null && _o !== void 0 ? _o : [], itemId: (_p = rec === null || rec === void 0 ? void 0 : rec.video) === null || _p === void 0 ? void 0 : _p.itemId, itemType: ((_q = rec === null || rec === void 0 ? void 0 : rec.video) === null || _q === void 0 ? void 0 : _q.itemId) ? 'VIDEO' : null, rec: rec, hashTagStyle: hashTagStyle, hashTagRightMargin: containerWidth - (hashTagRightMargin !== null && hashTagRightMargin !== void 0 ? hashTagRightMargin : 0) }))),
|
333
327
|
React.createElement(RenderCard, { rec: rec, index: index, tempMap: tempMap, resolver: resolver, includesCtaType: ['AniLinkPopup'], isActive: index === activeIndex, value: value })));
|
334
328
|
}
|
335
329
|
return null;
|
@@ -368,7 +362,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
368
362
|
return null;
|
369
363
|
}, [globalConfig, waterFallData]);
|
370
364
|
const handleViewImageStartEnd = (item) => {
|
371
|
-
var _a, _b, _c, _d, _e, _f
|
365
|
+
var _a, _b, _c, _d, _e, _f;
|
372
366
|
if (!((_a = item === null || item === void 0 ? void 0 : item.video) === null || _a === void 0 ? void 0 : _a.url) && ((_b = item === null || item === void 0 ? void 0 : item.video) === null || _b === void 0 ? void 0 : _b.imgUrls)) {
|
373
367
|
const endTime = Date.now();
|
374
368
|
const duration = viewImageStartTime.current === 0 ? 0 : (endTime - viewImageStartTime.current) / 1000;
|
@@ -377,11 +371,10 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
377
371
|
eventSubject: 'viewImageCarouselEnd',
|
378
372
|
eventDescription: 'User end view the image carousel',
|
379
373
|
contentId: (_d = (_c = item === null || item === void 0 ? void 0 : item.video) === null || _c === void 0 ? void 0 : _c.itemId) !== null && _d !== void 0 ? _d : '',
|
380
|
-
|
381
|
-
contentName: (_h = item === null || item === void 0 ? void 0 : item.video.title) !== null && _h !== void 0 ? _h : '',
|
374
|
+
contentName: (_e = item === null || item === void 0 ? void 0 : item.video.title) !== null && _e !== void 0 ? _e : '',
|
382
375
|
imageEndTime: `${endTime}`,
|
383
376
|
playDuration: `${duration}`,
|
384
|
-
contentTags: JSON.stringify((
|
377
|
+
contentTags: JSON.stringify((_f = item === null || item === void 0 ? void 0 : item.video.tags) !== null && _f !== void 0 ? _f : []),
|
385
378
|
position: activeIndex + '',
|
386
379
|
contentFormat: 'image',
|
387
380
|
traceInfo: item === null || item === void 0 ? void 0 : item.video.traceInfo
|
@@ -390,7 +383,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
390
383
|
}
|
391
384
|
};
|
392
385
|
const handleSlideSkip = (item, position) => {
|
393
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x
|
386
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
|
394
387
|
if (isPreview || waterFallData)
|
395
388
|
return;
|
396
389
|
const t = new Date() - curTime.current;
|
@@ -416,8 +409,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
416
409
|
contentTags: (product === null || product === void 0 ? void 0 : product.tags) ? JSON.stringify(product === null || product === void 0 ? void 0 : product.tags) : '',
|
417
410
|
position: position + '',
|
418
411
|
contentId: (_t = (_s = item === null || item === void 0 ? void 0 : item.video) === null || _s === void 0 ? void 0 : _s.itemId) !== null && _t !== void 0 ? _t : '',
|
419
|
-
|
420
|
-
traceInfo: (_0 = (_y = (_x = item === null || item === void 0 ? void 0 : item.video) === null || _x === void 0 ? void 0 : _x.traceInfo) !== null && _y !== void 0 ? _y : (_z = item === null || item === void 0 ? void 0 : item.product) === null || _z === void 0 ? void 0 : _z.traceInfo) !== null && _0 !== void 0 ? _0 : '',
|
412
|
+
traceInfo: (_x = (_v = (_u = item === null || item === void 0 ? void 0 : item.video) === null || _u === void 0 ? void 0 : _u.traceInfo) !== null && _v !== void 0 ? _v : (_w = item === null || item === void 0 ? void 0 : item.product) === null || _w === void 0 ? void 0 : _w.traceInfo) !== null && _x !== void 0 ? _x : '',
|
421
413
|
contentFormat
|
422
414
|
}
|
423
415
|
});
|
@@ -427,7 +419,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
427
419
|
}
|
428
420
|
};
|
429
421
|
const handleScrollEvent = (swiper) => {
|
430
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w
|
422
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
|
431
423
|
const item = data[swiper.previousIndex];
|
432
424
|
if (!item)
|
433
425
|
return;
|
@@ -444,12 +436,11 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
444
436
|
eventSubject: 'scrollDown',
|
445
437
|
eventDescription: 'User scroll down',
|
446
438
|
contentId: (_e = (_d = item === null || item === void 0 ? void 0 : item.video) === null || _d === void 0 ? void 0 : _d.itemId) !== null && _e !== void 0 ? _e : '',
|
447
|
-
|
448
|
-
productId: (_k = (_j = item === null || item === void 0 ? void 0 : item.product) === null || _j === void 0 ? void 0 : _j.itemId) !== null && _k !== void 0 ? _k : '',
|
439
|
+
productId: (_g = (_f = item === null || item === void 0 ? void 0 : item.product) === null || _f === void 0 ? void 0 : _f.itemId) !== null && _g !== void 0 ? _g : '',
|
449
440
|
requestId: null,
|
450
|
-
traceInfo: (
|
441
|
+
traceInfo: (_l = (_j = (_h = item === null || item === void 0 ? void 0 : item.video) === null || _h === void 0 ? void 0 : _h.traceInfo) !== null && _j !== void 0 ? _j : (_k = item === null || item === void 0 ? void 0 : item.product) === null || _k === void 0 ? void 0 : _k.traceInfo) !== null && _l !== void 0 ? _l : '',
|
451
442
|
contentFormat,
|
452
|
-
position: ((
|
443
|
+
position: ((_m = swiper.previousIndex) !== null && _m !== void 0 ? _m : 0) + ''
|
453
444
|
}
|
454
445
|
});
|
455
446
|
handleViewImageStartEnd(item);
|
@@ -460,13 +451,12 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
460
451
|
eventInfo: {
|
461
452
|
eventSubject: 'scrollUp',
|
462
453
|
eventDescription: 'User scroll up',
|
463
|
-
contentId: (
|
464
|
-
|
465
|
-
productId: (_x = (_w = item.product) === null || _w === void 0 ? void 0 : _w.itemId) !== null && _x !== void 0 ? _x : '',
|
454
|
+
contentId: (_p = (_o = item === null || item === void 0 ? void 0 : item.video) === null || _o === void 0 ? void 0 : _o.itemId) !== null && _p !== void 0 ? _p : '',
|
455
|
+
productId: (_r = (_q = item.product) === null || _q === void 0 ? void 0 : _q.itemId) !== null && _r !== void 0 ? _r : '',
|
466
456
|
requestId: null,
|
467
|
-
traceInfo: (
|
457
|
+
traceInfo: (_v = (_t = (_s = item === null || item === void 0 ? void 0 : item.video) === null || _s === void 0 ? void 0 : _s.traceInfo) !== null && _t !== void 0 ? _t : (_u = item === null || item === void 0 ? void 0 : item.product) === null || _u === void 0 ? void 0 : _u.traceInfo) !== null && _v !== void 0 ? _v : '',
|
468
458
|
contentFormat,
|
469
|
-
position: ((
|
459
|
+
position: ((_w = swiper.previousIndex) !== null && _w !== void 0 ? _w : 0) + ''
|
470
460
|
}
|
471
461
|
});
|
472
462
|
handleViewImageStartEnd(item);
|
@@ -490,7 +480,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
490
480
|
}
|
491
481
|
}, [openHashtag, data, activeIndex]);
|
492
482
|
const handleViewImageStartEvent = (activeIndex, imgInfo, enableCapi) => {
|
493
|
-
var _a, _b, _c, _d, _e, _f, _g, _h
|
483
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
494
484
|
const item = data[activeIndex];
|
495
485
|
if (!((_a = item === null || item === void 0 ? void 0 : item.video) === null || _a === void 0 ? void 0 : _a.url) && ((_b = item === null || item === void 0 ? void 0 : item.video) === null || _b === void 0 ? void 0 : _b.imgUrls)) {
|
496
486
|
const startTime = Date.now();
|
@@ -500,10 +490,9 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
500
490
|
eventSubject: 'viewImageCarouselStart',
|
501
491
|
eventDescription: 'User start view the image carousel',
|
502
492
|
contentId: (_d = (_c = item === null || item === void 0 ? void 0 : item.video) === null || _c === void 0 ? void 0 : _c.itemId) !== null && _d !== void 0 ? _d : '',
|
503
|
-
|
504
|
-
contentName: (_h = item === null || item === void 0 ? void 0 : item.video.title) !== null && _h !== void 0 ? _h : '',
|
493
|
+
contentName: (_e = item === null || item === void 0 ? void 0 : item.video.title) !== null && _e !== void 0 ? _e : '',
|
505
494
|
imageStartTime: `${startTime}`,
|
506
|
-
contentTags: JSON.stringify((
|
495
|
+
contentTags: JSON.stringify((_f = item === null || item === void 0 ? void 0 : item.video.tags) !== null && _f !== void 0 ? _f : []),
|
507
496
|
position: activeIndex + '',
|
508
497
|
contentFormat: 'image',
|
509
498
|
traceInfo: item === null || item === void 0 ? void 0 : item.video.traceInfo,
|
@@ -513,11 +502,11 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
513
502
|
if (enableCapi) {
|
514
503
|
bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
|
515
504
|
eventName: 'ViewContent',
|
516
|
-
product: (
|
505
|
+
product: (_g = item === null || item === void 0 ? void 0 : item.video) === null || _g === void 0 ? void 0 : _g.bindProduct
|
517
506
|
});
|
518
507
|
bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
|
519
508
|
eventName: 'PageView',
|
520
|
-
product: (
|
509
|
+
product: (_h = item === null || item === void 0 ? void 0 : item.video) === null || _h === void 0 ? void 0 : _h.bindProduct
|
521
510
|
});
|
522
511
|
}
|
523
512
|
}
|
@@ -609,19 +598,14 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
609
598
|
swiperRef.current.swiper.allowTouchMove = true;
|
610
599
|
}, 500);
|
611
600
|
}, onActiveIndexChange: (swiper) => {
|
612
|
-
var _a, _b;
|
613
601
|
setActiveIndex(swiper.activeIndex);
|
614
602
|
if (openHashtag)
|
615
603
|
return;
|
616
604
|
handleScrollEvent(swiper);
|
617
|
-
if (waterFallData || isEditor)
|
605
|
+
if (waterFallData || isEditor || isDiyH5)
|
618
606
|
return;
|
619
607
|
if ((swiper === null || swiper === void 0 ? void 0 : swiper.activeIndex) + 1 >= (data === null || data === void 0 ? void 0 : data.length)) {
|
620
608
|
if (!isLoadMore) {
|
621
|
-
if (isDiyH5) {
|
622
|
-
(_a = videoWidgetRef.current) === null || _a === void 0 ? void 0 : _a.setLoopPlay(false);
|
623
|
-
(_b = pictureGroupRef.current) === null || _b === void 0 ? void 0 : _b.setLoopPlay(false);
|
624
|
-
}
|
625
609
|
setIsLoadMore(true);
|
626
610
|
loadVideos === null || loadVideos === void 0 ? void 0 : loadVideos(pageNum).then((res) => {
|
627
611
|
var _a;
|
@@ -93,7 +93,6 @@ export interface ISxpDataSourceContext {
|
|
93
93
|
getAccount?: () => Promise<any>;
|
94
94
|
accountSonsent?: (v: boolean) => Promise<boolean>;
|
95
95
|
isDiyH5?: boolean;
|
96
|
-
firstRtcList?: RecItemType[];
|
97
96
|
}
|
98
97
|
export declare const SxpDataSourceContext: React.Context<ISxpDataSourceContext>;
|
99
98
|
export interface SxpDataSourceProviderProps {
|
@@ -20,7 +20,6 @@ export const DEFAULT_TAG = 'FOR U';
|
|
20
20
|
const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent = true, maxSize, defaultSize, isPreview = false, sxpParameter, appDomain, hashTagSize, loadingImage, isOpenHashTag = false, enabledMetaConversionApi = false, consentHeight, consentWidth, isOpenConsent = false, isEditor = false, utmParameter, channelQueryList, data, dataList, isDiyH5, onUpdateSchema, onUpdateChannel }) => {
|
21
21
|
var _a, _b, _c, _d, _e;
|
22
22
|
const [rtcList, setRtcList] = useState([]);
|
23
|
-
const [firstRtcList, setFirstRtcList] = useState([]);
|
24
23
|
const [tagList, setTagList] = useState([]);
|
25
24
|
const [loading, setLoading] = useState(true);
|
26
25
|
const [curReqInfo, setCurReqInfo] = useState({ rtc: '', requestId: '' });
|
@@ -106,7 +105,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
106
105
|
var _a;
|
107
106
|
return ((_a = bffDataSource === null || bffDataSource === void 0 ? void 0 : bffDataSource.headers) === null || _a === void 0 ? void 0 : _a['x-app-id']) + storeAndLoadFeUserId();
|
108
107
|
}, [bffDataSource]);
|
109
|
-
const bffFetch = useCallback((path, options) => {
|
108
|
+
const bffFetch = useCallback((path, options, isBota = true) => {
|
110
109
|
var _a;
|
111
110
|
if (!bffDataSource)
|
112
111
|
return;
|
@@ -123,7 +122,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
123
122
|
params[key] = value;
|
124
123
|
});
|
125
124
|
return window
|
126
|
-
.fetch(`${url}/api/${path}`, Object.assign({ headers: Object.assign({ 'Content-Type': 'application/json', 'x-user-id': fakeUserId }, bffDataSource.headers), method: options.method, body: options.type === 'beacon'
|
125
|
+
.fetch(`${url}/api/${path}`, Object.assign({ headers: Object.assign({ 'Content-Type': 'application/json', 'x-user-id': fakeUserId }, bffDataSource.headers), method: options.method, body: options.type === 'beacon' && isBota
|
127
126
|
? JSON.stringify({
|
128
127
|
body: btoa(encodeURIComponent(JSON.stringify(Object.assign(Object.assign(Object.assign({}, options.body), bffDataSource.headers), { 'x-user-id': fakeUserId }))))
|
129
128
|
})
|
@@ -131,6 +130,147 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
131
130
|
.then((res) => res.json())
|
132
131
|
.catch((err) => Promise.reject(err));
|
133
132
|
}, [bffDataSource, fakeUserId]);
|
133
|
+
const bffCollectEvent = useCallback((params) => {
|
134
|
+
var _a;
|
135
|
+
const body = {
|
136
|
+
eventName: params === null || params === void 0 ? void 0 : params.eventName,
|
137
|
+
eventSource: params === null || params === void 0 ? void 0 : params.eventSource
|
138
|
+
};
|
139
|
+
return bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch(`v1/data/collect/${(_a = bffDataSource === null || bffDataSource === void 0 ? void 0 : bffDataSource.headers) === null || _a === void 0 ? void 0 : _a['x-app-id']}/${params === null || params === void 0 ? void 0 : params.eventName}`, {
|
140
|
+
method: 'POST',
|
141
|
+
body,
|
142
|
+
type: 'beacon'
|
143
|
+
}, false);
|
144
|
+
}, [bffFetch, bffDataSource]);
|
145
|
+
useEffect(() => {
|
146
|
+
if (typeof (window === null || window === void 0 ? void 0 : window.fbq) === 'function') {
|
147
|
+
const OriginalImage = window.Image;
|
148
|
+
window.Image = function () {
|
149
|
+
const img = new OriginalImage();
|
150
|
+
const originalSrcDescriptor = Object.getOwnPropertyDescriptor(HTMLImageElement.prototype, 'src');
|
151
|
+
Object.defineProperty(img, 'src', {
|
152
|
+
set(value) {
|
153
|
+
originalSrcDescriptor.set.call(this, value);
|
154
|
+
img.onload = function () {
|
155
|
+
if (value.includes('https://www.facebook.com/privacy_sandbox/pixel/register/trigger/')) {
|
156
|
+
const url = new URL(value);
|
157
|
+
const params = Object.fromEntries(url.searchParams.entries());
|
158
|
+
bffCollectEvent({
|
159
|
+
eventName: params === null || params === void 0 ? void 0 : params.ev,
|
160
|
+
eventSource: 'Meta Pixel'
|
161
|
+
});
|
162
|
+
}
|
163
|
+
};
|
164
|
+
},
|
165
|
+
get() {
|
166
|
+
return originalSrcDescriptor.get.call(this);
|
167
|
+
}
|
168
|
+
});
|
169
|
+
return img;
|
170
|
+
};
|
171
|
+
}
|
172
|
+
}, [bffCollectEvent]);
|
173
|
+
useEffect(() => {
|
174
|
+
const navigatorWithBeacon = navigator;
|
175
|
+
if (!navigatorWithBeacon.sendBeacon) {
|
176
|
+
console.warn('navigator.sendBeacon is not supported');
|
177
|
+
return;
|
178
|
+
}
|
179
|
+
const originalSendBeacon = navigatorWithBeacon.sendBeacon.bind(navigatorWithBeacon);
|
180
|
+
navigatorWithBeacon.sendBeacon = function (url, data) {
|
181
|
+
const urlString = url instanceof URL ? url.href : url.toString();
|
182
|
+
const success = originalSendBeacon(url, data);
|
183
|
+
function parseBeaconData(data) {
|
184
|
+
return __awaiter(this, void 0, void 0, function* () {
|
185
|
+
if (typeof data === 'string')
|
186
|
+
return JSON.parse(data);
|
187
|
+
if (data instanceof Blob)
|
188
|
+
return JSON.parse(yield data.text());
|
189
|
+
if (data instanceof ArrayBuffer)
|
190
|
+
return JSON.parse(new TextDecoder().decode(data));
|
191
|
+
return null;
|
192
|
+
});
|
193
|
+
}
|
194
|
+
if (success) {
|
195
|
+
Promise.resolve().then(() => __awaiter(this, void 0, void 0, function* () {
|
196
|
+
var _a, _b;
|
197
|
+
try {
|
198
|
+
const parsedData = yield parseBeaconData(data);
|
199
|
+
if (success) {
|
200
|
+
if (urlString.includes('https://tr.snapchat.com/p')) {
|
201
|
+
(_b = (_a = parsedData === null || parsedData === void 0 ? void 0 : parsedData.req) === null || _a === void 0 ? void 0 : _a.forEach) === null || _b === void 0 ? void 0 : _b.call(_a, (item) => {
|
202
|
+
var _a, _b;
|
203
|
+
if ((_a = item === null || item === void 0 ? void 0 : item.t) === null || _a === void 0 ? void 0 : _a.ev) {
|
204
|
+
bffCollectEvent({
|
205
|
+
eventName: (_b = item === null || item === void 0 ? void 0 : item.t) === null || _b === void 0 ? void 0 : _b.ev,
|
206
|
+
eventSource: 'Snapchat Pixel'
|
207
|
+
});
|
208
|
+
}
|
209
|
+
});
|
210
|
+
}
|
211
|
+
else if (urlString.includes('https://analytics.tiktok.com/api/v2/pixel') && (parsedData === null || parsedData === void 0 ? void 0 : parsedData.event)) {
|
212
|
+
bffCollectEvent({
|
213
|
+
eventName: parsedData.event,
|
214
|
+
eventSource: 'TikTok Pixel'
|
215
|
+
});
|
216
|
+
}
|
217
|
+
}
|
218
|
+
}
|
219
|
+
catch (error) {
|
220
|
+
console.error('监控失败:', error);
|
221
|
+
}
|
222
|
+
}));
|
223
|
+
}
|
224
|
+
return success;
|
225
|
+
};
|
226
|
+
return () => {
|
227
|
+
navigatorWithBeacon.sendBeacon = originalSendBeacon;
|
228
|
+
};
|
229
|
+
}, [bffCollectEvent]);
|
230
|
+
useEffect(() => {
|
231
|
+
const _originalFetch = window.fetch;
|
232
|
+
window.fetch = function (input, init) {
|
233
|
+
var arguments_1 = arguments;
|
234
|
+
return __awaiter(this, void 0, void 0, function* () {
|
235
|
+
let url;
|
236
|
+
try {
|
237
|
+
url = typeof input === 'string'
|
238
|
+
? input
|
239
|
+
: input instanceof URL
|
240
|
+
? input.href
|
241
|
+
: input.url;
|
242
|
+
}
|
243
|
+
catch (error) {
|
244
|
+
console.error('解析请求URL失败:', error);
|
245
|
+
return _originalFetch.apply(this, arguments_1);
|
246
|
+
}
|
247
|
+
if (!url.includes('https://www.google-analytics.com/g/collect')) {
|
248
|
+
return _originalFetch.apply(this, arguments_1);
|
249
|
+
}
|
250
|
+
try {
|
251
|
+
const response = yield _originalFetch.apply(this, arguments_1);
|
252
|
+
const urlObj = new URL(url);
|
253
|
+
const params = Object.fromEntries(urlObj.searchParams.entries());
|
254
|
+
if (params === null || params === void 0 ? void 0 : params.en) {
|
255
|
+
bffCollectEvent({
|
256
|
+
eventName: params === null || params === void 0 ? void 0 : params.en,
|
257
|
+
eventSource: 'Google Analytics'
|
258
|
+
});
|
259
|
+
}
|
260
|
+
return response;
|
261
|
+
}
|
262
|
+
catch (error) {
|
263
|
+
console.error('处理 GA4 请求时出错:', error);
|
264
|
+
throw error;
|
265
|
+
}
|
266
|
+
});
|
267
|
+
};
|
268
|
+
}, [bffCollectEvent]);
|
269
|
+
useEffect(() => {
|
270
|
+
if (typeof (window === null || window === void 0 ? void 0 : window.fbq) === 'function') {
|
271
|
+
window === null || window === void 0 ? void 0 : window.fbq('track', 'PageView');
|
272
|
+
}
|
273
|
+
}, []);
|
134
274
|
const bffFetchAdmin = useCallback((path, options) => {
|
135
275
|
if (!bffDataSource)
|
136
276
|
return;
|
@@ -184,9 +324,6 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
184
324
|
if ((rtcList === null || rtcList === void 0 ? void 0 : rtcList.length) === 0) {
|
185
325
|
setRtcList(getFilterRecList(Object.assign(Object.assign({}, result === null || result === void 0 ? void 0 : result.data), { recList: list })));
|
186
326
|
setCacheRtcList(getFilterRecList(Object.assign(Object.assign({}, result === null || result === void 0 ? void 0 : result.data), { recList: list })));
|
187
|
-
if (isDiyH5) {
|
188
|
-
setFirstRtcList(getFilterRecList(Object.assign(Object.assign({}, result === null || result === void 0 ? void 0 : result.data), { recList: list })));
|
189
|
-
}
|
190
327
|
}
|
191
328
|
const isNotNullList = (_0 = (_z = result === null || result === void 0 ? void 0 : result.data) === null || _z === void 0 ? void 0 : _z.recList) === null || _0 === void 0 ? void 0 : _0.some((item) => (item === null || item === void 0 ? void 0 : item.product) || (item === null || item === void 0 ? void 0 : item.video));
|
192
329
|
if (isNotNullList) {
|
@@ -226,17 +363,12 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
226
363
|
if (rtcList.length <= 0) {
|
227
364
|
return;
|
228
365
|
}
|
229
|
-
if (isDiyH5 && (firstRtcList === null || firstRtcList === void 0 ? void 0 : firstRtcList.length) > 0) {
|
230
|
-
setRtcList(rtcList.concat(firstRtcList));
|
231
|
-
setCacheRtcList(cacheRtcList.concat(firstRtcList));
|
232
|
-
return;
|
233
|
-
}
|
234
366
|
const lastItem = rtcList === null || rtcList === void 0 ? void 0 : rtcList[(rtcList === null || rtcList === void 0 ? void 0 : rtcList.length) - 1];
|
235
367
|
const data = yield getRecommendVideos(Object.assign(Object.assign(Object.assign(Object.assign({ hashTag: waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.hashTag }, (((_1 = lastItem === null || lastItem === void 0 ? void 0 : lastItem.product) === null || _1 === void 0 ? void 0 : _1.itemId) && { productFilter: [(_2 = lastItem === null || lastItem === void 0 ? void 0 : lastItem.product) === null || _2 === void 0 ? void 0 : _2.itemId] })), (((_3 = lastItem === null || lastItem === void 0 ? void 0 : lastItem.video) === null || _3 === void 0 ? void 0 : _3.itemId) && { contentFilter: [(_4 = lastItem === null || lastItem === void 0 ? void 0 : lastItem.video) === null || _4 === void 0 ? void 0 : _4.itemId] })), { themeTag: themeTag.current }), ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enablePreview) && !isEditor && { pageNum })));
|
236
368
|
setRtcList(rtcList.concat(getFilterRecList(data)));
|
237
369
|
setCacheRtcList(cacheRtcList.concat(getFilterRecList(data)));
|
238
370
|
return data;
|
239
|
-
}), [getRecommendVideos, rtcList, waterFallData, cacheRtcList
|
371
|
+
}), [getRecommendVideos, rtcList, waterFallData, cacheRtcList]);
|
240
372
|
const refreshFeSession = useCallback((enableReSid, event) => {
|
241
373
|
var _a, _b, _c, _d, _e;
|
242
374
|
let expire = false;
|
@@ -457,7 +589,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
457
589
|
}
|
458
590
|
}), [bffFetch, utmVal]);
|
459
591
|
const ctaEvent = useCallback((eventInfo, rec, product, position) => {
|
460
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11
|
592
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11;
|
461
593
|
const cta = product === null || product === void 0 ? void 0 : product.bindCta;
|
462
594
|
const isProd = ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.bindProduct) || (((_b = rec === null || rec === void 0 ? void 0 : rec.video) === null || _b === void 0 ? void 0 : _b.bindProducts) && ((_d = (_c = rec === null || rec === void 0 ? void 0 : rec.video) === null || _c === void 0 ? void 0 : _c.bindProducts) === null || _d === void 0 ? void 0 : _d.length) > 0);
|
463
595
|
let fromKName = '';
|
@@ -475,7 +607,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
475
607
|
}
|
476
608
|
const contentTags = (_p = (_m = (_h = product === null || product === void 0 ? void 0 : product.tags) !== null && _h !== void 0 ? _h : (_l = (_k = (_j = rec === null || rec === void 0 ? void 0 : rec.video) === null || _j === void 0 ? void 0 : _j.bindProducts) === null || _k === void 0 ? void 0 : _k[0]) === null || _l === void 0 ? void 0 : _l.tags) !== null && _m !== void 0 ? _m : (_o = rec === null || rec === void 0 ? void 0 : rec.video) === null || _o === void 0 ? void 0 : _o.tags) !== null && _p !== void 0 ? _p : (_q = rec === null || rec === void 0 ? void 0 : rec.product) === null || _q === void 0 ? void 0 : _q.tags;
|
477
609
|
bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
|
478
|
-
eventInfo: Object.assign(Object.assign({}, eventInfo), { ctaId: (_r = cta === null || cta === void 0 ? void 0 : cta.itemId) !== null && _r !== void 0 ? _r : '', ctaName: (_s = cta === null || cta === void 0 ? void 0 : cta.title) !== null && _s !== void 0 ? _s : '', contentTags: contentTags ? JSON.stringify(contentTags) : '', position: position + '', contentId: (_u = (_t = rec === null || rec === void 0 ? void 0 : rec.video) === null || _t === void 0 ? void 0 : _t.itemId) !== null && _u !== void 0 ? _u : '',
|
610
|
+
eventInfo: Object.assign(Object.assign({}, eventInfo), { ctaId: (_r = cta === null || cta === void 0 ? void 0 : cta.itemId) !== null && _r !== void 0 ? _r : '', ctaName: (_s = cta === null || cta === void 0 ? void 0 : cta.title) !== null && _s !== void 0 ? _s : '', contentTags: contentTags ? JSON.stringify(contentTags) : '', position: position + '', contentId: (_u = (_t = rec === null || rec === void 0 ? void 0 : rec.video) === null || _t === void 0 ? void 0 : _t.itemId) !== null && _u !== void 0 ? _u : '', productId: isProd ? product === null || product === void 0 ? void 0 : product.itemId : '', traceInfo: (_10 = (_7 = (_2 = (_y = (_v = cta === null || cta === void 0 ? void 0 : cta.traceInfo) !== null && _v !== void 0 ? _v : (_x = (_w = rec === null || rec === void 0 ? void 0 : rec.video) === null || _w === void 0 ? void 0 : _w.bindCta) === null || _x === void 0 ? void 0 : _x.traceInfo) !== null && _y !== void 0 ? _y : (_1 = (_0 = (_z = rec === null || rec === void 0 ? void 0 : rec.video) === null || _z === void 0 ? void 0 : _z.bindProduct) === null || _0 === void 0 ? void 0 : _0.bindCta) === null || _1 === void 0 ? void 0 : _1.traceInfo) !== null && _2 !== void 0 ? _2 : (_6 = (_5 = (_4 = (_3 = rec === null || rec === void 0 ? void 0 : rec.video) === null || _3 === void 0 ? void 0 : _3.bindProducts) === null || _4 === void 0 ? void 0 : _4[0]) === null || _5 === void 0 ? void 0 : _5.bindCta) === null || _6 === void 0 ? void 0 : _6.traceInfo) !== null && _7 !== void 0 ? _7 : (_9 = (_8 = rec === null || rec === void 0 ? void 0 : rec.product) === null || _8 === void 0 ? void 0 : _8.bindCta) === null || _9 === void 0 ? void 0 : _9.traceInfo) !== null && _10 !== void 0 ? _10 : '', fromKName, fromKPage: (_11 = location === null || location === void 0 ? void 0 : location.href) !== null && _11 !== void 0 ? _11 : '', contentFormat })
|
479
611
|
});
|
480
612
|
}, [bffEventReport, isFromHashtag]);
|
481
613
|
const h5EnterLink = useCallback(() => {
|
@@ -577,9 +709,6 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
577
709
|
}
|
578
710
|
setRtcList(list);
|
579
711
|
setCacheRtcList(list);
|
580
|
-
if (isDiyH5) {
|
581
|
-
setFirstRtcList(list);
|
582
|
-
}
|
583
712
|
bffGetTagList(curData !== null && curData !== void 0 ? curData : finalPageData);
|
584
713
|
if (channel) {
|
585
714
|
const item = list === null || list === void 0 ? void 0 : list[0];
|
@@ -614,9 +743,6 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
614
743
|
}
|
615
744
|
setRtcList(list);
|
616
745
|
setCacheRtcList(list);
|
617
|
-
if (isDiyH5) {
|
618
|
-
setFirstRtcList(list);
|
619
|
-
}
|
620
746
|
}
|
621
747
|
})
|
622
748
|
.finally(() => {
|
@@ -680,8 +806,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
680
806
|
refreshFeSession,
|
681
807
|
getAccount,
|
682
808
|
accountSonsent,
|
683
|
-
isDiyH5
|
684
|
-
firstRtcList
|
809
|
+
isDiyH5
|
685
810
|
} }, isShowConsent ? (React.createElement(Consent, Object.assign({}, (_e = (_d = (_c = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.consent) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.item) === null || _e === void 0 ? void 0 : _e.props))) : (render({
|
686
811
|
rtcList,
|
687
812
|
mutateLike: bffMutateLike,
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { useCallback } from 'react';
|
2
|
-
import { DEFAULT_TAG } from '../context/SxpDataSourceProvider';
|
3
2
|
import { useSxpDataSource } from './useSxpDataSource';
|
3
|
+
import { DEFAULT_TAG } from '../context/SxpDataSourceProvider';
|
4
4
|
export function useEventReport() {
|
5
5
|
const { bffEventReport, popupDetailData, isFromHashtag, eventTimeList, setEventTimeList } = useSxpDataSource();
|
6
6
|
const jumpToWeb = useCallback((e, data, product, cta, position, traceInfo) => {
|
7
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13
|
7
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13;
|
8
8
|
const i = eventTimeList === null || eventTimeList === void 0 ? void 0 : eventTimeList.findIndex((item) => item.target === (e === null || e === void 0 ? void 0 : e.target));
|
9
9
|
if (i !== -1) {
|
10
10
|
return;
|
@@ -37,11 +37,11 @@ export function useEventReport() {
|
|
37
37
|
contentFormat = 'image';
|
38
38
|
}
|
39
39
|
bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
|
40
|
-
eventInfo: Object.assign({ eventSubject: 'jumpToWeb', eventDescription: 'User jumped to website', productId: (_v = product === null || product === void 0 ? void 0 : product.itemId) !== null && _v !== void 0 ? _v : '', productName: (_w = product === null || product === void 0 ? void 0 : product.title) !== null && _w !== void 0 ? _w : '', price: (product === null || product === void 0 ? void 0 : product.price) ? (product === null || product === void 0 ? void 0 : product.price) + '' : '0', productCollection: (_x = product === null || product === void 0 ? void 0 : product.collection) !== null && _x !== void 0 ? _x : '', fromKName, fromKPage: location === null || location === void 0 ? void 0 : location.href, contentTags: contentTags ? JSON.stringify(contentTags) : '', position: position + '', contentId: (_z = (_y = data === null || data === void 0 ? void 0 : data.video) === null || _y === void 0 ? void 0 : _y.itemId) !== null && _z !== void 0 ? _z : '',
|
40
|
+
eventInfo: Object.assign({ eventSubject: 'jumpToWeb', eventDescription: 'User jumped to website', productId: (_v = product === null || product === void 0 ? void 0 : product.itemId) !== null && _v !== void 0 ? _v : '', productName: (_w = product === null || product === void 0 ? void 0 : product.title) !== null && _w !== void 0 ? _w : '', price: (product === null || product === void 0 ? void 0 : product.price) ? (product === null || product === void 0 ? void 0 : product.price) + '' : '0', productCollection: (_x = product === null || product === void 0 ? void 0 : product.collection) !== null && _x !== void 0 ? _x : '', fromKName, fromKPage: location === null || location === void 0 ? void 0 : location.href, contentTags: contentTags ? JSON.stringify(contentTags) : '', position: position + '', contentId: (_z = (_y = data === null || data === void 0 ? void 0 : data.video) === null || _y === void 0 ? void 0 : _y.itemId) !== null && _z !== void 0 ? _z : '', ctatId: (_0 = cta === null || cta === void 0 ? void 0 : cta.itemId) !== null && _0 !== void 0 ? _0 : '', traceInfo: (_13 = (_10 = (_8 = (_4 = (_1 = traceInfo !== null && traceInfo !== void 0 ? traceInfo : product === null || product === void 0 ? void 0 : product.traceInfo) !== null && _1 !== void 0 ? _1 : (_3 = (_2 = data === null || data === void 0 ? void 0 : data.video) === null || _2 === void 0 ? void 0 : _2.bindProduct) === null || _3 === void 0 ? void 0 : _3.traceInfo) !== null && _4 !== void 0 ? _4 : (_7 = (_6 = (_5 = data === null || data === void 0 ? void 0 : data.video) === null || _5 === void 0 ? void 0 : _5.bindProducts) === null || _6 === void 0 ? void 0 : _6[0]) === null || _7 === void 0 ? void 0 : _7.traceInfo) !== null && _8 !== void 0 ? _8 : (_9 = data === null || data === void 0 ? void 0 : data.product) === null || _9 === void 0 ? void 0 : _9.traceInfo) !== null && _10 !== void 0 ? _10 : (_12 = (_11 = data === null || data === void 0 ? void 0 : data.video) === null || _11 === void 0 ? void 0 : _11.bindCta) === null || _12 === void 0 ? void 0 : _12.traceInfo) !== null && _13 !== void 0 ? _13 : '' }, (contentFormat && { contentFormat }))
|
41
41
|
});
|
42
42
|
}, [bffEventReport, popupDetailData, isFromHashtag, eventTimeList]);
|
43
43
|
const productView = useCallback((data, product, cta, viewTime, position) => {
|
44
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p
|
44
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
45
45
|
let fromKName = '';
|
46
46
|
if (popupDetailData && (((_b = (_a = data === null || data === void 0 ? void 0 : data.video) === null || _a === void 0 ? void 0 : _a.bindProducts) === null || _b === void 0 ? void 0 : _b.length) || ((_c = data === null || data === void 0 ? void 0 : data.video) === null || _c === void 0 ? void 0 : _c.bindProduct))) {
|
47
47
|
fromKName = 'pdpPage';
|
@@ -60,9 +60,8 @@ export function useEventReport() {
|
|
60
60
|
contentTags: JSON.stringify(product === null || product === void 0 ? void 0 : product.tags),
|
61
61
|
position: position + '',
|
62
62
|
contentId: (_d = data === null || data === void 0 ? void 0 : data.video) === null || _d === void 0 ? void 0 : _d.itemId,
|
63
|
-
sceneId: (_g = (_f = (_e = data === null || data === void 0 ? void 0 : data.video) === null || _e === void 0 ? void 0 : _e.scene) === null || _f === void 0 ? void 0 : _f.sceneId) !== null && _g !== void 0 ? _g : '',
|
64
63
|
ctatId: cta === null || cta === void 0 ? void 0 : cta.itemId,
|
65
|
-
traceInfo: (
|
64
|
+
traceInfo: (_p = (_m = (_h = (_e = product === null || product === void 0 ? void 0 : product.traceInfo) !== null && _e !== void 0 ? _e : (_g = (_f = data === null || data === void 0 ? void 0 : data.video) === null || _f === void 0 ? void 0 : _f.bindProduct) === null || _g === void 0 ? void 0 : _g.traceInfo) !== null && _h !== void 0 ? _h : (_l = (_k = (_j = data === null || data === void 0 ? void 0 : data.video) === null || _j === void 0 ? void 0 : _j.bindProducts) === null || _k === void 0 ? void 0 : _k[0]) === null || _l === void 0 ? void 0 : _l.traceInfo) !== null && _m !== void 0 ? _m : (_o = data === null || data === void 0 ? void 0 : data.product) === null || _o === void 0 ? void 0 : _o.traceInfo) !== null && _p !== void 0 ? _p : '',
|
66
65
|
timeOnSite: Math.floor((new Date() - viewTime) / 1000) + '',
|
67
66
|
eventSubject: 'productView',
|
68
67
|
eventDescription: 'User browsed the product'
|