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
@@ -45,7 +45,6 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
45
45
|
const skipLinkRef = (0, react_1.useRef)(false);
|
46
46
|
const [pageNum, setPageNum] = (0, react_1.useState)(2);
|
47
47
|
const videoWidgetRef = (0, react_1.useRef)(null);
|
48
|
-
const pictureGroupRef = (0, react_1.useRef)(null);
|
49
48
|
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 } = (0, hooks_1.useSxpDataSource)();
|
50
49
|
const { backMainFeed, productView, jumpToWeb } = (0, useEventReport_1.useEventReport)();
|
51
50
|
const isShowFingerTip = (0, react_1.useMemo)(() => {
|
@@ -93,7 +92,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
93
92
|
(_a = swiperRef === null || swiperRef === void 0 ? void 0 : swiperRef.current) === null || _a === void 0 ? void 0 : _a.swiper.slideTo(index);
|
94
93
|
}, [data, ctaType, swiperRef]);
|
95
94
|
const handleSessionCompleted = (0, react_1.useCallback)((fk) => {
|
96
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v
|
95
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
97
96
|
const item = data === null || data === void 0 ? void 0 : data[activeIndex];
|
98
97
|
let fromKName = '';
|
99
98
|
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))) {
|
@@ -120,13 +119,12 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
120
119
|
eventSubject: 'sessionCompleted',
|
121
120
|
eventDescription: 'Session completed',
|
122
121
|
contentId: (_m = item === null || item === void 0 ? void 0 : item.video) === null || _m === void 0 ? void 0 : _m.itemId,
|
123
|
-
|
124
|
-
productId: (_r = item === null || item === void 0 ? void 0 : item.product) === null || _r === void 0 ? void 0 : _r.itemId,
|
122
|
+
productId: (_o = item === null || item === void 0 ? void 0 : item.product) === null || _o === void 0 ? void 0 : _o.itemId,
|
125
123
|
position: activeIndex + '',
|
126
124
|
fromKName: fk || fromKName,
|
127
125
|
fromKPage: location === null || location === void 0 ? void 0 : location.href,
|
128
|
-
ctatId: (
|
129
|
-
traceInfo: (
|
126
|
+
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 : '',
|
127
|
+
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 : ''
|
130
128
|
}
|
131
129
|
});
|
132
130
|
}, [data, bffEventReport, activeIndex, popupDetailData, tempMap, isFromHashtag, curTime]);
|
@@ -182,9 +180,8 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
182
180
|
refreshFeSession
|
183
181
|
]);
|
184
182
|
const handleSessionExpire = (0, react_1.useCallback)((0, lodash_1.debounce)(() => {
|
185
|
-
var _a
|
183
|
+
var _a;
|
186
184
|
(_a = videoWidgetRef.current) === null || _a === void 0 ? void 0 : _a.setLoopPlay(false);
|
187
|
-
(_b = pictureGroupRef.current) === null || _b === void 0 ? void 0 : _b.setLoopPlay(false);
|
188
185
|
refreshFeSession === null || refreshFeSession === void 0 ? void 0 : refreshFeSession(false, handleSessionCompleted);
|
189
186
|
}, 1000), [handleSessionCompleted, refreshFeSession]);
|
190
187
|
(0, react_1.useEffect)(() => {
|
@@ -254,18 +251,18 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
254
251
|
return null;
|
255
252
|
}, [globalConfig, activeIndex, visList]);
|
256
253
|
const renderContent = (0, react_1.useCallback)((rec, index) => {
|
257
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k
|
254
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
258
255
|
if (rec === 'organic menu') {
|
259
256
|
return (react_1.default.createElement(MultiPosts_1.default, 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)));
|
260
257
|
}
|
261
|
-
if ((
|
258
|
+
if ((_g = rec === null || rec === void 0 ? void 0 : rec.video) === null || _g === void 0 ? void 0 : _g.url) {
|
262
259
|
return (react_1.default.createElement(VideoWidget_1.default, 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 })));
|
263
260
|
}
|
264
|
-
if ((
|
265
|
-
return (react_1.default.createElement(PictureGroup_1.default,
|
261
|
+
if ((_h = rec === null || rec === void 0 ? void 0 : rec.video) === null || _h === void 0 ? void 0 : _h.imgUrls) {
|
262
|
+
return (react_1.default.createElement(PictureGroup_1.default, { 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 }));
|
266
263
|
}
|
267
|
-
if (rec.product && Array.isArray(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) && ((
|
268
|
-
return (
|
264
|
+
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) {
|
265
|
+
return (_k = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) === null || _k === void 0 ? void 0 : _k.map((value, idx) => {
|
269
266
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
270
267
|
const t = resolver[(_a = value === null || value === void 0 ? void 0 : value.item) === null || _a === void 0 ? void 0 : _a.type];
|
271
268
|
const Component = (0, withBindDataSource_1.default)(t);
|
@@ -303,7 +300,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
303
300
|
};
|
304
301
|
}, [isShowMore]);
|
305
302
|
const renderBottom = (0, react_1.useCallback)((rec, index) => {
|
306
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q
|
303
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
307
304
|
if (rec === null || rec === void 0 ? void 0 : rec.video) {
|
308
305
|
let cta = null;
|
309
306
|
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) {
|
@@ -312,27 +309,24 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
312
309
|
else if ((_c = rec === null || rec === void 0 ? void 0 : rec.video) === null || _c === void 0 ? void 0 : _c.bindProduct) {
|
313
310
|
cta = '商品CTA';
|
314
311
|
}
|
315
|
-
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)) {
|
316
|
-
cta = '服务CTA';
|
317
|
-
}
|
318
312
|
else {
|
319
|
-
cta = (
|
313
|
+
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;
|
320
314
|
}
|
321
315
|
const value = tempMap === null || tempMap === void 0 ? void 0 : tempMap[cta];
|
322
316
|
const isNineProduct = (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.nineProductEnable) &&
|
323
317
|
index === ((rtcList === null || rtcList === void 0 ? void 0 : rtcList[0]) === 'organic menu' ? 2 : 1) &&
|
324
|
-
((
|
318
|
+
((_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));
|
325
319
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
326
320
|
isNineProduct && (react_1.default.createElement(RenderCard_1.default, { rec: rec, index: index, tempMap: tempMap, resolver: resolver, isActive: index === activeIndex, value: value, isNineProduct: isNineProduct })),
|
327
|
-
((
|
328
|
-
react_1.default.createElement("div", { className: 'clc-sxp-bottom', style: { marginBottom: `${(
|
321
|
+
((_h = rec === null || rec === void 0 ? void 0 : rec.video) === null || _h === void 0 ? void 0 : _h.title) && !isShowMore && react_1.default.createElement("div", { className: 'clc-sxp-bottom-shadow' }),
|
322
|
+
react_1.default.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` } },
|
329
323
|
react_1.default.createElement(Nudge_1.default, { nudge: nudge }),
|
330
324
|
((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowCTA) === undefined || (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowCTA)) && !isNineProduct ? (react_1.default.createElement("div", { className: 'clc-sxp-bottom-card' },
|
331
325
|
react_1.default.createElement(RenderCard_1.default, { rec: rec, index: index, tempMap: tempMap, resolver: resolver, isActive: index === activeIndex, value: value }))) : null,
|
332
326
|
react_1.default.createElement("div", null,
|
333
|
-
react_1.default.createElement(ExpandableText_1.default, { 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: (
|
327
|
+
react_1.default.createElement(ExpandableText_1.default, { 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 }),
|
334
328
|
react_1.default.createElement(RenderCard_1.default, { rec: rec, index: index, tempMap: tempMap, resolver: resolver, includesCtaType: ['AniLink'], isActive: index === activeIndex, value: value }),
|
335
|
-
react_1.default.createElement(Hashtag_1.default, { index: activeIndex, tags: (
|
329
|
+
react_1.default.createElement(Hashtag_1.default, { 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) }))),
|
336
330
|
react_1.default.createElement(RenderCard_1.default, { rec: rec, index: index, tempMap: tempMap, resolver: resolver, includesCtaType: ['AniLinkPopup'], isActive: index === activeIndex, value: value })));
|
337
331
|
}
|
338
332
|
return null;
|
@@ -371,7 +365,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
371
365
|
return null;
|
372
366
|
}, [globalConfig, waterFallData]);
|
373
367
|
const handleViewImageStartEnd = (item) => {
|
374
|
-
var _a, _b, _c, _d, _e, _f
|
368
|
+
var _a, _b, _c, _d, _e, _f;
|
375
369
|
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)) {
|
376
370
|
const endTime = Date.now();
|
377
371
|
const duration = viewImageStartTime.current === 0 ? 0 : (endTime - viewImageStartTime.current) / 1000;
|
@@ -380,11 +374,10 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
380
374
|
eventSubject: 'viewImageCarouselEnd',
|
381
375
|
eventDescription: 'User end view the image carousel',
|
382
376
|
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 : '',
|
383
|
-
|
384
|
-
contentName: (_h = item === null || item === void 0 ? void 0 : item.video.title) !== null && _h !== void 0 ? _h : '',
|
377
|
+
contentName: (_e = item === null || item === void 0 ? void 0 : item.video.title) !== null && _e !== void 0 ? _e : '',
|
385
378
|
imageEndTime: `${endTime}`,
|
386
379
|
playDuration: `${duration}`,
|
387
|
-
contentTags: JSON.stringify((
|
380
|
+
contentTags: JSON.stringify((_f = item === null || item === void 0 ? void 0 : item.video.tags) !== null && _f !== void 0 ? _f : []),
|
388
381
|
position: activeIndex + '',
|
389
382
|
contentFormat: 'image',
|
390
383
|
traceInfo: item === null || item === void 0 ? void 0 : item.video.traceInfo
|
@@ -393,7 +386,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
393
386
|
}
|
394
387
|
};
|
395
388
|
const handleSlideSkip = (item, position) => {
|
396
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x
|
389
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
|
397
390
|
if (isPreview || waterFallData)
|
398
391
|
return;
|
399
392
|
const t = new Date() - curTime.current;
|
@@ -419,8 +412,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
419
412
|
contentTags: (product === null || product === void 0 ? void 0 : product.tags) ? JSON.stringify(product === null || product === void 0 ? void 0 : product.tags) : '',
|
420
413
|
position: position + '',
|
421
414
|
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 : '',
|
422
|
-
|
423
|
-
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 : '',
|
415
|
+
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 : '',
|
424
416
|
contentFormat
|
425
417
|
}
|
426
418
|
});
|
@@ -430,7 +422,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
430
422
|
}
|
431
423
|
};
|
432
424
|
const handleScrollEvent = (swiper) => {
|
433
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w
|
425
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
|
434
426
|
const item = data[swiper.previousIndex];
|
435
427
|
if (!item)
|
436
428
|
return;
|
@@ -447,12 +439,11 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
447
439
|
eventSubject: 'scrollDown',
|
448
440
|
eventDescription: 'User scroll down',
|
449
441
|
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 : '',
|
450
|
-
|
451
|
-
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 : '',
|
442
|
+
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 : '',
|
452
443
|
requestId: null,
|
453
|
-
traceInfo: (
|
444
|
+
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 : '',
|
454
445
|
contentFormat,
|
455
|
-
position: ((
|
446
|
+
position: ((_m = swiper.previousIndex) !== null && _m !== void 0 ? _m : 0) + ''
|
456
447
|
}
|
457
448
|
});
|
458
449
|
handleViewImageStartEnd(item);
|
@@ -463,13 +454,12 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
463
454
|
eventInfo: {
|
464
455
|
eventSubject: 'scrollUp',
|
465
456
|
eventDescription: 'User scroll up',
|
466
|
-
contentId: (
|
467
|
-
|
468
|
-
productId: (_x = (_w = item.product) === null || _w === void 0 ? void 0 : _w.itemId) !== null && _x !== void 0 ? _x : '',
|
457
|
+
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 : '',
|
458
|
+
productId: (_r = (_q = item.product) === null || _q === void 0 ? void 0 : _q.itemId) !== null && _r !== void 0 ? _r : '',
|
469
459
|
requestId: null,
|
470
|
-
traceInfo: (
|
460
|
+
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 : '',
|
471
461
|
contentFormat,
|
472
|
-
position: ((
|
462
|
+
position: ((_w = swiper.previousIndex) !== null && _w !== void 0 ? _w : 0) + ''
|
473
463
|
}
|
474
464
|
});
|
475
465
|
handleViewImageStartEnd(item);
|
@@ -493,7 +483,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
493
483
|
}
|
494
484
|
}, [openHashtag, data, activeIndex]);
|
495
485
|
const handleViewImageStartEvent = (activeIndex, imgInfo, enableCapi) => {
|
496
|
-
var _a, _b, _c, _d, _e, _f, _g, _h
|
486
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
497
487
|
const item = data[activeIndex];
|
498
488
|
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)) {
|
499
489
|
const startTime = Date.now();
|
@@ -503,10 +493,9 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
503
493
|
eventSubject: 'viewImageCarouselStart',
|
504
494
|
eventDescription: 'User start view the image carousel',
|
505
495
|
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 : '',
|
506
|
-
|
507
|
-
contentName: (_h = item === null || item === void 0 ? void 0 : item.video.title) !== null && _h !== void 0 ? _h : '',
|
496
|
+
contentName: (_e = item === null || item === void 0 ? void 0 : item.video.title) !== null && _e !== void 0 ? _e : '',
|
508
497
|
imageStartTime: `${startTime}`,
|
509
|
-
contentTags: JSON.stringify((
|
498
|
+
contentTags: JSON.stringify((_f = item === null || item === void 0 ? void 0 : item.video.tags) !== null && _f !== void 0 ? _f : []),
|
510
499
|
position: activeIndex + '',
|
511
500
|
contentFormat: 'image',
|
512
501
|
traceInfo: item === null || item === void 0 ? void 0 : item.video.traceInfo,
|
@@ -516,11 +505,11 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
516
505
|
if (enableCapi) {
|
517
506
|
bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
|
518
507
|
eventName: 'ViewContent',
|
519
|
-
product: (
|
508
|
+
product: (_g = item === null || item === void 0 ? void 0 : item.video) === null || _g === void 0 ? void 0 : _g.bindProduct
|
520
509
|
});
|
521
510
|
bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
|
522
511
|
eventName: 'PageView',
|
523
|
-
product: (
|
512
|
+
product: (_h = item === null || item === void 0 ? void 0 : item.video) === null || _h === void 0 ? void 0 : _h.bindProduct
|
524
513
|
});
|
525
514
|
}
|
526
515
|
}
|
@@ -612,19 +601,14 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
612
601
|
swiperRef.current.swiper.allowTouchMove = true;
|
613
602
|
}, 500);
|
614
603
|
}, onActiveIndexChange: (swiper) => {
|
615
|
-
var _a, _b;
|
616
604
|
setActiveIndex(swiper.activeIndex);
|
617
605
|
if (openHashtag)
|
618
606
|
return;
|
619
607
|
handleScrollEvent(swiper);
|
620
|
-
if (waterFallData || isEditor)
|
608
|
+
if (waterFallData || isEditor || isDiyH5)
|
621
609
|
return;
|
622
610
|
if ((swiper === null || swiper === void 0 ? void 0 : swiper.activeIndex) + 1 >= (data === null || data === void 0 ? void 0 : data.length)) {
|
623
611
|
if (!isLoadMore) {
|
624
|
-
if (isDiyH5) {
|
625
|
-
(_a = videoWidgetRef.current) === null || _a === void 0 ? void 0 : _a.setLoopPlay(false);
|
626
|
-
(_b = pictureGroupRef.current) === null || _b === void 0 ? void 0 : _b.setLoopPlay(false);
|
627
|
-
}
|
628
612
|
setIsLoadMore(true);
|
629
613
|
loadVideos === null || loadVideos === void 0 ? void 0 : loadVideos(pageNum).then((res) => {
|
630
614
|
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 {
|
@@ -23,7 +23,6 @@ exports.DEFAULT_TAG = 'FOR U';
|
|
23
23
|
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 }) => {
|
24
24
|
var _a, _b, _c, _d, _e;
|
25
25
|
const [rtcList, setRtcList] = (0, react_1.useState)([]);
|
26
|
-
const [firstRtcList, setFirstRtcList] = (0, react_1.useState)([]);
|
27
26
|
const [tagList, setTagList] = (0, react_1.useState)([]);
|
28
27
|
const [loading, setLoading] = (0, react_1.useState)(true);
|
29
28
|
const [curReqInfo, setCurReqInfo] = (0, react_1.useState)({ rtc: '', requestId: '' });
|
@@ -109,7 +108,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
109
108
|
var _a;
|
110
109
|
return ((_a = bffDataSource === null || bffDataSource === void 0 ? void 0 : bffDataSource.headers) === null || _a === void 0 ? void 0 : _a['x-app-id']) + (0, localStore_1.storeAndLoadFeUserId)();
|
111
110
|
}, [bffDataSource]);
|
112
|
-
const bffFetch = (0, react_1.useCallback)((path, options) => {
|
111
|
+
const bffFetch = (0, react_1.useCallback)((path, options, isBota = true) => {
|
113
112
|
var _a;
|
114
113
|
if (!bffDataSource)
|
115
114
|
return;
|
@@ -126,7 +125,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
126
125
|
params[key] = value;
|
127
126
|
});
|
128
127
|
return window
|
129
|
-
.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'
|
128
|
+
.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
|
130
129
|
? JSON.stringify({
|
131
130
|
body: btoa(encodeURIComponent(JSON.stringify(Object.assign(Object.assign(Object.assign({}, options.body), bffDataSource.headers), { 'x-user-id': fakeUserId }))))
|
132
131
|
})
|
@@ -134,6 +133,147 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
134
133
|
.then((res) => res.json())
|
135
134
|
.catch((err) => Promise.reject(err));
|
136
135
|
}, [bffDataSource, fakeUserId]);
|
136
|
+
const bffCollectEvent = (0, react_1.useCallback)((params) => {
|
137
|
+
var _a;
|
138
|
+
const body = {
|
139
|
+
eventName: params === null || params === void 0 ? void 0 : params.eventName,
|
140
|
+
eventSource: params === null || params === void 0 ? void 0 : params.eventSource
|
141
|
+
};
|
142
|
+
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}`, {
|
143
|
+
method: 'POST',
|
144
|
+
body,
|
145
|
+
type: 'beacon'
|
146
|
+
}, false);
|
147
|
+
}, [bffFetch, bffDataSource]);
|
148
|
+
(0, react_1.useEffect)(() => {
|
149
|
+
if (typeof (window === null || window === void 0 ? void 0 : window.fbq) === 'function') {
|
150
|
+
const OriginalImage = window.Image;
|
151
|
+
window.Image = function () {
|
152
|
+
const img = new OriginalImage();
|
153
|
+
const originalSrcDescriptor = Object.getOwnPropertyDescriptor(HTMLImageElement.prototype, 'src');
|
154
|
+
Object.defineProperty(img, 'src', {
|
155
|
+
set(value) {
|
156
|
+
originalSrcDescriptor.set.call(this, value);
|
157
|
+
img.onload = function () {
|
158
|
+
if (value.includes('https://www.facebook.com/privacy_sandbox/pixel/register/trigger/')) {
|
159
|
+
const url = new URL(value);
|
160
|
+
const params = Object.fromEntries(url.searchParams.entries());
|
161
|
+
bffCollectEvent({
|
162
|
+
eventName: params === null || params === void 0 ? void 0 : params.ev,
|
163
|
+
eventSource: 'Meta Pixel'
|
164
|
+
});
|
165
|
+
}
|
166
|
+
};
|
167
|
+
},
|
168
|
+
get() {
|
169
|
+
return originalSrcDescriptor.get.call(this);
|
170
|
+
}
|
171
|
+
});
|
172
|
+
return img;
|
173
|
+
};
|
174
|
+
}
|
175
|
+
}, [bffCollectEvent]);
|
176
|
+
(0, react_1.useEffect)(() => {
|
177
|
+
const navigatorWithBeacon = navigator;
|
178
|
+
if (!navigatorWithBeacon.sendBeacon) {
|
179
|
+
console.warn('navigator.sendBeacon is not supported');
|
180
|
+
return;
|
181
|
+
}
|
182
|
+
const originalSendBeacon = navigatorWithBeacon.sendBeacon.bind(navigatorWithBeacon);
|
183
|
+
navigatorWithBeacon.sendBeacon = function (url, data) {
|
184
|
+
const urlString = url instanceof URL ? url.href : url.toString();
|
185
|
+
const success = originalSendBeacon(url, data);
|
186
|
+
function parseBeaconData(data) {
|
187
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
188
|
+
if (typeof data === 'string')
|
189
|
+
return JSON.parse(data);
|
190
|
+
if (data instanceof Blob)
|
191
|
+
return JSON.parse(yield data.text());
|
192
|
+
if (data instanceof ArrayBuffer)
|
193
|
+
return JSON.parse(new TextDecoder().decode(data));
|
194
|
+
return null;
|
195
|
+
});
|
196
|
+
}
|
197
|
+
if (success) {
|
198
|
+
Promise.resolve().then(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
199
|
+
var _a, _b;
|
200
|
+
try {
|
201
|
+
const parsedData = yield parseBeaconData(data);
|
202
|
+
if (success) {
|
203
|
+
if (urlString.includes('https://tr.snapchat.com/p')) {
|
204
|
+
(_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) => {
|
205
|
+
var _a, _b;
|
206
|
+
if ((_a = item === null || item === void 0 ? void 0 : item.t) === null || _a === void 0 ? void 0 : _a.ev) {
|
207
|
+
bffCollectEvent({
|
208
|
+
eventName: (_b = item === null || item === void 0 ? void 0 : item.t) === null || _b === void 0 ? void 0 : _b.ev,
|
209
|
+
eventSource: 'Snapchat Pixel'
|
210
|
+
});
|
211
|
+
}
|
212
|
+
});
|
213
|
+
}
|
214
|
+
else if (urlString.includes('https://analytics.tiktok.com/api/v2/pixel') && (parsedData === null || parsedData === void 0 ? void 0 : parsedData.event)) {
|
215
|
+
bffCollectEvent({
|
216
|
+
eventName: parsedData.event,
|
217
|
+
eventSource: 'TikTok Pixel'
|
218
|
+
});
|
219
|
+
}
|
220
|
+
}
|
221
|
+
}
|
222
|
+
catch (error) {
|
223
|
+
console.error('监控失败:', error);
|
224
|
+
}
|
225
|
+
}));
|
226
|
+
}
|
227
|
+
return success;
|
228
|
+
};
|
229
|
+
return () => {
|
230
|
+
navigatorWithBeacon.sendBeacon = originalSendBeacon;
|
231
|
+
};
|
232
|
+
}, [bffCollectEvent]);
|
233
|
+
(0, react_1.useEffect)(() => {
|
234
|
+
const _originalFetch = window.fetch;
|
235
|
+
window.fetch = function (input, init) {
|
236
|
+
var arguments_1 = arguments;
|
237
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
238
|
+
let url;
|
239
|
+
try {
|
240
|
+
url = typeof input === 'string'
|
241
|
+
? input
|
242
|
+
: input instanceof URL
|
243
|
+
? input.href
|
244
|
+
: input.url;
|
245
|
+
}
|
246
|
+
catch (error) {
|
247
|
+
console.error('解析请求URL失败:', error);
|
248
|
+
return _originalFetch.apply(this, arguments_1);
|
249
|
+
}
|
250
|
+
if (!url.includes('https://www.google-analytics.com/g/collect')) {
|
251
|
+
return _originalFetch.apply(this, arguments_1);
|
252
|
+
}
|
253
|
+
try {
|
254
|
+
const response = yield _originalFetch.apply(this, arguments_1);
|
255
|
+
const urlObj = new URL(url);
|
256
|
+
const params = Object.fromEntries(urlObj.searchParams.entries());
|
257
|
+
if (params === null || params === void 0 ? void 0 : params.en) {
|
258
|
+
bffCollectEvent({
|
259
|
+
eventName: params === null || params === void 0 ? void 0 : params.en,
|
260
|
+
eventSource: 'Google Analytics'
|
261
|
+
});
|
262
|
+
}
|
263
|
+
return response;
|
264
|
+
}
|
265
|
+
catch (error) {
|
266
|
+
console.error('处理 GA4 请求时出错:', error);
|
267
|
+
throw error;
|
268
|
+
}
|
269
|
+
});
|
270
|
+
};
|
271
|
+
}, [bffCollectEvent]);
|
272
|
+
(0, react_1.useEffect)(() => {
|
273
|
+
if (typeof (window === null || window === void 0 ? void 0 : window.fbq) === 'function') {
|
274
|
+
window === null || window === void 0 ? void 0 : window.fbq('track', 'PageView');
|
275
|
+
}
|
276
|
+
}, []);
|
137
277
|
const bffFetchAdmin = (0, react_1.useCallback)((path, options) => {
|
138
278
|
if (!bffDataSource)
|
139
279
|
return;
|
@@ -187,9 +327,6 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
187
327
|
if ((rtcList === null || rtcList === void 0 ? void 0 : rtcList.length) === 0) {
|
188
328
|
setRtcList(getFilterRecList(Object.assign(Object.assign({}, result === null || result === void 0 ? void 0 : result.data), { recList: list })));
|
189
329
|
setCacheRtcList(getFilterRecList(Object.assign(Object.assign({}, result === null || result === void 0 ? void 0 : result.data), { recList: list })));
|
190
|
-
if (isDiyH5) {
|
191
|
-
setFirstRtcList(getFilterRecList(Object.assign(Object.assign({}, result === null || result === void 0 ? void 0 : result.data), { recList: list })));
|
192
|
-
}
|
193
330
|
}
|
194
331
|
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));
|
195
332
|
if (isNotNullList) {
|
@@ -229,17 +366,12 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
229
366
|
if (rtcList.length <= 0) {
|
230
367
|
return;
|
231
368
|
}
|
232
|
-
if (isDiyH5 && (firstRtcList === null || firstRtcList === void 0 ? void 0 : firstRtcList.length) > 0) {
|
233
|
-
setRtcList(rtcList.concat(firstRtcList));
|
234
|
-
setCacheRtcList(cacheRtcList.concat(firstRtcList));
|
235
|
-
return;
|
236
|
-
}
|
237
369
|
const lastItem = rtcList === null || rtcList === void 0 ? void 0 : rtcList[(rtcList === null || rtcList === void 0 ? void 0 : rtcList.length) - 1];
|
238
370
|
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 })));
|
239
371
|
setRtcList(rtcList.concat(getFilterRecList(data)));
|
240
372
|
setCacheRtcList(cacheRtcList.concat(getFilterRecList(data)));
|
241
373
|
return data;
|
242
|
-
}), [getRecommendVideos, rtcList, waterFallData, cacheRtcList
|
374
|
+
}), [getRecommendVideos, rtcList, waterFallData, cacheRtcList]);
|
243
375
|
const refreshFeSession = (0, react_1.useCallback)((enableReSid, event) => {
|
244
376
|
var _a, _b, _c, _d, _e;
|
245
377
|
let expire = false;
|
@@ -460,7 +592,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
460
592
|
}
|
461
593
|
}), [bffFetch, utmVal]);
|
462
594
|
const ctaEvent = (0, react_1.useCallback)((eventInfo, rec, product, position) => {
|
463
|
-
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
|
595
|
+
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;
|
464
596
|
const cta = product === null || product === void 0 ? void 0 : product.bindCta;
|
465
597
|
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);
|
466
598
|
let fromKName = '';
|
@@ -478,7 +610,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
478
610
|
}
|
479
611
|
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;
|
480
612
|
bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
|
481
|
-
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 : '',
|
613
|
+
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 })
|
482
614
|
});
|
483
615
|
}, [bffEventReport, isFromHashtag]);
|
484
616
|
const h5EnterLink = (0, react_1.useCallback)(() => {
|
@@ -580,9 +712,6 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
580
712
|
}
|
581
713
|
setRtcList(list);
|
582
714
|
setCacheRtcList(list);
|
583
|
-
if (isDiyH5) {
|
584
|
-
setFirstRtcList(list);
|
585
|
-
}
|
586
715
|
bffGetTagList(curData !== null && curData !== void 0 ? curData : finalPageData);
|
587
716
|
if (channel) {
|
588
717
|
const item = list === null || list === void 0 ? void 0 : list[0];
|
@@ -617,9 +746,6 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
617
746
|
}
|
618
747
|
setRtcList(list);
|
619
748
|
setCacheRtcList(list);
|
620
|
-
if (isDiyH5) {
|
621
|
-
setFirstRtcList(list);
|
622
|
-
}
|
623
749
|
}
|
624
750
|
})
|
625
751
|
.finally(() => {
|
@@ -683,8 +809,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
683
809
|
refreshFeSession,
|
684
810
|
getAccount,
|
685
811
|
accountSonsent,
|
686
|
-
isDiyH5
|
687
|
-
firstRtcList
|
812
|
+
isDiyH5
|
688
813
|
} }, isShowConsent ? (react_1.default.createElement(Consent_1.default, 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({
|
689
814
|
rtcList,
|
690
815
|
mutateLike: bffMutateLike,
|
@@ -2,12 +2,12 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.useEventReport = void 0;
|
4
4
|
const react_1 = require("react");
|
5
|
-
const SxpDataSourceProvider_1 = require("../context/SxpDataSourceProvider");
|
6
5
|
const useSxpDataSource_1 = require("./useSxpDataSource");
|
6
|
+
const SxpDataSourceProvider_1 = require("../context/SxpDataSourceProvider");
|
7
7
|
function useEventReport() {
|
8
8
|
const { bffEventReport, popupDetailData, isFromHashtag, eventTimeList, setEventTimeList } = (0, useSxpDataSource_1.useSxpDataSource)();
|
9
9
|
const jumpToWeb = (0, react_1.useCallback)((e, data, product, cta, position, traceInfo) => {
|
10
|
-
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
|
10
|
+
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;
|
11
11
|
const i = eventTimeList === null || eventTimeList === void 0 ? void 0 : eventTimeList.findIndex((item) => item.target === (e === null || e === void 0 ? void 0 : e.target));
|
12
12
|
if (i !== -1) {
|
13
13
|
return;
|
@@ -40,11 +40,11 @@ function useEventReport() {
|
|
40
40
|
contentFormat = 'image';
|
41
41
|
}
|
42
42
|
bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
|
43
|
-
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 : '',
|
43
|
+
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 }))
|
44
44
|
});
|
45
45
|
}, [bffEventReport, popupDetailData, isFromHashtag, eventTimeList]);
|
46
46
|
const productView = (0, react_1.useCallback)((data, product, cta, viewTime, position) => {
|
47
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p
|
47
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
48
48
|
let fromKName = '';
|
49
49
|
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))) {
|
50
50
|
fromKName = 'pdpPage';
|
@@ -63,9 +63,8 @@ function useEventReport() {
|
|
63
63
|
contentTags: JSON.stringify(product === null || product === void 0 ? void 0 : product.tags),
|
64
64
|
position: position + '',
|
65
65
|
contentId: (_d = data === null || data === void 0 ? void 0 : data.video) === null || _d === void 0 ? void 0 : _d.itemId,
|
66
|
-
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 : '',
|
67
66
|
ctatId: cta === null || cta === void 0 ? void 0 : cta.itemId,
|
68
|
-
traceInfo: (
|
67
|
+
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 : '',
|
69
68
|
timeOnSite: Math.floor((new Date() - viewTime) / 1000) + '',
|
70
69
|
eventSubject: 'productView',
|
71
70
|
eventDescription: 'User browsed the product'
|